Next.js vs Nuxt vs TanStack Start for SaaS starters (2026)

Choosing a SaaS starter often collapses into “which framework?” That question matters—but for TinyShip it is not a one-way door. Next.js, Nuxt, and TanStack Start apps share the same core libraries for auth, payment, i18n, and UI. This guide helps you pick a fit for your team, then shows how one monorepo and agent Skills keep the rest aligned.

We are not ranking frameworks globally, inventing benchmark scores, or claiming traffic leadership. Fit is personal: hiring pool, existing code, and where you deploy.

What you're optimizing

Before you compare logos, write down what you are actually optimizing:

Priority What to optimize for
Hiring / muscle memory React vs Vue talent on your team or freelancers
Ecosystem defaults Next.js still has the widest SaaS-boilerplate chatter; Nuxt owns Vue SSR comfort; TanStack Start is newer and closer to TanStack Router/Query mental models
Deploy target Vercel-shaped Node apps, Cloudflare Workers / D1, Docker, or something else
Agent workflow Whether your coding agent already writes better React or better Vue
Long-term lock-in Whether switching UI framework later would force a second boilerplate purchase

TinyShip’s job is the last row: shared libs/ so auth sessions, payment providers, credits, and schema stay consistent whichever apps/* shell you run.

Fit per framework

Next.js

Choose Next.js when your team already ships React App Router apps, your tutorials and hiring assume Next, or you want the path of least social friction (“everyone knows Next SaaS kits”).

In TinyShip: the Next app lives under apps/next-app/ and pulls shared React pieces from libs/react-shared plus shared UI, auth, and payment libraries. Same Better Auth–based flows and payment adapters as the other shells.

Tradeoff: if half your future work is Vue, starting Next-only in a single-framework kit means buying or rewriting later. Here you can keep Nuxt as a sibling app instead.

Nuxt

Choose Nuxt when you prefer Vue, Nuxt’s conventions (file-based routes, Nitro, modules), or you are building for a Vue-heavy product team.

In TinyShip: apps/nuxt-app/ uses the same database, auth, payment, and i18n libraries as Next and TanStack. Marketing and docs sites for TinyShip itself lean Nuxt for the English marketing surface—useful signal that Vue is first-class, not a port.

Tradeoff: generic “SaaS boilerplate” search results skew Next. You may need to lean on TinyShip docs and Skills rather than random blog posts aimed at Next kits.

TanStack Start

Choose TanStack Start when you want a React stack centered on TanStack Router / Query patterns, or you are exploring newer full-stack React tooling beyond the classic Next defaults.

In TinyShip: apps/tanstack-app/ shares React UI helpers with Next and the same backend libraries. Current product notes on the site also call out Cloudflare-aligned builds that highlight TanStack Start—check gettinyship.dev and the user guide for the live deployment paths.

Tradeoff: smaller public tutorial surface than Next. Expect to rely on official TanStack docs plus TinyShip Skills for setup and deploy.

Quick picker

  • Only React, maximum community noise → Next.js
  • Vue team → Nuxt
  • TanStack-first React → TanStack Start
  • Unsure → start with whatever your agent and team already write well; you are not buying a second starter to change later inside TinyShip

Why one monorepo

A typical single-framework kit hard-codes Stripe calls, session helpers, and schema in the app tree. Switching frameworks means forking that kit.

TinyShip’s layout (from the current docs) keeps applications thin and libraries thick:

  • apps/next-app, apps/nuxt-app, apps/tanstack-app — framework shells
  • libs/database, libs/auth, libs/payment, libs/i18n, libs/ai, libs/ui, … — shared contracts

Auth defaults for the English path: email/password, Google, GitHub. Payments: Stripe, PayPal, Creem, Dodo Payments. Provider adapters and env config are how you swap services—the stacks page frames this as No Vendor Lock-in.

Recipes deliberately do not pick your framework. tinyship-setup (or you) chooses Next / Nuxt / TanStack and PostgreSQL / SQLite / D1; the Recipe then reshapes product pages and schema on top.

Skills path

  1. Install Skills: npx skills add TinyshipCN/tinyship-skills
  2. Ask your agent to set up TinyShip (framework + database), or “all-in Cloudflare” when that is the target
  3. Configure auth and payment providers with the matching Skills
  4. Optionally run a Recipe (directory, ai-image, ai-chat, waitlist, …) so the homepage and nav match the product you are shipping
  5. Deploy with the deploy / Cloudflare Skills as documented

That path is the same whether the UI shell is Next, Nuxt, or TanStack Start. The agent is taught the monorepo contracts once.

CTA

If your primary customers pay with WeChat Pay / Alipay, use tinyship.cn. This English guide stays on overseas OAuth and card processors.