A daily habit tracker built on one idea: you only need one win a day. No streaks, no counts, no guilt for a missed day — just a map of what you chose, day by day.
All data lives in this browser's localStorage. Nothing is sent anywhere — no backend, no accounts, no network calls. That also means it's tied to one browser on one device: clearing site data, using a different browser, or going incognito will reset it.
npm install
npm run devOpens at http://localhost:5173.
- Push this folder to a new public GitHub repo (public is fine — there's no sensitive data in the code itself, only in your browser's local storage).
- Open
vite.config.jsand setbaseto match your repo name exactly, e.g.:base: "/one-good-choice/",
- Install the deploy helper and build:
This pushes the
npm install npm run build npm run deploy
distfolder to agh-pagesbranch. - In the repo's Settings → Pages, set the source to the
gh-pagesbranch. - Your app will be live at
https://<your-username>.github.io/one-good-choice/.
- Built with Vite + React + Tailwind (via CDN, no build config needed) + lucide-react icons.
- Habit data structure:
localStorage["ogc_habits"](array of habits) andlocalStorage["ogc_entries"](date → array of habit IDs checked that day). - Archiving a habit hides it from the daily list but keeps its history and color intact on the map — nothing is ever deleted automatically.