Vercel vs Cloudflare Pages vs Railway 2026
Tiga deploy platform dengan trade-off beda. Saya pakai Vercel 24 bulan, Cloudflare 18 bulan, Railway 10 bulan. Cost breakdown untuk SMB Indonesia.
TL;DR
- Vercel: Next.js ecosystem matang, DX terbaik, bill scale unpredictable. Conditional Recommend.
- Cloudflare Pages: Hosting termurah, latency Jakarta 5x lebih baik dari Vercel. Conditional Recommend.
- Railway: Full stack (app + DB + cron), pricing predictable, monolith friendly. Conditional Recommend.
- Verdict: pilih berdasarkan arsitektur + budget + stack.
Konteks
Saya pakai ketiga platform di 18 project SMB Indonesia 2024-2026:
- Vercel (10 project): SaaS dental, ecommerce klinik, marketing site fotografer (sebelum migrate CF), admin HR, dan project Next.js lainnya
- Cloudflare Pages (6 project): semua Astro project, 2 Next.js static-mostly, 1 SvelteKit
- Railway (4 project): backend Hono untuk mobile app, internal tool Python (FastAPI), 1 monolith Laravel, 1 worker queue
Total: 24 bulan apple-to-apple compare. Migration Vercel → CF detail.
Pricing (Juni 2026)
Vercel
- Hobby: free. 100GB bandwidth, 100GB-hours function, 6000 build/bulan
- Pro: $20/user/bulan = Rp 320rb/user. 1TB bandwidth, 1000 GB-hours function
- Enterprise: custom (mulai $1000+/bulan)
Cloudflare Pages
- Free: unlimited bandwidth, 500 build/bulan, 100K request/hari
- Pro: $20/bulan = Rp 320rb. Tambah build slots + analytics
- Workers Paid: $5/bulan = Rp 80rb. 10M request/bulan included
Railway
- Hobby: $5/bulan = Rp 80rb. Base credit $5 for usage
- Pro: $20/bulan = Rp 320rb base + usage. Team feature
- Usage: $0.000231/GB-RAM-hour, $0.000463/vCPU-hour, $0.10/GB egress
Cost untuk SMB Indonesia (estimated)
Untuk SaaS Indonesia dengan 5K MAU, 50K page view/bulan, 2 database:
| Platform setup | Monthly cost |
|---|---|
| Vercel Pro + Supabase Pro + Stripe | Rp 740rb (~$46) |
| Cloudflare Pages free + Supabase Pro + Stripe | Rp 400rb (~$25) |
| Cloudflare Pages + Workers + Cloudflare D1 + Stripe | Rp 80-160rb (~$5-10) |
| Railway full-stack (app + Postgres + Stripe) | Rp 480-720rb (~$30-45) |
| Vercel Pro + Railway Postgres | Rp 560-800rb (~$35-50) |
Cloudflare native stack paling murah (Rp 80-160rb/bulan). Vercel + Supabase paling popular tapi 4-9x lebih mahal.
Performance untuk Indonesia
Latency Jakarta median (same project, 3 platform):
| Platform | TTFB | LCP |
|---|---|---|
| Vercel (Singapore region) | 85ms | 1.8s |
| Cloudflare Pages (Jakarta PoP) | 18ms | 0.9s |
| Railway (Singapore region) | 90ms | 1.9s |
CF Pages 5x lebih cepat TTFB karena PoP Jakarta native. Vercel + Railway routing via Singapore.
Cold start serverless function:
| Platform | Cold start (median) |
|---|---|
| Vercel Edge Function | 80-200ms |
| Vercel Serverless (Node) | 600-1200ms |
| Cloudflare Workers | 5-15ms |
| Railway container | persistent (no cold start) |
CF Workers paling cepat cold start. Railway tidak ada cold start karena container persistent (trade-off: pay for idle compute).
Feature comparison
| Feature | Vercel | Cloudflare | Railway |
|---|---|---|---|
| Git push deploy | Yes | Yes | Yes |
| Preview deploy per branch | Yes (polished) | Yes | Yes |
| Edge function | Yes (Edge Runtime) | Yes (Workers, native) | No (containers) |
| Container deploy | No (only serverless) | Limited (Workers) | Yes (Docker) |
| Database hosting | Vercel Postgres | D1 (SQLite), KV, R2 | Postgres, MySQL, Redis, Mongo |
| Cron job | Vercel Cron ($) | Cron Trigger Workers | Built-in |
| Background worker | Limited | Workers + Queues | Native (Docker) |
| Custom domain | Free | Free | Free |
| DDoS protection | Pro plan | Free (CF network) | Limited |
| Static asset CDN | Yes | Yes (best) | OK |
Trade-off
Vercel
Pro: Next.js team — semua feature Next.js native. DX paling polished (preview deploy comment, log streaming, analytics inline). Vercel KV, Postgres, Blob integrate ke ecosystem. Free tier generous untuk learning. Documentation matang.
Con: Bill scale unpredictable — function invocation, bandwidth, edge requests scale cost. Vendor lock-in moderate (banyak feature Vercel-specific). Asia latency via Singapore (acceptable, tidak ideal).
Cloudflare Pages
Pro: Latency Indonesia terbaik (Jakarta PoP 5-15ms). Free tier paling generous (unlimited bandwidth). Workers $5/mo handle banyak workload. CF ecosystem (KV, R2, D1, Queues, Durable Objects) lengkap. DDoS protection bawaan.
Con: Next.js ISR + revalidate butuh workaround. Image optimization butuh CF Images ($5/mo). Documentation untuk advanced use case kurang polished dari Vercel. Less hand-holding untuk dev junior.
Railway
Pro: Full-stack platform — deploy app + DB + cron + worker dalam 1 service. Pricing predictable (no surprise scale bill). Container-based — bisa deploy stack apapun (Node, Python, Ruby, Go, Rust, PHP). Persistent storage native.
Con: Tidak ada edge runtime (latency Asia via Singapore). Tidak ideal untuk static-heavy site (CF Pages lebih cocok). Free tier minimal ($5 credit/bulan, habis cepat). Asia region masih Singapore only.
Use case decision matrix
| Use case | Recommended |
|---|---|
| Marketing site / portfolio (static) | Cloudflare Pages |
| SaaS Next.js dengan ISR heavy | Vercel |
| SaaS Next.js static-mostly | Cloudflare Pages |
| Backend Hono / Express / Bun | Cloudflare Workers atau Railway |
| Python FastAPI / Django | Railway |
| Laravel monolith | Railway |
| Mobile app backend | Railway atau Cloudflare Workers |
| Cron job / background worker | Cloudflare Workers + Queues atau Railway |
| Database hosting + app combo | Railway |
| Budget paling tight (Rp 0/bulan) | Cloudflare Pages free |
| Dev junior first deploy | Vercel (DX paling polished) |
Konteks Indonesia
SaaS dental Jakarta (Vercel → CF migration): 2024 di Vercel Pro Rp 320rb/bulan. Q2 2025 migrate ke CF Pages: bill Rp 0/bulan. Latency Jakarta TTFB 92ms → 18ms. Customer reaction: “lebih cepat”.
Ecommerce klinik kecantikan (CF Pages + Workers + D1): launch Q4 2025. Stack pure Cloudflare. Bill Rp 80rb/bulan untuk 1500 order/bulan. Latency excellent.
Backend mobile booking dental (Railway): Hono on Bun di Railway. Bill Rp 480rb/bulan termasuk Postgres. Cocok karena butuh long-running worker untuk reminder push notification.
Internal admin warung scale (Railway Laravel monolith): Laravel + Postgres + Redis di Railway. Bill Rp 640rb/bulan. Familiar stack untuk klien, deploy mudah.
Migration paths
Vercel → Cloudflare Pages
Detail di guide migration ini. Effort 1-12 jam tergantung shape Next.js project.
Vercel → Railway
Effort: 4-12 jam untuk Next.js. Butuh Dockerfile, env config, build setup. Worth jika butuh persistent worker / cron.
Railway → Cloudflare Workers
Effort: full refactor jika monolith → edge function. Worth jika app fit edge model (stateless, fast).
Cost optimization tactic
Vercel
- Disable Vercel Analytics jika tidak butuh (saves $10/mo Pro)
- Pakai ISR strategic — bukan default semua page
- Bundle static asset ke CDN external (Cloudinare) untuk reduce bandwidth
Cloudflare
- Pakai Workers Paid ($5) instead of Pages Functions untuk function-heavy app
- Cache aggressive di CF Cache + Workers KV
- Pakai R2 untuk storage (no egress fee, jauh lebih murah dari S3)
Railway
- Hibernate service yang idle (Railway support sleep)
- Pakai smaller instance untuk dev/staging
- Monitor RAM usage — Railway charge per GB-hour
Yang surprising
Cloudflare Pages latency improvement jauh lebih besar dari yang saya kira. Customer Indonesia feedback “lebih cepat” konsisten across 5 project setelah migrate. CF PoP Jakarta game-changer untuk SMB Indonesia.
Railway predictable pricing nyata. 4 project saya 8 bulan zero surprise bill. Vs Vercel 2 project pernah kena bill spike 2-3x normal karena traffic burst.
Verdict
Conditional Recommend untuk ketiga:
Pakai Vercel jika:
- Next.js advanced (ISR, On-demand revalidation)
- Tim familiar Vercel ecosystem
- DX prioritas (preview deploy, analytics inline)
- Budget OK Rp 320-640rb/bulan
Pakai Cloudflare Pages jika:
- Static-heavy (Astro, Astro + sprinkle React)
- Customer Indonesia mayoritas (latency critical)
- Budget tight (Rp 0-80rb/bulan)
- Stack edge-friendly (Hono, Workers)
Pakai Railway jika:
- Backend non-static (Python, PHP, Ruby, monolith Node)
- Butuh persistent worker / cron job
- Prefer pricing predictable
- Database + app monolith friendly
Skip jika: stack Anda tidak fit. Untuk pure serverless edge: CF. Untuk pure container monolith: Railway atau VPS langsung.
Untuk migration concrete: Vercel ke Cloudflare migration step-by-step.
Ditulis oleh Asti Larasati