TanStack Ship Review 2026: Complete Features & Stack Guide

Ehrliches 2026-Review von TanStack Ship — was es liefert, der TanStack-Start-+-Cloudflare-Stack, die 14 Produktionsmodule und die Trade-offs beim Aufbau von 3 SaaS-Produkten.

Huifer
Huifer
7. Juli 202610 min read
Auch verfügbar auf:English

Geschrieben von Huifer, Solo-Entwickler und Maintainer von TanStack Ship. Seit Januar 2025 habe ich drei produktionsreife SaaS-Produkte mit TanStack Ship veröffentlicht – ein UTM-Attributionstool, ein mehrsprachiges Blog-CMS und eine kostenpflichtige Newsletter-Plattform. Jedes Modul und jede Laufzeitangabe in diesem Review stammt aus diesen Deployments, nicht aus Marketingmaterial. Als Maintainer bin ich voreingenommen – deshalb benenne ich in diesem Beitrag auch die Fälle, in denen TanStack Ship die falsche Wahl ist.

Verifizierte Quellen: TanStack Start Documentation · TanStack Router Documentation · Cloudflare Workers Documentation · Cloudflare D1 Documentation · TanStack Ship GitHub Organization Letztes Update: 2026-07-07 · Changelog


Kurzfassung: TanStack Ship ist ein SaaS-Starter für Solo-Entwickler, die das TanStack-Ökosystem (Router, Start, Query) auf Cloudflare Workers + D1 + R2 betreiben möchten, mit 14 produktionsreifen Modulen für Auth, Billing, Admin, Blog, i18n, Referral, E-Mail und UTM-Attribution. Er kostet einmalig $149 und ist die richtige Wahl, wenn Cold-Start-Latenz, Edge-Abdeckung und Lock-in-Vermeidung wichtig für Sie sind. Die falsche Wahl ist er, wenn Sie Vercels DX, eine 35k-Star-Community oder eine Next.js-Codebasis möchten. Im Folgenden erläutere ich den Stack, die Module, meine echten Deployment-Erfahrungen, die Einschränkungen und die Preisgestaltung.


Was TanStack Ship 2026 tatsächlich ist

TanStack Ship ist kein Framework. Es ist ein produktionsreifer SaaS-Starter, der TanStack Start, TanStack Router, TanStack Query, Better Auth, Stripe, Cloudflare D1 und Cloudflare R2 in einer einzigen opinionierten Codebasis zusammenführt, mit der eine Person an einem Wochenende ein kostenpflichtiges Produkt live schalten kann. Die aktuelle Version (4.x, veröffentlicht im März 2026) liefert 14 Produktionsmodule und ersetzt etwa 4 bis 8 Wochen Solo-Dev-Setup.

Der Starter existiert aus einem Grund: 2024 bin ich mit meinem ersten SaaS von ShipFast und Next.js abgewichen, weil Vercel Egress bei einem $29-Produkt $240/Monat kostete. Ich habe den Stack auf TanStack Start + Cloudflare Workers umgeschrieben, die Egress-Kosten auf null gehalten und wollte diese Verkabelung für das nächste Produkt wiederverwenden. TanStack Ship ist diese Verkabelung, verpackt.

Es ist wichtig, dies vom TanStack-Framework selbst zu unterscheiden. TanStack ist eine Sammlung von headless Bibliotheken, gepflegt von Tanner Linsley und Mitwirkenden. TanStack Ship ist ein nachgelagerter Starter, der diese Bibliotheken verwendet und die geschäftliche Klebe-Logik hinzufügt – Auth, Billing, Admin, Blog, i18n, Referral, UTM –, die jedes SaaS braucht, aber niemand standardmäßig mitliefert. Einen direkten Vergleich mit ShipFast finden Sie im TanStack Ship vs ShipFast Vergleich.

Der Stack: TanStack Start + Cloudflare Workers + D1 + R2

Die Laufzeitentscheidung treibt alles andere. TanStack Ship standardisiert auf fünf Komponenten, jede aus einem bestimmten Grund gewählt:

TanStack Start als Framework

Laut der TanStack Start Dokumentation ist TanStack Start das Full-Stack-Framework, das TanStack Router mit Server Functions, dateibasiertem Routing und SSR kombiniert. Es ist jünger als Next.js (erste Stable-Version 2024), aber die Typsicherheit ist Ende-zu-Ende: Routen, Loader, Server Functions und Datenbankabfragen fließen alle durch dieselben TypeScript-Typen. Der Compiler fängt einen fehlenden Loader-Parameter ab, bevor die Anfrage auf die Leitung geht.

Ich habe mich aus zwei Gründen für Start statt Next.js entschieden. Erstens: Server Functions sind First-Class und werden statisch importiert – kein API-Route-Ordner, keine separate Fetch-Verkabelung. Zweitens: Das Bundle enthält nur die erreichbaren Routen, wodurch meine Cold-Start-Zeiten in der Produktion unter 5ms blieben.

Cloudflare Workers als Laufzeit

Cloudflare Workers ist laut der Cloudflare Workers Dokumentation eine V8-Isolate-Laufzeit mit über 300 Edge-Standorten, abgerechnet pro Anfrage statt pro Serverstunde. TanStack Ship wird mit wrangler deploy deployed und bedient Anfragen vom nächstgelegenen POP des Nutzers. Die mittlere Cold-Start-Latenz in meinen letzten 30 Produktionstagen lag bei 4,7ms.

Cloudflare D1 als Datenbank

Laut der Cloudflare D1 Dokumentation ist D1 SQLite am Edge – repliziert über das Netzwerk, abgefragt vom nächstgelegenen POP, abgerechnet pro Zeile gelesen und geschrieben. Das Kostenmodell ist der entscheidende Punkt: Mein UTM-Attributionsprodukt bedient 12 Mio. Zeilen/Monat und die Juni-2026-Rechnung belief sich auf $4,20. Dieselbe Workload auf Postgres + separatem Connection Pooler wäre 5–10× teurer.

Cloudflare R2 für Storage

R2 ist Object Storage ohne Egress-Gebühren. TanStack Ship nutzt es für Benutzer-Uploads, Blog-Hero-Bilder und Admin-Dateibrowser. Egress-frei ist das Wesentliche: Ich habe noch nie eine R2-Egress-Gebühr bezahlt – nur Storage und Operationen.

Better Auth für Authentifizierung

Better Auth ist Stand Mitte 2026 die auth-Bibliothek mit der besten Edge-Unterstützung. Sie unterstützt D1 als Session-Store, E-Mail-Passwort, OAuth und Passkeys, ohne einen separaten Auth-Service zu erzwingen. Der Trade-off gegenüber Clerk oder Auth0 besteht darin, dass Sie die Session-Tabelle selbst besitzen – das bedeutet, Sie können sie ohne API-Quote aus dem Admin-SQL lesen, aber Sie tragen auch die Migrationslast, wenn sich Better Auths Schema ändert. Diesen Trade-off habe ich gerne akzeptiert, weil jede Clerk-Integration, die ich zuvor verwaltet hatte, bei jeder Anfrage einen Netzwerk-Hop hinzufügte.

typescript
// src/lib/auth.ts — die Auth-Verkabelung, die TanStack Ship mitliefert
import { betterAuth } from "better-auth"
import { drizzleAdapter } from "better-auth/adapters/drizzle"
import { db } from "./db"

export const auth = betterAuth({
  database: drizzleAdapter(db, { provider: "sqlite" }),
  emailAndPassword: { enabled: true },
  socialProviders: { github: { clientId: process.env.GITHUB_CLIENT_ID! } },
})

Diese Datei ist das gesamte Auth-Setup. E-Mail-Passwort, GitHub OAuth und D1-Session-Storage funktionieren.

Die 14 Produktionsmodule im Inneren

Das wichtigste Differenzierungsmerkmal gegenüber einer handgerollten TanStack-Start-Codebasis ist die Modulbibliothek. TanStack Ship liefert 14 produktionsreife Module, für die ein Solo-Entwickler sonst Wochen bräuchte:

Auth-Modul

E-Mail-Passwort, GitHub OAuth, Passkeys, Magic Links und D1-Session-Storage. Enthält eine Anmelde-/Registrierungs-UI und einen „Passwort vergessen"-Flow. Produktionsgetestet über drei Produkte seit 2025.

Stripe-Billing-Modul

Stripe Checkout, Kundenportal, Webhook-Handler mit Idempotenz-Keys und eine dynamische Preis-Engine. Die Preis-Engine liest aus einer JSON-Konfiguration, sodass ein Launch-Wochen-Rabatt keinen Redeploy erfordert. Enthält MRR- und ARR-Admin-Dashboards.

Referral-System

Integrierte Credits, Invite-Codes und ein Credit-Ledger in D1. Eines der drei Produkte, die ich shipped habe, nutzte dies als primären Growth-Hebel; Anmeldungen über Invite-Codes lagen in den ersten 90 Tagen durchschnittlich bei 18 %.

E-Mail-Campaign-Modul

HTML-E-Mail-Editor, Cloudflare Queues für asynchronen Versand, Bounce- und Complaint-Handling sowie Unsubscribe-Links. Versendet über Resend oder SES; beide Adapter sind im Starter enthalten.

Blog-CMS

MDX + i18n (Englisch, Chinesisch, Deutsch standardmäßig) + Shiki-Syntax-Highlighting + Mermaid-Diagramm-Unterstützung. Das CMS enthält einen Entwurfsmodus, geplante Beiträge und eine Bild-Pipeline, die nach R2 pushen kann.

UTM-Attributionsmodul

SSR-seitige UTM-Erfassung, Cookie-Persistenz und ein ROI-Dashboard pro Kanal. Dies ist das Modul, das ursprünglich die Migration von ShipFast ausgelöst hat – ich brauchte First-Touch- und Last-Touch-Attribution ohne Abhängigkeit von einem Drittanbieter-Script.

Admin-Modul

14 Submodule, darunter Benutzerverwaltung, Dateibrowser (R2), Audit-Logs, Feature-Flags, Plan-Overrides und ein benutzerdefinierter SQL-Runner mit Rollenprüfungen. Das Admin-Panel liest aus derselben D1-Datenbank wie die Anwendung.

i18n-Modul

Paraglide JS für typsichere Übersetzungen, Englisch-/Chinesisch-/Deutsch-Bundles vorgebaut, und ein Locale-Switcher, der in den Router eingebunden ist. Eine vierte Locale hinzuzufügen ist eine Ein-Zeilen-Konfigurationsänderung.

Die verbleibenden sechs Module

Marketing-Seiten (Pricing, FAQ, Rechtliches), Waitlist mit Double-Opt-in, Kontaktformular mit Turnstile-Schutz, Webhook-Inbox für Stripe-Debugging, eine CLI für Ein-Befehl-Modul-Scaffolding und ein Lighthouse-CI-Dashboard, das den Deployment bei Regressionen der Core Web Vitals scheitern lässt. Die CLI ist der Teil, den die meisten unterschätzen – sie scaffollt ein neues Modul mit pnpm ship generate <name> und verkabelt es im Admin-Nav, dem Route-Tree, dem i18n-Bundle und der Migration in einem Schritt. Ohne diese CLI bedeutet das Hinzufügen eines Moduls sechs Dateien per Hand zu bearbeiten und eine davon jedes zweite Mal zu vergessen.

Wie ich damit gebaut und deployed habe

Das erste Produkt, das ich mit TanStack Ship deployed habe, war ein UTM-Attributionstool im Februar 2025. Setup bis zur ersten Stripe-Zahlung dauerte 11 Tage, davon 6 Tage Wartezeit auf die Stripe-Prüfung. Das zweite war ein mehrsprachiges Blog-CMS im August 2025 – 4 Tage Setup. Das dritte war eine kostenpflichtige Newsletter-Plattform im März 2026 – 6 Tage, einschließlich E-Mail-Warmup und einer D1-Read-Replica-Migration in Woche zwei.

Der größte Einzelgewinn war kein Modul. Es war der Deployment-Vertrag: Jedes Produkt wird mit wrangler deploy auf Cloudflare deployed, und jedes Produkt hat dieselbe Überwachung, dieselbe Fehlerberichterstattung und denselben Rollback-Pfad. Als ich D1 bei 200 req/s auf dem dritten Produkt kaputt gemacht habe, war der Rollback wrangler rollback – 90 Sekunden. Derselbe Rollback auf einer parallel laufenden Vercel-gehosteten Next.js-App dauerte 8 Minuten wegen Build-Cache-Invalidierung.

Eine spezifische Anekdote, die es wert ist, erwähnt zu werden: Beim zweiten Produkt, dem Blog-CMS, bin ich während eines Hacker-News-Traffic-Spikes bei 180 req/s auf einen D1-Write-Lock gestoßen. Kurz gesagt: Ich habe innerhalb von 48 Stunden eine Read-Replica-Routing-Schicht in TanStack Ships db-Modul deployed, und derselbe Fix wurde auf alle drei Produkte ausgerollt, weil sie dieselbe Codebasis teilten. Diese Art von plattformübergreifendem Fix ist der strukturelle Vorteil der Konsolidierung auf einen Starter.

Ehrliche Einschränkungen und was es nicht ist

TanStack Ship ist in drei Fällen die falsche Wahl:

  • Sie möchten Vercels DX. Wenn Sie auf Vercel deployen, ist das Developer Experience unerreicht. TanStack Ship auf Cloudflare ist gut, nicht magisch. wrangler dev hat nicht Vercels Preview-Branch-UX, und Cloudflares Observability-Dashboard ist weniger ergonomisch als Vercels.
  • Sie möchten eine 35k-Star-Community. ShipFast hat 35.000 GitHub-Stars und einen Discord mit Tausenden Nutzern. TanStack Ship hat 3.000 Stars und einen kleinen Discord. Drittanbieter-Tutorials sind dünn gesät, und die Antwort auf die meisten Edge-Cases lebt in meinem Kopf, nicht auf Stack Overflow.
  • Sie brauchen eine Next.js-Codebasis. TanStack Ship liefert TanStack Router, nicht Next.js. Wenn Ihr Team Next.js-Muskelgedächtnis hat, ist die Lernkurve real – dateibasiertes Routing ist ähnlich, aber nicht identisch, Server Functions ersetzen API-Routen, und der Bundler ist Vite statt Turbopack.

TanStack Ship ist außerdem nicht bei 10k req/s getestet. Meine größte Produktions-Workload liegt bei 1.800 req/s Peak. Darüber hinaus kann ich zum Verhalten keine Aussage treffen – und ich werde nicht so tun, als könnte ich es.

Preisgestaltung und für wen es sich eignet

TanStack Ship kostet $149 einmalig für die Personal-Lizenz, mit einer $449 Team-Lizenz und einer $899 Agency-Lizenz. Alle drei beinhalten lebenslange Updates und die 14 oben aufgeführten Module. Es gibt keine monatliche Gebühr und kein Nutzungslimit innerhalb der Lizenz.

Greifen Sie zu TanStack Ship, wenn Cold Start, Edge-Abdeckung, Kostenkalkulierbarkeit und Lock-in-Vermeidung mehr wiegen als Community-Größe. Greifen Sie zu ShipFast, wenn Community und Vercel DX schwerer wiegen. Greifen Sie zu Makerkit, wenn UI-Politur Ihr Launch-Blocker ist.

Eine minimale wrangler.toml, die die Bindings zeigt, die TanStack Ship beim ersten Deployment erwartet:

toml
# wrangler.toml — TanStack Ship Cloudflare-Bindings
name = "tanstack-ship-app"
main = "./build/server/index.js"
compatibility_date = "2026-07-01"

[[d1_databases]]
binding = "DB"
database_name = "tanstack-ship-db"
database_id = "<your-d1-id>"

[[r2_buckets]]
binding = "STORAGE"
bucket_name = "tanstack-ship-storage"

Drei Bindings und die App ist live. Kein Vercel-Projektlink, kein Build-Cache zum Aufwärmen.

Den vollständigen Feature-Vergleich mit ShipFast finden Sie im TanStack Ship vs ShipFast Breakdown. Die Preistiers und was auf jeder Stufe enthalten ist, finden Sie auf der Preisseite. Und wenn Sie einen direkten Vergleich mit jedem anderen Starter möchten, den ich evaluiert habe, deckt der Beste SaaS-Boilerplate 2026-Roundup 15 Optionen ab.


Sie möchten die Verkabelung ohne den Preis? Beginnen Sie mit der Feature-Seite für die vollständige Modulliste, der Preisseite für Lizenzbedingungen, oder gehen Sie direkt zu TanStack Ship auf GitHub, um den Quellcode zu lesen. Jedes in diesem Beitrag referenzierte Modul befindet sich im Repo.