The Problem with Tech Stack Debates
If you've spent any time on Twitter or Reddit, you've seen developers argue endlessly about which framework is best. React vs Vue. Node.js vs Python. PostgreSQL vs MongoDB.
Here's what I've learned after building dozens of products: it doesn't matter as much as people think.
What matters is:
What We Use (and Why)
#
Frontend: Next.js
Next.js is our go-to for almost everything. Here's why:
- Server-side rendering for better SEO and initial load times
- File-based routing that makes organizing code intuitive
- Built-in API routes so you can start without a separate backend
- Excellent documentation and large community
Could React with Vite work? Sure. But Next.js removes decisions and lets us focus on building.
#
Backend: Node.js with TypeScript
We write everything in TypeScript. Yes, it's more setup initially. But:
- Fewer bugs in production
- Better editor support
- Easier to maintain as the codebase grows
- Same language as frontend (faster context switching)
#
Database: PostgreSQL
Unless there's a specific reason not to, PostgreSQL is our answer. It's:
- Battle-tested and reliable
- Great for relational data (which most apps need)
- Supported by every major cloud provider
- Free to use
We use Prisma as our ORM because it works well with TypeScript and generates types automatically.
#
Deployment: Vercel or AWS
For MVPs, Vercel is hard to beat:
- Deploy from Git push
- Automatic SSL
- Edge functions
- Zero configuration
For more complex needs (multiple services, custom infrastructure), we use AWS with Docker.
What About AI?
If you need AI features, we integrate with:
- OpenAI API for text generation and chat
- Pinecone or Supabase for vector storage
- LangChain for more complex AI workflows
Most MVPs don't need custom AI models. API integrations are enough to validate the idea.
Common Mistakes
#
1. Over-engineering for scale
#
2. Choosing cool over practical That new framework with 500 GitHub stars might be exciting, but can you find developers who know it? Will it be maintained in 2 years?
#
3. Not thinking about developer experience If deployment is painful, you'll deploy less often. If testing is hard, you'll skip tests. Choose tools that make the right thing easy.
Our Recommendation
If you're starting a new project today, here's what I'd suggest:
- Frontend: Next.js with TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL with Prisma
- Auth: NextAuth.js or Clerk
- Deployment: Vercel
- Analytics: Posthog or Mixpanel
This stack will handle 99% of MVP requirements. You can always change things later when you have specific needs.
Questions?
Every project is different. If you're unsure about the right approach for your specific case, let's talk. I'm happy to share my thoughts—no strings attached.