Context
A private product with real users (two of them) and real requirements: privacy by design, zero external services, and a feature set that kept growing because people actually use it.
Build
Every architectural choice optimizes for operability by one person: SQLite with no native deps, Sharp as the only native dependency, systemd over container orchestration.
The test suite — 207 regression checks — exists because a private app still deserves production discipline.
TODO(user): favorite feature / what it taught you.
Facts
- Telegram Login auth (OIDC Authorization Code + PKCE), 2-user whitelist
- Zero native data dependencies — node:sqlite built into the runtime
- Photo pipeline with HEIC support via ffmpeg, private media streaming
- Couple counter, moods, dates, movie library, wishlist, tier lists, memory box, open-when letters, quizzes, and more
- 207 automated regression checks
- Backup/restore plus private-data import/export
- Deployed with systemd + nginx, TLS on nginx