The itch
Every time I needed to jot something down quickly — a snippet, a URL, a half-formed idea at 1am — I'd open a new browser tab and start searching for a notepad tool.
The results were always the same: sign up to save your notes. Connect your Google account. Install our desktop app. Enable cloud sync.
For a notepad.
I just wanted to type. So I built one.
What DarkNotepad actually is
DarkNotepad is a minimal online notepad with three hard constraints I set for myself:
- No account required — ever. Not even optional.
-
Nothing leaves your browser — notes live in
localStorage, full stop. - Dark mode by default — because most people who need a quick scratchpad are developers, and developers live in dark mode.
That's it. No backend, no user table, no analytics that track what you type.
The stack (it's boring, intentionally)
I kept it simple on purpose:
-
React +
react-router-domfor SPA routing -
react-helmet-asyncfor per-route meta tags (SEO without SSR) -
vercel.jsonrewrites to avoid 404s on page refresh for internal routes like/aboutand/blog - JSON-LD (
SoftwareApplicationschema) inindex.htmlfor rich snippets - Deployed on Vercel — free tier, zero config
No database. No auth library. No backend whatsoever.
The most interesting technical decision was actually the vercel.json config. SPAs break hard on direct URL access because the server doesn't know about client-side routes. This one-liner fixes it:
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}
Why local-first for a notepad?
I think most tools default to server-side storage because that's what we're trained to build. But for ephemeral, personal notes — the kind you write and delete the same day — there's no good reason your data needs to leave your machine.
localStorage gives you:
- Instant persistence with zero latency
- Works offline by default
- No GDPR surface — you literally don't have the data
- Zero infrastructure cost
The tradeoff: notes don't sync across devices. For my use case (quick scratchpad, not a PKM system), that's fine. If you need cross-device sync, use Notion. DarkNotepad is for the 30-second use case.
What I learned shipping this
SEO for tools is different from SEO for content. The homepage competes on transactional keywords ("online notepad dark mode") where established players dominate. The real opportunity is long-tail informational content — articles about eye strain, privacy, local-first architecture. That's where a new domain can actually rank.
Ship the privacy policy before anything else. Not just for legal reasons — it's a trust signal that affects Google AdSense approval, user perception, and how seriously people take your tool.
Product Hunt and communities matter more than organic SEO at launch. Google takes months. Humans take seconds.
What's next
- More blog content targeting long-tail keywords
- Keyboard shortcuts
- Export to
.txt/.md - Maybe a word count — people keep asking
If you want to take a look: darknotepad.com
And if you're building something similar or have opinions on the local-first approach, I'd genuinely love to hear them in the comments.
Top comments (0)