Next or TanStack? That's not the question

I use both. My portfolio runs on Next, my SaaS on TanStack, and both are in production. What matters is what ships.

RM
Rabie Menad
4 min read

Every six months, Tech Twitter catches fire trying to crown "the ultimate framework you absolutely must use". Every six months, the same loop restarts on the same threads, with the exact same arguments. Meanwhile, how many projects actually get shipped? Usually: zero.

I decided not to choose. I use both.

This portfolio you're reading runs on Next.js. Alongside it, I'm building Prospect Tracker, the tool I use to manage my freelance business, and that runs on TanStack Start. Both work flawlessly. Neither is waiting for the debate to settle to hit production.

What framework wars cost

The problem with these debates isn't the time wasted reading benchmarks. It's the project you never start because you haven't decided which stack to use yet.

The symptom

You can spot analysis paralysis by one specific phrase: "I'm waiting to see how v15 evolves before I commit". It sounds reasonable and professional. It’s also the absolute best way to ship nothing for a year, then start over with whatever new framework is trending next.

What actually decides

On both of my projects, the choice wasn't settled by pointless performance benchmarks. It was settled by dull, concrete business constraints:

ConstraintPortfolioProspect Tracker
Static content, SEO criticalYesNo
App behind a loginNoYes
Highly dynamic dataNoYes
Ecosystem I already knewYesYes

A portfolio is a content site: pages must be generated at build time, indexed by Google, and load instantly. A SaaS behind a login has absolutely zero SEO needs, but demands heavy client-side state management. These are two radically different problems.

Where Next excels

Static rendering by default. Every page on this site that can be generated at build time is, including the articles, in both languages.

export function generateStaticParams() {
  return routing.locales.flatMap((locale) =>
    getPosts(locale).map((post) => ({ locale, slug: post.slug })),
  )
}

This isn't about raw performance; it's about predictability. A static page doesn't crash at 3 AM because the database hiccupped. The SEO of a content site is won exactly there.

The right framework is the one whose pitfalls you already know. Experience transfers poorly between ecosystems, and experience is what makes you code fast.

Where TanStack excels

Prospect Tracker is a real web app: lists that filter, prospecting statuses that change, data that has to stay in sync across multiple views in real-time. End-to-end typed routing and surgical server cache management are worth way more here than any build-time gain.

SEO? Nonexistent. Nobody indexes a private dashboard. All the energy Next spends on static rendering would be entirely wasted here.

Build for users, not devs

Today, coding a SaaS is almost the easy part. The real war, the thing that kills 90% of projects, is acquisition.

That's why I'm building Prospect Tracker in public. I refuse to wait for the product to be "perfect" before showing it. My goal is to build it based on actual user feedback.

In fact, before I even typed my first npm create command with TanStack, I validated the market need. How? With a simple Tally form shared on my socials.

Tally form to validate Prospect Tracker's market need

Shameless plug: If you're a freelancer managing your prospecting on a clunky old Notion board and want to help shape the tool (and get early free access), the form is still open right here: Share your thoughts on Tally.

In practice

Both projects are in production. That's the only criterion that stands the test of time: Ship first.

A project shipped with an "average" framework will teach you infinitely more than a perfect project rotting on your localhost. User feedback, edge cases, real performance issues: none of it shows up before you go live. And remember: your stack choice is reversible. The core of your business logic doesn't depend on the framework.

If you're torn between two techs for your next side-project, ask yourself the useful questions:

  • Which one do I know well enough to ship this month?
  • Does my project need SEO, or is it hidden behind a login?
  • Will I be able to debug a prod issue at 10 PM with this tool?

The answers point to the same stack almost every time. And spoiler alert: it's almost never the one everyone is hyping up today.

RM
Rabie MenadFreelance & Entrepreneur

I design and ship high-performance web products with React & Next.js. Let's talk about your project.

More posts