I built FocusBox.dev — a local-first, distraction-free timeboxing app that runs entirely in your browser.
It’s designed for developers and makers who want to focus without sign-ups, analytics, or cloud sync. Everything — tasks, timers, preferences — lives only on your device.
Built with: React + Vite Storage: localStorage (no backend, no API calls) Features: – Timeboxing / Pomodoro sessions – Persistent local tasks – Minimal dark-mode UI – Works offline (PWA-ready)
I built FocusBox because I wanted a simple focus tool that respected attention and privacy — no login walls, no tracking, no noise.
Open source on GitHub: https://github.com/adityak74/focusbox.dev
Would love your feedback — especially from folks interested in local-first apps, frontend-only design, or mindful productivity.
depressedpanda•3mo ago
Unfortunately, I don't think I have any use for a time-boxing app. Nice work though.
Is there a reason you went with localStorage rather than indexedDB?
One useful thing is supporting 3rd party sync services. One of the apps I built allowed syncing data across devices via Dropbox. I never got Google Drive working, though, their API was horrible to work with in comparison. Is sync support something you've considered?
akarnam37•3mo ago
Yeah — I started with localStorage mostly because FocusBox’s data model is super lightweight (a few task objects + session state). It kept the initial version simple and easy to reason about.
That said, I’ve definitely thought about moving to IndexedDB (or a wrapper like Dexie) if/when I add features like session history or richer analytics.
sync — I’ve been exploring ideas around optional, user-controlled sync (Dropbox or even GitHub Gist). I love your approach of using 3rd-party storage rather than a backend — keeps things local-first but still portable.
how did you handle conflict resolution with Dropbox? That’s one piece I’ve been thinking through for sync.