The other day, I decided to finally update my profile on X. Maybe DHH adding Omarchy to his already spectacular bio was the tipping point, but “Watcher on the Road” wasn’t cutting it anymore.
I wanted the whole thing to be 3C — concise, clever, and cool. More importantly, it should paint a complete picture of me, so I guess 4C it is.

Alas, I can’t add fatherhood to my achievements just yet, so I started with philosophy and politics, followed by hobbies. Then I realized my decade-long journey in web development (during which it grew from a hobby to a career) should sit right between those.
But what would be the most 4C way to describe it? It’s got me reminiscin’ on them good times. 

A couple of years ago, I agreed to teach web dev for a nonprofit here in Armenia. I’m not huge on nonprofits. I strongly believe a well-run for-profit can achieve more with the same resources. And while I like teaching, this was my first go outside the immediate family.

But this one was to help veterans of the 2020 war start a new career, and I felt it needed to be done.
And if something needs to be done, I just do it.

Anyway, first day of class; everybody’s awake and curious, so I start:

“OK, lady and gentlemen (there was a girl in the group somehow), here’s what we’re gonna learn on this ride:

🧱 HTML for structure. Only we don’t use it. We use React instead.

🎨 CSS for style. Only we don’t use it. We use Tailwind instead.

⚙️ JavaScript, the main one, for interactions. Only, you guessed it, we don’t use it. We use ReasonML (😭) TypeScript instead.”

“Then why are we learning those if we don’t use them?” asked a student.
“Because you gotta know the fundamentals, son,” I replied to a guy barely younger than me (with a southern accent that would make Tommy Lee Jones proud).
Always wanted to say that.

This was not five years ago, and I'm already a level of abstraction deeper.
I use Next instead of “vanilla React,” and more often than not reach for Effect instead of “vanilla TS,” mostly to feel some of that FP high truly achievable only while roaming the dunes of OCaml.

Actually, I might be two levels deep at this point: I don’t even write most of the code — AI does.
It makes me more of a QA guy, I guess. Wherever the white rabbit goes. 🐇

But how do I define this "white rabbit" stack? The Next Stack (because Next.js lol)? Latest Meta Stack (because Meta created React lol)? Actually Meta just offloaded it to the React Foundation, so this pun aged like our privacy on Meta platforms.

Then it clicked: “The Vercel Stack.”
It’s concise (three words is the sweet spot for this kind of thing), clever (I haven’t seen this obvious name used before), and cool (ruffling a few woke feathers is always cool in my book).
More importantly, it completes my bio, bridging the political and personal, professional and recreational, high-brow and low-hanging. 4C indeed.

But what does it mean? Let’s watch me create a brand-new app and see.

The first thing I do is go to GitHub, start a new repo, and clone it locally.

Then I go into the cloned folder and install Next.js using create-next-app.
This creates a fully functional app with Next, React, Tailwind, TypeScript, Biome, and everything else configured out of the box.

Next, I install Shadcn UI — a component library collection by a Vercel employee of the same name that took the industry by storm.
This lets me create seriously good-looking UIs in a matter of minutes. Seriously, check it out.

At this point, I push the code to GitHub and head over to Vercel to deploy.
It’s as easy as choosing the right repo and pressing “Deploy.” The site is live in under a minute.

Now I’ve got a decision to make: does this app need any serious backend chops like authentication, database, admin dashboard, or job system?
If it does (and most do) I install Payload.

Payload is hot right now, having recently been acquired by Figma (yes, that Figma).
But it first caught my eye a few years ago when the CEO James Mikrut announced that the next version would be a native Next app, making it the closest thing to a first-party CMS.
I gave it a shot and haven’t looked back since.

James Mikrut announces Paylaod's pivot to native Next.js

To add Payload to my app, I run the create-payload-app tool in the project folder. This adds Payload to our existing Next app. I could start with this Payload installer to begin with, but I prefer the Next installer, as it gives more control and better, more modern options (like Biome).

Then it asks to pick a database, and naturally, I choose Vercel Postgres — it’s got “Vercel” right there in the name.
Next, it asks for a connection string, which I get by creating a Neon database in Vercel and adding it to the project.

While on Vercel, I also create a Vercel Blob storage and add it to the project.
Payload has a plugin to automatically integrate it, enabling file upload functionality.

Finally, I add the Resend plugin to enable Payload’s email services if needed.
There are more Payload plugins and first-party Vercel integrations to choose from, but this is my starter pack.

And with that, I’ve got a fully functional full-stack app — easy to expand, customize, and maintain.

So yeah, this is the Vercel Stack: React ⚛️, Next ▶️, Payload 📦, Tailwind 🌊, Neon 💡, Vercel Blob ☁️, and Shadcn UI 🎨.

It’s fast, simple, and modern. It combines the powers of React, Next, and Payload to deliver a state-of-the-art solution that’s good enough for most projects.

It’s extremely versatile and scalable. I’ve seen it power both small hobby sites and big enterprise dashboards.

It’s also highly customizable.
I’ve tried custom auth, job system integrations, even database schema extensions (for vector embeddings), and it all worked like a charm.

It has a big and growing community, with guides and tutorials on practically every feature, and there are forums and Discord groups full of people eager to help.
It has a huge ecosystem of plugins, libraries, and components for pretty much anything you might need, with new ones coming out seemingly daily.
And every part of it is under active development, constantly getting new features and improvements.

Most importantly, thanks to all the above, it’s really good with AI and vibe-coding tools. Most of these apps default to Next.js on new projects anyway, and adding Payload simplifies the backend considerably.

I believe, this is the best stack for most projects right now.
I use it by default — unless I need something else, in which case I customize it and use it still.
And if you ask me, you’re doing yourself and your customers a great disservice if you don’t.

P.S. My final X Bio:

🌞 Rational Optimist · 🧭 Radical Centrist · 💻 Vercel-Stack Developer · 🍎 Apple guy on Omarchy · 🔴 Half-time Red Devil · 🧠 High-Functioning Nerd