Skip to content

avnath13/weeks

Repository files navigation

Weeks

See what your habits cost in weeks, months, and years of the life you have left.

Live demo → weeks-mu.vercel.app

Your life is ~4,000 weeks. Weeks draws them as a grid, one box per week, then converts your daily habits into the boxes they consume. 2.5 hours of Instagram a day is not a number; it is 4.4 years of your remaining waking life, erased from the end of the grid.

Sibling app to bigpicture, sharing its design system (tokens, Sora/Inter, motion, event palette).

Habits view

Features

  • Life grid. Canvas-rendered, 4,000+ cells, animated fill. Lived weeks, remaining weeks, and habit costs painted from the end of life backwards. Leap years counted exactly.
  • Habits converter. Tap preset chips (Scrolling, Instagram, Commute, Meetings) or add your own; drag sliders and watch the grid react beside the controls. Everything is denominated in your waking hours (24h minus your sleep).
  • Screen Time import. Drop or paste an iOS Screen Time or Android Digital Wellbeing screenshot; it is OCR'd entirely on-device (PaddleOCR, with a Tesseract.js fallback) into per-app hours. Nothing is uploaded, ever.
  • Reclaim mode. Drag a habit down and watch the weeks return as an emerald band. Then commit: pin the targets, check in over time (screenshot re-imports count automatically), and watch the weeks you actually banked - progress is computed from check-in evidence only.
  • Lifetime. The retrospective view: years already spent sleeping, working, and scrolling, next to what is still to come.
  • Countdown. Name up to six dates and see the weeks between here and there as layered bands on your grid, with "time left today" rings.
  • Share cards + links. Deterministic canvas renders, 1080×1920 story and 1200×630 OG, in the app's editorial style. "Copy link" encodes your setup in the URL hash so a friend lands on a pre-filled grid - hash fragments never reach a server.
  • Light/dark themes, mobile-first, installable PWA (the OCR engine caches for offline use), localStorage only, no accounts, no backend. Settings offers a full JSON backup/restore and a reset.
Overview, dark Overview, light

Countdown view

Develop

npm install
npm run dev      # http://localhost:5173
npm test         # vitest: time math, parser, storage, commitments (117 tests)
npm run lint     # eslint + typecheck
npm run build    # typecheck + production bundle + service worker

Screenshots regenerate with node scripts/screenshots.mjs while the dev server is running.

Privacy

Birth date, habits, and screenshots never leave the browser. There is no server and no account. The deployed site uses Vercel Web Analytics for anonymous, cookie-less page-view counts; none of your data (birth date, habits, screenshots) is ever sent anywhere. The Settings tab wipes all local data.

About

See what your habits cost in weeks, months, and years of the life you have left.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors