Skip to content

Repository files navigation

Compound icon

C O M P O U N D

A motivational countdown timer · daily checklist matrix · compounding growth tracker

Days spent turn black. Days left stay white. Sand fills the box you're living in right now — and your progress follows you to every device, live.


Live Windows React TypeScript Capacitor Supabase License


Compound — countdown and the wall of days

Get it

Platform How
Web compoundtracker.netlify.app — nothing to install
Windows Download the installer (unsigned — SmartScreen will ask "More info → Run anyway")
macOS Download the .dmg (Apple-silicon build; unsigned — right-click → Open the first time)
Android Download the APK (Compound-android.apk; debug-signed — allow "Install unknown apps" when asked)
iOS npx cap open ios on a Mac → Run ▶ in Xcode (project included) — or install the PWA below
PWA Open the web app on your phone → Add to Home Screen (Android Chrome: ⋮ menu · iPhone/iPad Safari: Share → Add to Home Screen). Installs like a native app, has its own icon + splash screen, and works offline

One account, every platform: log in anywhere and your streaks, checklists, deadlines and canvas follow you — live.


The idea

1% better every day for a year is ×37.8. 1% worse every day is ×0.03. Small things, done daily, are not small.

Compound makes time visible so you feel it passing, makes your routine measurable so you can watch it compound, and keeps the whole record safe in your account.

⏳ Countdown — "The Wall"

Add any number of goals, each with an editable title, an editable start date (set it in the past — "how many days ago did I plan to start?") and a deadline; date fields open a calendar on click. The countdown is live and smart — it shows the two units that matter (8 days 5 hours23 hours 15 minutes58 minutes 12 seconds9 seconds) and ticks every second. Drag the ⠿ handle to reorder deadlines (the order syncs to your account), and star one as your Active Priority to pin it in its own section at the top. You get a giant time-left number, a sand progress tube, and The Wall: real calendar pages where every spent day is blacked out, every remaining day stays white, today's box fills with sand as the day passes, and each month shows its own % spent.

◔ Today — hours & quarter-hours

Today — live clock, 24 hour boxes, 96 quarter-hour boxes with sand fill

A live clock with % of the day gone, a 24-box hour grid and a 96-box 15-minute grid. The box you're inside right now fills with sand in real time — hover any box and a tooltip tells you exactly how much of it is filled and how much remains.

▦ Checklist — the habit matrix

Checklist — days across the top, tasks down the side, sticky month %

Days 1–31 across the top, your daily tasks down the side — tap to tick, click a task name to rename it inline. Per-day score bars, a per-task month % pinned to the right edge (always visible while the sheet scrolls), and overall month productivity. Future days are locked so the record stays honest.

◮ Growth — the compounding engine

Growth — compound index, better/worse comparisons, 90-day curve

Today vs yesterday, this week vs last, this month vs last, this year vs last — each as "% better / worse". Every fully productive day multiplies your compound index by 1.01, charted over 90 days with a "×N in a year at this pace" projection. An All tab shows every calculation together on one page.

✥ Canvas — build the screen you want to stare at

Canvas — drag-and-drop widgets

A free-form dashboard: drop clock, focus timer, countdown, month calendar, hour grid, quarter grid, growth cards, the curve, a Spotify player, or a YouTube/local video anywhere on the board. Drag to place, pull the corner to resize in both directions, stack as many as you like. The focus (pomodoro) timer takes a task name and logs every completed block to your history. Spotify shows real album art and playback from any pasted link; both media widgets are optional.

◉ You — profile, insights & PDF reports

You — profile dashboard with stats, insights and PDF export

An editable profile (name, goal) with headline stats — streak, 30-day average, total ticks, focus hours, weekend-vs-weekday — plus Going well, Pain points, data-driven What to improve suggestions, and your focus-session history. Export a designed PDF progress report for the last 7 / 30 / 90 / 365 days: stat tiles, daily-rhythm bars, habit bars and the compound curve, drawn on-device.

🎨 Make it yours

Neo theme over the animated galaxy background
  • Three themes — hand-drawn Paper, chalkboard Night, and the neon Neo above
  • Six animated backgrounds — galaxy (shooting stars), aurora, forest (fireflies at night), pixel sunset, ocean, or plain
  • A 430-font picker (7 curated + a 423-font library) in a searchable dropdown where every entry previews itself; the chosen font takes over the whole app
  • Six languages — English, العربية (full RTL), Français, Deutsch, Español, हिन्दी — switched from the top bar
  • A discreet ✎ style menu right on the home page; deep-link any look with ?theme=neo&bg=galaxy

☁️ Accounts, live sync & security

  • Plain login — email + password, magic link ("email me a login link"), password reset, or Continue with GitHub
  • Live cross-device sync — realtime updates plus refresh-on-focus and a 30-second fallback. Sync merges instead of overwriting: each section and each checklist day carries its own edit-time, so switching devices can never reset or lose progress — a tick made anywhere survives everywhere
  • Account page — edit name, phone, email (confirmation flow) and password
  • Security center — TOTP two-factor (scan a QR in any authenticator app), a devices & sessions list (platform, last active, forget a device), and log out everywhere
  • Account deletion built in; every table is locked with row-level security so only you can read your data
Account security modal

🧮 The math, honestly

  • Day score = tasks completed ÷ tasks that existed that day.
  • Compound index = start at 1.0; each day multiply by 1 + score/100.
  • "% better" = (current − previous) / previous; weeks start Monday.
  • Data lives locally first (works fully offline) and syncs to your account when online.

🚀 Run it yourself

git clone https://github.com/smafnan/compound.git
cd compound
npm install
npm run dev          # http://localhost:5173
npm run build        # static site in dist/ — deployable anywhere (this repo → Netlify)

Demo mode with generated data: append ?demo. Deep-link tabs with ?tab=checklist, looks with ?theme=night&bg=forest.

Desktop: npm run dist:winrelease/Compound-Setup-<version>.exe (mac/linux scripts included; macOS builds require a Mac — or use the Desktop builds GitHub Action). Mobile: npm run build && npx cap sync, then npx cap open android / npx cap open ios.

📱 Build the Android APK locally

Requires JDK 21 and the Android SDK (easiest via Android Studio):

npm ci
npm run build              # web build → dist/
npx cap sync android       # copy dist/ into the Android project
cd android
./gradlew assembleDebug    # → android/app/build/outputs/apk/debug/app-debug.apk

Install the APK on a device with adb install app-debug.apk, or run it straight from Android Studio (npx cap open android → Run ▶). No local toolchain? The Android APK GitHub Action builds it in the cloud — every v* tag attaches Compound-android.apk to the release, and Actions → Android APK → Run workflow produces a downloadable artifact.

✉️ Supabase email links (self-hosting)

If you point the app at your own Supabase project, set Auth → URL Configuration: Site URL = your deployed origin, and add it to Redirect URLs (plus http://localhost:5173 for dev). Otherwise verification / magic-link emails redirect to Supabase's default and land on a blank page instead of back in the app.

🛠 Tech

Vite · React 18 · TypeScript · hand-rolled CSS · Supabase (auth, Postgres + RLS, realtime) · Capacitor 8 (Android/iOS) · Electron (desktop) · jsPDF (on-device reports) · six-language i18n with RTL. Deployed on Netlify.

License

MIT — do whatever compounds you.


every day counts !

About

Motivational countdown + daily checklist matrix + compounding growth tracker. Days spent turn black, days left stay white, and sand fills the box you're living in right now. Hand-drawn ink-on-paper design, PWA, no backend.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages