Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: I built a local-first timeboxing app that never leaves your computer (focusbox.dev)
3 points by akarnam37 62 days ago | hide | past | favorite | 2 comments
Hi HN

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.



I am very much interested in local-first/only (backend-less) PWAs, and have built a couple of them myself.

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?


Thanks!

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: