My stack.
The tools I use to build Legacies and every digital project I ship. Boring, proven, and fully under my control.
Frontend
What users see. Fast, clean, no framework soup.
Next.js
App Router. Server components where they make sense, client components where they have to.
TypeScript
Default. I write TS even for small projects. Strictness is free clarity.
Tailwind CSS
Styling stays in the component. No CSS files, no class soup, no surprises.
Backend & Data
The part nobody sees until it breaks.
PostgreSQL
Main database across every Legacies project. Reliable, predictable, boring - in a good way.
Prisma
Typed schema and queries. Migrations stay sane, DX stays clean.
Python
Occasional. Scripts, automations, the odd ML experiment.
Infrastructure
Self-hosted by choice. Control beats convenience.
Self-hosted VPS
Every Legacies product runs on my own server. No platform lock-in, no surprise bills, full control.
Docker
Each service in its own container. Clean boundaries, predictable deploys.
GitHub
Source of truth for every repo. Private by default.