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