Merdeka Stack: Astro + Cloudflare + Upstash + Resend
merdeka stack: bundle open source + serverless pengganti SaaS berbayar untuk startup
TL;DR
- Astro: Static site + Islands Architecture — ideal untuk content-heavy atau marketing site dengan sedikit interaktivitas
- Cloudflare Pages: Hosting + edge runtime gratis, edge node Jakarta, deploy dari git
- Upstash: Serverless Redis untuk rate limiting, session, caching — tanpa manage server
- Resend: Transactional email API dengan DX terbaik di kelasnya
Bundle ini bisa replace Vercel Pro ($20/bulan) + AWS SES + Redis Cloud untuk startup yang baru mulai.
Konteks 2026: Kenapa “Merdeka Stack” Relevan Sekarang
Di 2026, banyak startup Indonesia kena jebakan yang sama: mulai di Vercel free tier, traffic naik sedikit, langsung kena bill $20-50/bulan. Ditambah Mailchimp untuk email blast, Redis Cloud untuk caching — sebelum revenue masuk, sudah keluar $80-100/bulan hanya untuk infrastruktur.
Merdeka stack ini bukan anti-SaaS — ini tentang memilih tools yang align dengan budget startup Indonesia yang masih burn dari kantong sendiri. Keempat tools ini punya free tier yang generous, pricing yang predictable, dan DX yang tidak membuat developer mau ganti karir jadi petani.
Saya pakai bundle ini di dua project: satu landing + waitlist startup edtech, satu blog developer tools. Total biaya setelah 3 bulan: $0. Traffic masih di bawah free tier limit.
Comparison Table
| Dimensi | Astro | Cloudflare Pages | Upstash | Resend |
|---|---|---|---|---|
| Harga free tier | Open source | 500 build/bulan, unlimited request | 10K cmd/hari, 256MB | 3K email/bulan |
| Harga setelah free | - | $5/bulan (Pro) | Pay-as-you-go | $20/bulan (50K email) |
| DX | Excellent | Good | Excellent | Excellent |
| Latency ke Jakarta | Tergantung host | Edge di Jakarta (CGK) | Singapura (~20ms) | Tidak relevan (SMTP) |
| Ecosystem TS | Astro Actions, integrations | Workers, D1, R2 | @upstash/redis, ratelimit | React Email, SDK resmi |
| Indonesia-specific | Tidak ada | Edge node Jakarta | Region ap-southeast-1 | Tidak ada |
Per-Tool Breakdown
Astro
Astro bukan framework baru lagi — di 2026 sudah v6, stable, dan adoption terus naik untuk content site dan marketing page. Islands Architecture artinya Anda bisa ship 0KB JavaScript ke client kecuali memang butuh interaktivitas. Untuk landing page startup atau blog developer, ini translate ke Lighthouse score 95+ out of the box.
Kekuatan Astro di bundle ini adalah Astro Actions — server functions yang langsung bisa di-call dari client, dengan Zod validation built-in, dan berjalan di Cloudflare Workers via adapter @astrojs/cloudflare. Form waitlist, contact form, webhook handler — semua bisa handle di sini tanpa Express server terpisah.
Kelemahan: Astro kurang cocok untuk aplikasi yang sangat interaktif (dashboard real-time, social feed). Untuk itu Next.js atau SvelteKit lebih masuk akal. Tapi untuk 80% use case startup awal (landing page + auth + simple CRUD), Astro lebih dari cukup. Satu lagi: learning curve untuk developer yang terbiasa React full-stack sedikit ada — pola .astro file dan Islands perlu waktu 2-3 hari untuk terbiasa.
Cloudflare Pages
Ini bagian paling underrated dari bundle. Cloudflare Pages bukan sekadar static hosting — dengan adapter Astro, Anda dapat Cloudflare Workers sebagai edge runtime, akses ke D1 (serverless SQLite), R2 (object storage), dan KV (key-value store) dalam satu platform.
Yang paling penting untuk developer Indonesia: edge node di Jakarta (CGK). Request dari pengguna Jakarta bisa di-serve dari edge lokal, bukan di-route ke Singapura atau US dulu. Ini matter untuk first byte time, terutama di mobile 4G yang latency sudah tinggi.
Kelemahan jujur: Cloudflare Workers punya beberapa limitasi yang tidak ada di Node.js biasa — tidak ada fs module, beberapa NPM package tidak kompatibel (yang butuh native bindings), cold start ada tapi sangat pendek. Debugging juga less straightforward dari Vercel — wrangler CLI ada, tapi error message kadang tidak sejelas Vercel. Untuk developer yang baru pertama kali pakai edge runtime, perlu effort ekstra di awal.
Upstash
Upstash menyelesaikan masalah klasik serverless: di mana simpan state? Rate limiting, session, temporary cache — semua butuh storage yang cepat tapi tidak persistent seperti database. Upstash Redis serverless adalah jawaban yang paling pragmatis.
Yang buat Upstash cocok di bundle ini adalah pricing model pay-per-request bukan reserved instance. Kalau pakai Redis Cloud atau ElastiCache, Anda bayar $15-30/bulan meskipun traffic 0. Upstash: bayar per command yang dieksekusi, $0 kalau tidak ada traffic. Untuk startup pre-launch, ini significant.
Package @upstash/ratelimit adalah hidden gem — implementasi sliding window rate limiter yang plug-and-play dengan Cloudflare Workers, butuh 10 baris kode untuk protect API endpoint dari abuse. Untuk startup yang belum punya dedicated backend engineer, ini valuable.
Kelemahan: Upstash bukan Redis penuh — beberapa Redis command tidak supported (terutama yang butuh persistent connection seperti SUBSCRIBE/PUBLISH pub-sub real-time). Untuk real-time feature, butuh solusi lain (Pusher, PartyKit). Latency juga sedikit lebih tinggi dari self-hosted Redis karena network hop ke Singapura, biasanya 15-30ms dari Jakarta.
Resend
Kirim email transactional dari aplikasi harusnya simpel, tapi historically developer experience-nya buruk — SendGrid punya API design yang terasa seperti dibangun tahun 2012, Mailchimp orientasinya marketing bukan developer.
Resend masuk dengan API yang clean:
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
await resend.emails.send({
from: 'Acme <[email protected]>',
to: [user.email],
subject: 'Selamat datang di Acme',
react: WelcomeEmail({ name: user.name }),
});
react prop itu key — Anda bisa buat email template dengan React component (via React Email), preview di browser, dan ship ke production tanpa belajar Handlebars atau MJML legacy format.
Kelemahan: Untuk marketing email (newsletter, blast ke ribuan subscriber), Resend kurang cocok dibanding Mailchimp atau Brevo — tidak ada list management, segmentation, A/B testing. Resend murni transactional. Juga, custom domain setup butuh DNS access yang kadang tricky untuk domain yang sudah pakai CDN.
Cara Kerja Bundle Ini Bersama
User → Cloudflare Edge (Jakarta)
↓
Astro SSR (Workers)
↓
Astro Action (form submit, API call)
↓
Upstash Redis (rate limit check, session)
Resend (welcome email, OTP)
Flow konkretnya: user submit form waitlist → Astro Action handle request di Workers → cek rate limit via Upstash → simpan ke database → kirim welcome email via Resend. Semua terjadi di edge, tanpa dedicated server.
Verdict
Pakai bundle ini kalau:
- Budget infrastruktur masih $0-20/bulan
- Use case: landing page, blog, waitlist, simple web app
- Tim kecil (1-3 dev) yang tidak mau manage server
- Target user Indonesia — latency Cloudflare Jakarta adalah advantage nyata
Pertimbangkan alternatif kalau:
- Butuh database relasional lengkap — tambahkan Neon atau Turso ke bundle
- Aplikasi sangat interaktif (real-time dashboard) — Next.js + Vercel mungkin lebih straightforward
- Tim sudah familiar dengan Vercel dan tidak mau context-switch — switching cost riil, jangan migrasi hanya karena FOMO
Untuk startup Indonesia yang baru launch, bundle ini adalah titik awal yang sangat solid. Free tier keempat tools ini cukup untuk handle ratusan user aktif. Saat sudah ada revenue, upgrade path-nya predictable — tidak ada kejutan billing seperti Vercel ketika bandwidth tiba-tiba spike.
Merdeka dari SaaS tax bukan berarti pakai tools inferior. Keempat tools ini bukan kompromi — mereka adalah pilihan yang tepat untuk konteks startup awal Indonesia.
Ditulis oleh Asti Larasati