My (S-tier) tech stack for 2023

publish: July 28, 2023

modified: September 27, 2024

The frontend ecosystem is notorious for having a new framework every week, as illustrated on the famous website https://dayssincelastjavascriptframework.com. While some may find it difficult to keep up or even see it as a reason to not get into frontend development, you should know that frontend development is still rather young. The current state of the web has been evolving for only about 15 years, while the backend development world has been established for 50 years. We have been setting new standards and finding our ground and vision for where we want to go. We have transitioned from server-side applications where we ran PHP code on the server and served plain JavaScript functions to the browser, to full single-page applications that run 10mb JavaScript scripts with an entire application inside, and back again to running on the server, but now it’s using React components.

We are finding our sweet spot where we can innovate in shorter cycles and set a great foundation to build on. Having said this, I am just a fiend for trying out the latest and greatest. I try the latest libraries and find solutions for the annoyances of the past.

This is my list of technologies I use or would use in my projects this year:

  • React; while this is still my main framework, I am always trying out other frameworks

  • Typescript; types are a must for me, and I am not going back — tiny-invariant; a great library for throwing errors with a message. Usefull to reduce branching and typesafety.

  • tRPC; providing type safety from back to frontend without any code generation

  • Radix; a great UI library with a great design system

  • clsx; a utility for conditionally adding classes to elements

  • NextJS; the best framework for React

  • Tailwind; a utility-first CSS framework. The ease of use of typing classes as a create my components

  • Zod; the best validation library for Typescript

  • React Query; caching and fetching data from the server, with a great dev experience. My go to library for not using GraphQL

  • React Table; you can’t do wrong with this table library. A headless library that gives you all the functionality that you want from aa data table. Anything from the Tanstack

  • React Hook Form; a form library that uses ref instead of state. Optimizes performance and gives you a great dev experience

  • Prisma / Drizzle; a great ORM for Typescript but I am trying to switch to Drizzle for the ease of use of the query builder

  • Lucide React; open source icons

  • sonner; a simple library for showing toast

  • Zact; using zod for NextJS server actions

  • type-fest; more utility types

Other than technologies in my stack, I also use the following services:

  • Stripe; payment system
  • Clerk (auth); alternative to Auth0 but built for the best DX
  • Vercel; I still host everything on Vercel. The ease of use and the great DX is unmatched
  • Supabase; database as a service

Everything on here is about _D_eveloper _E_xperience. I believe a great DX are the foundation of setting an environment where a developer ca thrive. And a motivated developer === great application. Very nice.