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 shellslibs/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
- Install Skills:
npx skills add TinyshipCN/tinyship-skills - Ask your agent to set up TinyShip (framework + database), or “all-in Cloudflare” when that is the target
- Configure auth and payment providers with the matching Skills
- Optionally run a Recipe (
directory,ai-image,ai-chat,waitlist, …) so the homepage and nav match the product you are shipping - 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
- Compare stacks on the site — gettinyship.dev/stacks
- User guide — monorepo, auth, payment, Recipes: docs.gettinyship.dev/en/user-guide
- Pricing — TinyShip Complete $49 / lifetime (Complete + TinyShip CF, future templates, private GitHub, commercial rights); checkout via Dodo Payments: gettinyship.dev/pricing
- Email — [email protected]
If your primary customers pay with WeChat Pay / Alipay, use tinyship.cn. This English guide stays on overseas OAuth and card processors.