Other Recommendations

We recognize that Next.js and TypeScript don't solve every problem. While we encourage you to use the primitives they provide as often as you can, there are other tools that will help simplify and improve your developer experience.

UI Essentials

Tailwind CSS - for your styles

I hated the idea of Tailwind. Then I tried it.

It seems like Bootstrap. I promise it is not Bootstrap. It enables a "flow state" in UI development I didn't know was achievable. (And yes, we used it here.)

Data Management

React Query - for your client

This little library handles all your async React needs, from data fetching to IO management. Hard to imagine doing React development without it now. Might be able to replace your state management library too.

Prisma.io - for your DB

Prisma is to SQL what TypeScript is to JavaScript. Never thought I'd love an ORM, but man, trust me on this one.

tRPC - for defining and consuming APIs

tRPC delivers on GraphQL's promise of seamless client development against a typesafe server without all of the boilerplate. It's a clever abuse of TypeScript that provides an incredible development experience.

Analytics

Plausible - for user data

Need analytics? Plausible is one of the quickest ways to get them. It's super minimal and even has a simple plugin for Next.js.

Authentication

NextAuth.js - for authentication

Man, this library makes auth easy. No ownership compromise and it hooks up to your DB directly. It's so good that I ported two projects to Next.js just to use it.

Note: NextAuth.js does not support React Native directly. Yet. 😉

Deployments, Infrastructure, Databases and CI

Vercel - for hosting your website

Vercel took the hell of web deployments and made it a set-and-forget GitHub integration. We've scaled to hundreds of thousands of users without issue. AWS-powered, but with a way better interface. 🙂

PlanetScale - for databases, without the worry

PlanetScale is the best "serverless database platform" I've used by far. Insane scale, great developer experience, fantastic pricing. If you're using SQL (and hopefully Prisma), this is hard to beat.

Railway - for hosting your infra

"Modern Heroku". Easiest way to get a real server up and running. If Vercel and PlanetScale aren't enough, Railway probably is. Point it at a GitHub repo and go.

State Management

Editor's Note: State management libraries can be great, but often aren't necessary. Start with React Query and built-in React state, then reach for these when you need more.

Zustand - for never using Redux again

The "modern, simple Redux" you didn't know you needed. Poimandres can always be trusted. I have built everything from video call apps, to games, to servers with this little library.

Jotai - for never using Context again

For a more atomic approach, Jotai is hard to beat. Also by Poimandres, Jotai lets you define singletons that feel like global useState. It's a great option for stateful behaviors that don't need a state machine just yet.