← Semua picks

Bundle Recipe Recommended

Astro + Tailwind + shadcn/ui + Drizzle: SaaS starter 2026

bundle SaaS starter 2026: Astro + Tailwind + shadcn/ui + Drizzle — setup awal yang solid

30 Agustus 2026 · 8 menit ·Use case: Memilih bundle teknologi untuk membangun SaaS starter yang ringan, type-safe, dan maintainable di 2026 tanpa over-engineer setup awal.
AstroTailwindshadcn/uiDrizzle

Kenapa bundle ini relevan di 2026

SaaS Indonesia lagi booming. Tapi banyak dev yang masuk ke rabbit hole: Next.js + Prisma + Supabase + Auth0 + Vercel Pro + setup yang mahal sebelum satu user pun ada. Setup over-engineered di awal adalah salah satu reason startup teknis gagal bukan karena produk, tapi karena burn rate infra sebelum validasi.

Bundle ini berbeda. Astro + Tailwind + shadcn/ui + Drizzle adalah stack yang bisa mulai gratis, scale ke ribuan user, dan tidak menyeret kamu ke vendor lock-in yang berat. Keempatnya open source, battle-tested di production 2025-2026, dan bekerja natural di ekosistem Cloudflare yang punya edge node di Jakarta.

Ini bukan stack untuk semua orang. Tapi untuk SaaS yang punya landing page, beberapa halaman dashboard, dan koneksi database — ini salah satu setup paling cost-efficient yang saya pakai.

Perbandingan komponen bundle

DimensiAstroTailwind v4shadcn/uiDrizzle
Bundle runtime0 JS by default0 JS0 JS (copy-paste)~120KB
DXExcellent (.astro file)ExcellentExcellentGood (SQL-like API)
Cold startFast (static-first)N/AN/AVery fast (no binary)
Latency ke JakartaOptimal (CF Pages)N/AN/AOptimal (Neon/Turso)
HargaGratis (CF Pages)GratisGratisGratis
KustomisasiTinggiTinggiPenuh (owned code)Tinggi
EkosistemBesar (React island)Terbesar di utility CSSReact-firstBerkembang cepat

Astro

Astro 5 adalah fondasi yang solid untuk SaaS starter karena model mental-nya tepat: ship HTML by default, hydrate hanya yang perlu. Untuk halaman landing, pricing, dan docs — tidak ada JS yang dikirim ke browser. Untuk dashboard yang butuh reactivity, kamu pakai React island dengan directive client:load atau client:visible.

Keunggulan praktis: Astro Actions (stable di v4+, mature di v5) sudah integrate dengan Zod secara native. Artinya form handling di server — validasi, database write, redirect — bisa dilakukan tanpa setup API route manual. Ini killer feature yang mengurangi boilerplate signifikan untuk SaaS yang banyak operasi CRUD-nya sederhana.

Kelemahan yang perlu disadari: kalau halaman aplikasi kamu hampir semuanya interactive state (real-time collaboration, drag-and-drop editor, live dashboard), overhead client: island akan terasa. Di titik itu, pertimbangkan Next.js 15 App Router atau TanStack Start. Tapi untuk 70% SaaS Indonesia yang saya observasi — landing + auth + dashboard simpel + settings page — Astro sangat cukup.

Satu hal yang sering dilewatkan: Astro deploy ke Cloudflare Pages dengan zero config, dan CF Pages punya edge node di Jakarta. LCP dari Jakarta ke Cloudflare bisa konsisten di bawah 300ms untuk static page. Untuk SEO dan first impression user Indonesia, ini penting.


Tailwind CSS v4

Tailwind v4 adalah upgrade yang worth — migration dari v3 ke v4 sekitar 1-2 jam untuk project medium (ada panduan migrasi sendiri), dan hasilnya: CSS output lebih kecil, konfigurasi berbasis CSS variable native, dan performa build lebih cepat.

Untuk SaaS starter, Tailwind adalah pilihan obvious: utility-first artinya tidak ada CSS file terpisah yang perlu dikelola, komponen bisa dikustomisasi langsung di JSX/HTML, dan desain system bisa dibangun incremental. Gen Z dev yang terbiasa dengan Tailwind akan langsung produktif tanpa onboarding khusus.

Kelemahan relatif: className panjang bisa jadi noise di code review. Solusi praktis: extract komponen kecil dengan Astro component atau React component untuk pattern yang diulang, jangan pakai @apply terlalu agresif (melawan grain Tailwind).


shadcn/ui

shadcn/ui bukan UI library dalam pengertian tradisional. Kamu tidak npm install shadcn. Kamu npx shadcn@latest add button dan file komponen ter-copy ke project kamu. Ownership penuh.

Ini model yang tepat untuk SaaS starter karena: tidak ada dependency runtime yang menggembungkan bundle, kamu bisa modifikasi setiap komponen tanpa melawan API library, dan saat ada breaking change di upstream kamu tidak harus upgrade paksa.

Komponen shadcn/ui dibangun di atas Radix UI primitive — accessible by default, keyboard navigation, screen reader support. Untuk SaaS yang ingin compliance aksesibilitas dasar tanpa effort ekstra, ini gratis.

Untuk Astro, shadcn/ui works sebagai React island. Setup awal: install React integration di Astro, copy komponen shadcn, gunakan di dalam island dengan client:load. Tidak ada magic, tidak ada surprise.


Drizzle ORM

Drizzle adalah ORM yang paling “SQL-like” di ekosistem TypeScript. Kalau kamu mengerti SQL, kamu akan langsung nyaman dengan Drizzle — API-nya tidak menyembunyikan query, sehingga kamu bisa predict persis SQL yang digenerate.

Keunggulan utama untuk SaaS starter: zero cold start. Tidak ada binary engine seperti Prisma. Drizzle adalah pure TypeScript/JavaScript yang bisa deploy ke Cloudflare Workers, Vercel Edge, atau Bun tanpa friction. Untuk serverless SaaS di 2026, ini bukan nice-to-have — ini requirement.

Dengan drizzle-zod, kamu bisa generate Zod schema langsung dari Drizzle table definition. Satu source of truth: schema database = validation schema = TypeScript type. Untuk SaaS yang punya banyak form dengan validation, ini signifikan mengurangi boilerplate.

Kelemahan: migration tooling Drizzle (drizzle-kit) lebih manual dari Prisma Migrate. Kamu perlu lebih careful saat rename column atau restructure table. Dan belum ada equivalent Prisma Studio yang as polished — Drizzle Studio ada tapi masih developing. Untuk tim solo atau duo, ini manageable. Untuk tim 5+ yang butuh non-engineer bisa browse database, Prisma Studio atau langsung pakai tools seperti TablePlus lebih praktis.


Setup awal: urutan yang saya rekomendasikan

# 1. Init Astro dengan React + Tailwind
npm create astro@latest my-saas -- --template minimal
npx astro add react tailwind

# 2. Setup shadcn/ui
npx shadcn@latest init

# 3. Install Drizzle + adapter (contoh: Neon serverless)
npm install drizzle-orm @neondatabase/serverless
npm install -D drizzle-kit

Schema Drizzle pertama yang hampir selalu dibutuhkan SaaS:

// src/db/schema.ts
import { pgTable, text, timestamp, boolean } from 'drizzle-orm/pg-core';

export const users = pgTable('users', {
  id: text('id').primaryKey(),
  email: text('email').notNull().unique(),
  createdAt: timestamp('created_at').defaultNow().notNull(),
  isPro: boolean('is_pro').default(false).notNull(),
});

Verdict

Pakai bundle ini kalau:

  • SaaS kamu punya landing page + beberapa halaman dashboard dengan interaktivitas moderate
  • Deploy target adalah Cloudflare Pages / Workers atau Vercel Edge
  • Budget infra awal harus di bawah 10 USD/bulan
  • Tim kecil (1-3 orang) yang ingin produktivitas tinggi tanpa setup kompleks
  • Target user Indonesia — latency Cloudflare ke Jakarta sangat kompetitif

Pertimbangkan alternatif kalau:

  • Hampir seluruh halaman adalah interactive SPA (pilih Next.js 15 atau TanStack Start)
  • Tim butuh Prisma Studio untuk non-engineer browse data (tetap Drizzle untuk edge, tapi tambah TablePlus)
  • Sudah pakai Supabase penuh — Supabase sendiri sudah bundel auth + database + storage, stack ini lebih cocok kalau kamu pilih komponen sendiri

Untuk Indonesian SaaS developer yang mulai di 2026: bundle ini adalah titik awal yang solid. Tidak ada yang exotic, semua sudah terbukti di production, dan total cost of ownership di tahun pertama jauh lebih rendah dari stack enterprise yang sering dijual sebagai “best practice”. Validasi dulu, scale kemudian.

Kalau butuh referensi payment gateway yang cocok untuk stack ini di Indonesia, cek bundle payment Stripe + Midtrans + Xendit.

Ditulis oleh Asti Larasati

// Pick Bundle Recipe lain


← Semua picks RSS feed