Overplanner
A self-hosted task and notes app, an alternative to Google Keep, with plain JSON file storage and quick capture from a phone.
Started in October 2026 and still in development. Released under the MIT license.
Features
- Built tasks, notes, checklists and pins, with categories and lists that are suggested as you type.
- Added a dashboard of cards that can be dragged to reorder, with a pie chart of open tasks per category.
- Included a calendar, a Results page with progress charts, and search across everything.
- Added light and dark modes, five theme presets (Mocha, Orange, Teal, Deep Ocean and Forest) and custom colors.
- Checked the theme colors against WCAG AA contrast.
- Offered a choice of seven fonts, six of them bundled with the app so they work offline.
How suggestions work
Keyword rules run first. Optional AI suggestions use TypeSafe AI and are off unless an API key is set. When they are enabled, the text being classified is sent to that service.
Saving never waits on the AI call. If the call fails or times out, the keyword guess is used.
Your data
- Stored all data in plain JSON files in a local
data/folder, which is git-ignored. - Wrote files atomically (temp file, then rename) and validated every read and write.
- Backed up automatically every 6 hours to any chosen folder, including a Google Drive for desktop folder, keeping the newest 28 snapshots by default.
Phone capture
The capture app lives at /capture/ on the same server.
- Built an installable PWA that works offline, holding items in a queue on the phone until they can be sent.
- Sent items one way, from the phone to the PC’s Inbox.
- Received items from Android’s share menu.
- Connected the phone and PC privately over Tailscale, so nothing is exposed to the internet.
Importers
- Added importers for Google Keep (Takeout) and WhatsApp exports.
- Made the importer a dry run unless
--applyis passed, and safe to re-run without creating duplicates. - Added a secret scan that withholds anything that looks like a password or code.
How it was built
Vibe coded with Claude: the app was described in plain language and built through conversation, with Claude writing the code.




