Skip to content
08

Personal Archive

A single-tenant productivity app on his own VPS — boards, notes, bookmarks and goals, private by construction.

Context & problem

Every tool of this kind is a service somebody else operates, holding the notes on what you are building. This one is single-tenant and self-hosted: one person, one instance, one machine he owns. It is a progressive web app in front of a typed API, brought up with one compose command, with HTTPS terminated by a reverse proxy on the same box.

Role

Sole developer.

Constraints
  • Single tenant, deliberately. There is no account system to grow into a product.
  • Runs on a small VPS alongside everything else, so it has to be modest.
  • The API validates every payload before it reaches the database.
Decisions & why
Self-hosted single tenant rather than an account on a service.
The data is the record of what he is working on. Operating it himself is the point, not an inconvenience he put up with.
Migrations run when the API boots.
A self-hosted app is deployed by one person who should not have to remember a second command.
Stack
  • React 19
  • TypeScript
  • Vite
  • Tailwind
  • Express
  • Prisma
  • Zod
  • PostgreSQL 16
  • Docker
  • Nginx