every six months someone asks this and the answers are always either "use what you know" (useless) or a list of every possible option with no actual recommendation. here's mine, after building three paid side projects.
the constraint nobody talks about: you're choosing a stack you'll maintain alone, at 7am before work, while tired, possibly years from now. the best stack is the most boring one you can get away with.
what i actually use and why:
Frontend: React or whatever you already know. if you're a backend person and this is a data tool, just use a simple template and don't fight it. Tailwind saves time on CSS. shadcn/ui if you want components without a subscription.
Backend: This is where I see people over-engineer. A Node/Express app or a Python FastAPI backend is fine for 99% of side projects. Don't spin up a microservices architecture. Single deployable unit. You're one person.
Database: Postgres. Always. SQLite if you genuinely have no users yet and want zero cost. Neon or Supabase for serverless Postgres that doesn't require you to manage anything.
Hosting: Railway, Render, or Fly.io. Vercel for the frontend. The "$5/month for a VPS" approach is cheaper but you'll lose a weekend to ops work every few months and that time is your scarcest resource.
Auth: Don't build it. Supabase auth or Clerk. I've built auth twice from scratch. both times I regretted it within four months.
Payments: Stripe. This is not a question.
The real answer to this question: whatever stack lets you ship in week one. the graveyard of dead side projects is full of ones that never launched because the person spent three months picking tools.
one thing I've changed in 2026 vs 2024: I now use an AI coding assistant for everything routine and invest the saved time in talking to users. that shift alone doubled the velocity on my current project compared to the last one.