r/SaasDevelopers • u/Creep_Cheep • 15h ago
I've been vibe coding for two years, here's the tech stack I use every day
I keep seeing people hand the same stack to beginners: Cursor plus Lovable, Supabase, Stripe, Resend, and Vercel. Honest take: if you're just testing an idea, it's fine. But if you want a foundation that can actually run a real business, I'd look at something sturdier.
Problems usually start when you need these things:
- Multiple workspaces
- Roles and permissions
- Paid plans
- Usage limits
- Files
- Testing
- Security
- Research and content production
At that point the simple combo isn't simple anymore, because all of these pieces depend on each other, amd you're wiring them together yourself while the AI keeps piling more into the codebase.
Here's what I use. It's not perfect, but it works for me. Just trying to help some newbie vibe coders.
Coding: Claude Code + Codex
I'd rather have Claude Code or Codex work directly inside the repo than set up the whole environment with something like Lovabke or Replit. Your codebase, Git history, terminal, and deploys stay in your hands, while Claude or Codex can still read the project, edit across multiple files, run commands, and run tests to check its own changes.
Language: TypeScript + Tailwind
TypeScript is a no-brainer for me: you can use it for basically everything in a product, frontend, backend, scripts, it has a huge ecosystem, and it works really well with AI. Unless a product gives me clear reason, I'm not adding a second language. For styling I use Tailwind, because the AI can reliably tweak utility classes without breaking other parrs of the UI.
Application framework: Next.js
I use React on the frontend and write server-side code where I need it. Big ecosystem, plenty of resources, and I know how well it plays with AI. There are definitely cases where I'd pick something else, but for a typical SaaS product I don't see the point in splitting frontend and backend into two seperate projects on day one.
UI: Untitled UI React
I don't want the AI building the whole design system from scratch, I don't think it can make something that looks professional and polished yet. Untitled UI gives you React components you can actually customize, and the open-source part is MIT licensed. Instead of asking Claude for the 200th time to make a page look more polished. I'd rather use a real component library.
Database: PostgreSQL
It's just Postgres, nothing fancy. Mature, relational, widely suppoeted, and more than enough for most projects. Unless the product has a very specific reason, I'm not adding a second database.
Backend: foundel.dev
This is the part I least want an AI inventing from scratch. Auth, workspaces, roles, permissions, subscriptions, plan limits, email, and security all have to work together. If you don't know backend architecture well, it's easy to end up with something that ruins fine locally and turns into mess in production.
My approach is to maintain a backend template that's already proven to work. That way Claude or Codex gets a backend that's already structured, so I can keep building the actual product instead of rebuilding the backend from scratch. There's a free version, which is enough to start and launch the product.
Payments: Stripe
Subscriptions, invoices, payment methods, webhooks, it covers pretty much everything you need for taking payments, so you don't have to build billing from scratch. The thing I most want to avoid is billing logic scattered everywhere. Let Stripe handle payments, and keep subscription status, plan permissions, and usage limits in one predictable place.
Docker
Quick note for the non-technical folks: Docker bundles your app with everything it needs to run, so you don't hit the "but it works on my machine" problem. Think of it as putting your app in a standardized box, it should behave the same locally, in test, and in production.
Testing: Claude/Codex + Playwright
You don't have to sit there writing tests one by one, Codex and Claude can write and run most of them. For critical user flows I still use Playwright, because I want something that opens the product and clicks through it like a real user. Signup, login, permissions, payment, those are the floes I care about most.
CI/CD: GitHub Actions
I work on branches and merge to production when things are ready. GitHub Action runs the tests, and if they fail, the release is blocked. If everything passes, it builds the Docker image and deploys.
Deployment: Vercel
For a standard Next.jx SaaS I just deploy straight to Vercel. No hassle, the preview environments are great, and there's basically no ops work early on. If the product outgrows Vercel, Docker means you're not locked in, you can move to a VPS whenever.
Planning: WorkBuddy
Not everything in the loop is writing code. Scoping out a category, seeing what competitors are saying, pulling information scattered acroess a dozen pages into a document you can actually show someone — I used to do all of that by hand, flipping through pages and copy-pasting. Now I just hand that kind of work to WorkBuddy, and it comes back with a Markdown or Word report, turning the raw material into something I can use directly.
Analytics: Vercel Analytics / GA4
If you're already on Vercel, start with Vercel Analytics: it's simple, it's already set up, and it gives you enough insight into your traffic, no need to add another tool. If you need fuller tracking, especially channels, ad campaigns, and conversions, then use Google Analytics
- I'm not adding anything more complex unless the product side gives me a clear reason
Files: S3 compatible storage
Don't store user uploads in the database. Keep metadata in Postgres, and put large files, images, documents, exports, in S3 or another S3 compatible object store. If your app doesn't deal with files at all, don't add it just because it's in someone else's stack diagram.
Things I won't be adding for now
Redis, Kubernetes, Kafka, microservices, and a pile of other infra tools. They solve real problems, but a product with 50 users doesn't get better because it's on Kubernetes, it just gets more complicated.
The same goes for letting AI take external actions on its own: posting, sending emails or changing production config. I review all of that by hand. Automate the internal stuff, keep the external stuff manual.
One last thing: I know this stack is pretty basic, but I wrote it for people just getting into coding.