3. Keeps data on my device, not someone else's server
4. Something to take notes right there in the browser
Technical stack: Next.js static export, IndexedDB for storage, Web Speech API for voice dictation. Total infrastructure cost is ~$0/month for static hosting.
The architecture is intentionally simple. Notes live in the browser's IndexedDB. Voice dictation uses the browser's native speech recognition. No external APIs, no database, no waitlists, no sign-ups
Trade-offs I accepted:
- No sync between devices (considering E2EE sync as optional paid feature)
- Data loss if you clear browser storage (export to MD/PDF available)
- PWA only, no native apps
Who actually uses this:
- Quick capture when you don't want to open a full app
- Drafting prompts before pasting into ChatGPT/Claude (has token counter)
- Private journaling without cloud anxiety
- Offline notes on flights/commutes
- People with "account fatigue" who just want to write
Curious what HN thinks about local-first as a default architecture choice. The privacy angle resonates with users, but the no-sync limitation is a dealbreaker for many.
Happy to discuss technical decisions or answer questions.
Using IndexedDB as the only store moves the reliability boundary to the browser. That removes server risk but introduces quota limits, eviction, and “best effort” persistence, especially on mobile where storage gets reclaimed aggressively.
For a notes app, silent data loss is the critical failure mode. How are you handling quota errors and potential eviction before users discover missing notes?
Valid concerns. Text notes are small so quota limits rarely hit in practice,
but silent data loss is indeed the critical failure mode for a notes app.
Also the main use-case for the app is to be used as a quick notepad rather than to archive data.
Current temporary mitigation: export to MD/PDF/TXT from the note menu.
For users who need real durability guarantees, the planned E2EE sync would provide redundancy across devices and our servers
What I'm adding in upcoming updates:
- Request navigator.storage.persist() on first use to prevent automatic eviction
- Monitor quota via navigator.storage.estimate() and warn when approaching limits
- Catch QuotaExceededError explicitly and prompt immediate export
- Periodic "backup reminder" for users who haven't exported recently
1. Works offline (airplane, subway, spotty wifi)
2. Doesn't require an account
3. Keeps data on my device, not someone else's server
4. Something to take notes right there in the browser
Technical stack: Next.js static export, IndexedDB for storage, Web Speech API for voice dictation. Total infrastructure cost is ~$0/month for static hosting.
The architecture is intentionally simple. Notes live in the browser's IndexedDB. Voice dictation uses the browser's native speech recognition. No external APIs, no database, no waitlists, no sign-ups
Trade-offs I accepted:
- No sync between devices (considering E2EE sync as optional paid feature)
- Data loss if you clear browser storage (export to MD/PDF available)
- PWA only, no native apps
Who actually uses this:
- Quick capture when you don't want to open a full app
- Drafting prompts before pasting into ChatGPT/Claude (has token counter)
- Private journaling without cloud anxiety
- Offline notes on flights/commutes
- People with "account fatigue" who just want to write
Curious what HN thinks about local-first as a default architecture choice. The privacy angle resonates with users, but the no-sync limitation is a dealbreaker for many.
Happy to discuss technical decisions or answer questions.