Star Map Diary
A diary that renders your entries as a 3D universe you fly through, with each thought placed among the stars.
Problem#
A list of diary entries is a spreadsheet you never reopen. I wanted journaling to feel like somewhere you go, not a form you fill in, so entries became objects in a space you navigate.
Constraints#
- A rich 3D frontend that still keeps your private entries genuinely secure.
- Reminders that actually fire, on a free hosting tier with no always-on server.
- A codebase that stays changeable as features pile up.
Build#
The frontend is a Three.js single-page app organised strictly by concern: configuration, services, features, and the 3D layer are separate, so a change to the scene never reaches into business logic. An Express backend owns authentication, session validation, and entry CRUD, while Supabase provides Postgres with row-level security, so even with the app open, a user can only ever read their own entries.
Reminders are the interesting corner. On a hosting tier with no persistent process, an external cron pings a dispatch endpoint every fifteen minutes, which sends Web Push notifications via VAPID keys. Boring, cheap, and reliable, which is exactly what a reminder needs to be.
Result#
Journaling that people actually want to open, with the security model living at the database layer where it belongs rather than being trusted to the client.