Back to Blog
StackTools

My 2026 Stack

Feb 17, 2026|6 min read

I've been improving this stack for what I think at this point is a year, or even more, and it didn't change much in that time. However, there are some pieces I had to swap out, and it was for the best. Let me walk you through every part of it.

The Core: Convex

Let's start with what this entire stack revolves around, and that is Convex. For the people who still don't know, Convex is one of the best databases and backend-as-a-service solutions you can find. It is the easiest thing you can use, but most importantly, your agents can use it too, because your entire database is just TypeScript files inside your codebase. The agent will always know if there are errors, type incongruences, or problems with your database. You don't need to run queries against SQL, deal with Prisma migrations, or anything like that.

Convex also has a lot of components. For example, it has its own auth provider out of the box, Convex Auth, but my personal opinion is that it's not that good. The next best choice is Clerk. Clerk takes care of both authentication and billing, and it's really good! It works perfectly out of the box and has a great Convex integration.

Package Manager: Bun

I've always been torn between pnpm and Bun, but I decided to go with Bun in the end. It's super fast, super nice to use, and really good for one-shot scripts as well, so it's amazing!

The Framework: Next.js

A lot of people don't like this take; a lot of people have opinions on it. I'm still with Next.js. AI is really good at working with it! I've been testing TanStack, but for vibe coders, it's not there yet. AI still doesn't know TanStack well enough, so I'll stay with Next.js for the time being.

Building Agents

Every time I need to build agents, I go with one of two choices. It's either the AI SDK from Vercel or, more recently, Pi. For people who don't know, Pi is the harness that powers OpenClaw, and I've been testing it. It's really composable, so it's very nice to work with!

Another option is the Agent SDK from Anthropic, but the only catch is that the easiest way to use it is either through their API or with a subscription. If you don't have a subscription and you don't want to go broke, you're not using their API. It's a bit tricky to work around that.

Model Provider: OpenRouter

I've been using OpenRouter for about a year now. I've never had any problems. It's amazing; it always has the latest models, so I've never had issues with it.

File Storage

The file storage I usually use is UploadThing if I only have a few files. If I need to upload a lot of files, then I go with R2, Cloudflare's storage solution.

Hosting: Vercel

Everything I build is hosted on Vercel, for multiple reasons:

- PR previews are amazing.

- Rollbacks are instant.

- Domain integration is great.

- Fluid compute is almost as good as Workers but without the DX problems that Workers have.

It's a really good product, plain and simple.

Mobile: Expo

If we move to mobile, the only thing that changes in this stack is Expo. The rest remains the same; you just swap Next.js for Expo. That is, in my opinion, the best way to build native, cross-compatible mobile apps. The rest of the stack you can keep exactly the same.

Honorable Mentions

There are also a bunch of tools I reach for from time to time. Elysia JS is one of them, for when I need a really fast backend. It's powered by Bun, and I've been testing it — it is really cool! Another one I've been testing is WorkOS, for when I need enterprise-ready authentication.

///

That's my stack. It has served me incredibly well, and while it has evolved over the past year, the core has stayed remarkably stable. If you're looking for a productive, AI-friendly full-stack setup, this is a great place to start.