Next.js 15 vs Astro 6 vs TanStack Start
Tiga framework full-stack TS dengan filosofi beda. Saya pakai Next.js 15 di 4 project, Astro 6 di 3 project, TanStack Start di 2 project sejak rilis stable. Verdict tergantung shape project.
TL;DR
- Next.js 15: Ekosistem terbesar, App Router + RSC matang. Conditional Recommend untuk SaaS multi-tenant.
- Astro 6: Content-first, Islands Architecture, build paling cepat. Conditional Recommend untuk marketing + content site.
- TanStack Start: SSR + client-state unified, powerful untuk app data-heavy. Conditional Recommend untuk dashboard kompleks.
- Verdict: pilih berdasarkan shape project — content (Astro), full SaaS (Next.js), atau app interaktif (TanStack Start).
Konteks
Saya pakai ketiga framework di 9 project SMB Indonesia 2024-2026:
- Next.js 15 (App Router): 4 project — SaaS dental Jakarta, marketing site klien, ecommerce klinik kecantikan, admin panel HR
- Astro 6: 3 project — portfolio fotografer Tangerang, landing klinik dental, blog tech personal
- TanStack Start: 2 project — internal dashboard SaaS HR, admin panel ecommerce warung scale
Total 18 bulan compare apple-to-apple. Stack pendamping: Drizzle atau Prisma, Postgres (Neon/Supabase), Cloudflare/Vercel deploy.
Pricing (Juni 2026)
Framework sendiri gratis (open-source). Tapi hosting bedanya signifikan:
Next.js 15
- Vercel Hobby: free (limit 100GB bandwidth)
- Vercel Pro: $20/user/bulan = Rp 320rb/user
- Cloudflare Pages (via
@cloudflare/next-on-pages): free tier generous, $5/bulan untuk Workers
Astro 6
- Cloudflare Pages: free hingga 100K request/hari
- Vercel Hobby: free
- Netlify: free hingga 100GB bandwidth
TanStack Start
- Cloudflare Workers: $5/bulan untuk paid
- Vercel: $20/bulan
- Bun/Node.js server di VPS Niagahoster: Rp 60-150rb/bulan
Untuk SaaS Indonesia 2026 dengan 50K MAU: total hosting Rp 0-640rb/bulan tergantung framework + provider.
Performance comparison
Build same project (5 page marketing + 3 blog post + 2 dashboard view):
| Framework | Cold build | Bundle size client | Page Lighthouse (mobile) |
|---|---|---|---|
| Next.js 15 | 65s | 180 KB | 92 |
| Astro 6 | 18s | 12 KB | 99 |
| TanStack Start | 42s | 145 KB | 94 |
Astro paling efisien untuk static content. Next.js + TanStack Start similar untuk app-heavy.
TTFB Jakarta dari CF edge (same project):
| Framework | TTFB median | LCP median |
|---|---|---|
| Next.js 15 (SSR) | 85ms | 1.6s |
| Astro 6 (static) | 18ms | 0.9s |
| TanStack Start | 92ms | 1.7s |
Astro 5x lebih cepat TTFB karena static-by-default. Next.js + TanStack Start comparable.
Feature comparison
| Feature | Next.js 15 | Astro 6 | TanStack Start |
|---|---|---|---|
| RSC | Native | Via Server Islands | Tidak (TanStack Query) |
| File-based routing | Yes | Yes | Yes |
| API routes | Native | Native (since v4) | Native (Start Functions) |
| Streaming SSR | Yes | Yes | Yes |
| ISR | Native (Vercel) | Manual | Manual |
| Image optimization | Native | Native | External |
| TypeScript | Excellent | Excellent | Excellent (TanStack DNA) |
| Form action | Server Actions | Form Actions | Start Functions |
| Edge runtime | Yes | Yes | Yes |
| Ekosistem plugin | Terbesar | Medium | Kecil-medium |
Trade-off
Next.js 15
Pro: Ekosistem paling matang — semua library, payment, auth ada integration. Documentation rapih. Deploy 1-click di Vercel/CF. App Router + RSC sudah mature setelah 2 tahun iterasi.
Con: Bundle size relatif besar untuk landing simple. Vendor lock-in moderate (banyak fitur Vercel-specific). ISR migration ke CF Pages butuh refactor. Cold start serverless 300-800ms.
Astro 6
Pro: Build paling cepat. Bundle client minimal (ship 0 JS by default). Content collection + MDX integration excellent. Cocok untuk content-heavy yang prioritize SEO + LCP.
Con: Awkward untuk app dengan state global complex. Server Islands masih iterating — beberapa pattern feel verbose. Migration dari Astro ke React framework lain butuh effort signifikan.
TanStack Start
Pro: Type safety end-to-end paling kuat (TanStack DNA). Router file-based + type-safe inferred. Cocok untuk dashboard interaktif. Start Functions + TanStack Query unified workflow.
Con: Ekosistem terkecil dari ketiga. Banyak library belum punya recipe. Documentation OK tapi tidak as polished as Next.js. Community kecil — Stack Overflow answer sedikit.
Konteks Indonesia
Untuk SMB Indonesia 2026:
Klinik dental SaaS Jakarta (saya migrate Astro → Next.js 15 2025): butuh multi-tenant routing, auth Clerk, payment Midtrans. Next.js 15 fit. Bill hosting Rp 320rb/bulan di Vercel atau Rp 80rb di CF Pages.
Marketing site klien fotografer Tangerang (Astro 6): 5 page + portfolio gallery. Bill hosting Rp 0/bulan di CF Pages. Lighthouse 99/99/100/100. Customer di local Tangerang TTFB 15-20ms.
Internal dashboard HR SaaS Jakarta (TanStack Start): 12 view dengan tabel + filter + chart. State management dengan TanStack Query + TanStack Router type-safe. Productivity 20-30% lebih tinggi dari pengalaman saya dengan Next.js untuk app similar.
Use case decision matrix
| Tipe project | Recommended |
|---|---|
| Marketing site + blog | Astro 6 |
| Portfolio personal | Astro 6 |
| SaaS multi-tenant | Next.js 15 |
| Ecommerce SMB | Next.js 15 |
| Dashboard internal data-heavy | TanStack Start |
| Admin panel dengan banyak form | TanStack Start atau Next.js 15 |
| Microservice + multiple sub-app | Next.js 15 |
| Content + dokumentasi | Astro 6 |
Migration paths
Astro → Next.js 15
Effort: 12-24 jam untuk 10-15 page. Mostly mechanical (.astro → .tsx), tapi state management butuh refactor.
Next.js → TanStack Start
Effort: 16-32 jam untuk app medium. Router config beda — App Router → TanStack Router butuh remap. State + data fetching pattern beda.
Next.js → Astro
Effort: 8-16 jam jika project mostly static. Stripping client state + convert to Server Islands. Trivial untuk marketing site, hard untuk app.
Yang surprising
TanStack Start stability lebih bagus dari ekspektasi. Saya prediksi banyak edge case bug di 6 bulan pertama post-stable, tapi 2 project saya zero blocker. Tapi ekosistem plugin masih jarang — untuk integration Midtrans saya butuh write custom 200 LOC dibanding Next.js yang tinggal install plugin.
Next.js 15 App Router akhirnya matang. Setelah 2 tahun churn (App Router rilis 2023), pattern best-practice sudah jelas. Server Actions handle 80% form workflow tanpa client JS.
Astro 6 Server Islands lebih powerful dari yang saya kira. Bisa handle component yang sebelumnya butuh client framework, tetap ship 0 JS untuk static part.
Verdict
Conditional Recommend untuk ketiga:
Pakai Next.js 15 jika:
- SaaS multi-tenant atau ecommerce SMB
- Butuh ekosistem matang (auth, payment, analytics integration)
- Tim familiar React + ingin productivity tinggi
- Deploy Vercel atau CF Pages
Pakai Astro 6 jika:
- Content-heavy: marketing, blog, portfolio, dokumentasi
- Prioritize LCP + SEO + bundle size
- Static-mostly dengan beberapa interactive component
- Budget hosting Rp 0/bulan
Pakai TanStack Start jika:
- Dashboard atau admin panel data-heavy
- Tim sudah familiar TanStack Query/Router
- Butuh type safety end-to-end maximal
- Comfort dengan ekosistem yang masih growing
Skip jika: project Anda tidak fit salah satu kategori. Untuk hybrid (marketing + app), pakai 2 framework di monorepo — Astro untuk marketing, Next.js/TanStack untuk app.
Untuk hosting pilihan: Vercel vs Cloudflare migration guide.
Ditulis oleh Asti Larasati