My Current Tech Stack

November 10, 2024

After years of experimenting with different technologies and frameworks, I’ve settled on what I consider to be an optimal setup for my projects.

There might be better stacks out there, but my main goal is to ship quality products as fast as possible, not to be on top of all the new trendy frameworks.

Mastering one stack is better than being mediocre at many.

Here’s my current preferred stack:


Frontend

Web Apps

Simple Vite + React SPA. No SSR headaches when you don’t need them

  • TypeScript
  • Vite
  • React (Or vue 3, but react has a lot more libraries and support)
  • Tailwind (Can’t live without it now)
  • And many other smaller libraries like React Router, React Query, Zustand, etc.

Pages that Need SEO

  • Astro (with React + Tailwind). Exported to static HTML.

I explain why I prefer Astro over Next.js at the end of the post

Native Apps

Unless it’s a super simple app, I use React Native (Expo). It’s gotten so much better over the years and the developer experience is top notch. Building with Javascript and not having to maintain a separate codebase for iOS and Android is a huge time saver.


Backend & Infrastructure

Node.js Express Server

  • Simple REST API, Battle-tested and reliable
  • Serverless functions only when it makes sense
  • Redis or node-cache for caching, depending on the use case

Supabase

I use Supabase for both the database and the auth.

It gets you up and running in no time and the developer experience is top notch. And if you ever need more flexibility or want to scale, you can always export the database and use it with a regular server.

Hosting

No need to complicate. I use cloudflare pages to serve the frontends and host any other backend on a VPS. I only use serverless functions for very specific use cases.

  • Cloudflare Pages for frontend
  • Server hosted on a VPS
  • DNS managed by Cloudflare
  • Railway if I need to spin up a quick backend

Why Not Next.js?

I’ve used Next.js for a few projects and it’s a great framework, but it’s overkill if you don’t need SEO. I’ve spent way too much time fighting hydration errors when I didn’t even need SSR.

I might be wrong, but I don’t like the direction the web is going with everything being server-side rendered again.

Unless you need a full-fledged e-commerce or social media solution, Next.js just brings extra complexity for no real benefit, when comparing to a simple SPA.