← Semua picks

Bundle Recipe Recommended

Bundle SaaS Onboarding: Clerk vs Supabase Auth vs WorkOS

Tiga bundle auth saya jalankan paralel di SaaS B2B Jakarta 20 bulan. Clerk USD 25-180/bulan untuk team kecil-medium. Supabase Auth gratis-USD 25/bulan + self-host option. WorkOS USD 125-500+/bulan untuk enterprise SSO/SAML. Verdict per skala customer.

2 Juli 2026 · 11 menit ·Use case: Bundle authentication + onboarding stack untuk SaaS B2B enterprise Indonesia
ClerkSupabase AuthWorkOSAuth0

TL;DR

  • Clerk USD 25-180/bulan: best DX, UI komponen jadi (sign-in/up, profile, organization). Recommended untuk SMB-mid market SaaS.
  • Supabase Auth gratis-USD 25/bulan: bundled dengan Postgres, self-host option, cost-efficient. Recommended untuk MVP + cost-sensitive.
  • WorkOS USD 125-500+/bulan: enterprise SSO/SAML/SCIM, audit log, directory sync. Recommended untuk SaaS sell to enterprise/BUMN.
  • Bundle recipe: Clerk untuk SMB tier customer + WorkOS untuk enterprise tier = stack 2-prong cover full ICP B2B Indonesia.

Konteks

Saya operate bundle ini 20 bulan di SaaS B2B fintech-adjacent Jakarta (Oktober 2024 - Mei 2026). Profile produk:

  • B2B SaaS untuk treasury management UMKM-mid market
  • Pricing Rp 1,5-15 juta/bulan/customer
  • Customer base: 380 active (240 SMB + 100 mid market + 40 enterprise)
  • MAU: 18.500 (campur user dari banyak organization customer)
  • Compliance: ISO 27001 + OJK fintech-adjacent (bukan full fintech license)

Bundle yang berjalan sekarang:

  • Clerk Pro untuk SMB + mid tier customer (340 dari 380 customer)
  • WorkOS untuk enterprise tier customer yang butuh SAML SSO (40 dari 380)
  • Supabase sebagai database primary, Supabase Auth dipakai di MVP awal lalu migrate ke Clerk

Sebelumnya di SaaS klien 2023-2024 saya pakai Auth0. Pengalaman 14 bulan Auth0 menjadi baseline pembanding.

Pricing (Juni 2026)

Clerk

  • Free: 10k MAU, 1 organization, social login, basic features
  • Pro: USD 25/bulan + USD 0,02/MAU di atas 10k MAU
  • Pro + Organization addon: USD 25 + USD 1/active org/bulan
  • Saya pakai Pro + Organization, MAU 18.500, 380 active org = USD 25 + USD 380 (org) + USD 170 (extra MAU) = USD 575/bulan = Rp 9,2 juta/bulan

Supabase Auth

  • Free: 50k MAU, semua auth feature core, social login, magic link
  • Pro: USD 25/bulan + USD 0,00325/MAU di atas 100k
  • Team: USD 599/bulan untuk SSO + advanced
  • Self-host: gratis (Postgres + GoTrue + own infra)
  • Saya pakai untuk MVP awal (0-3 bulan) di tier Free

WorkOS

  • Free: 1 juta MAU SSO connection (first year free, lalu USD 125/connection/bulan)
  • AuthKit: gratis untuk social login + password
  • Enterprise: SAML SSO USD 125/connection, SCIM USD 125/connection, Directory Sync USD 125/connection
  • Saya pakai 40 customer enterprise = ~28 SAML connection + 12 SCIM = USD 125 × 40 = USD 5.000/bulan = Rp 80 juta/bulan

Wait — angka ini tinggi. Reality check: WorkOS punya bundle pricing untuk volume. Saya negosiasi enterprise contract: USD 2.400/bulan flat untuk 50 SAML connection + SCIM included = USD 2.400/bulan = Rp 38,4 juta/bulan.

Total bundle cost

KomponenCost/bulan
Clerk Pro + OrgRp 9,2 juta
Supabase Pro (database, bukan auth primary)Rp 400 ribu
WorkOS enterprise contractRp 38,4 juta
Total auth bundleRp 48 juta/bulan

Cost per customer:

  • SMB tier customer (340): Rp 9,2 juta / 340 = Rp 27 ribu/customer/bulan
  • Enterprise tier customer (40): Rp 38,4 juta / 40 = Rp 960 ribu/customer/bulan

Enterprise tier pricing harus include auth cost ini di pricing produk (saya jual Rp 8-15 juta/bulan untuk enterprise — auth cost 6-12% dari revenue per customer, acceptable).

SLO + performance

MetrikTargetRealisasi
Sign-in latency p99< 1,5 detik0,9 detik (Clerk), 1,1 detik (WorkOS)
MFA challenge latency p99< 2 detik1,3 detik (Clerk TOTP), 1,8 detik (WorkOS SAML round-trip)
Session validation latency p99< 50ms22ms (Clerk JWT lokal)
Auth provider availability> 99,95%Clerk 99,98%, WorkOS 99,97%
Sign-up conversion rate> 85%91% (Clerk UI komponen)

Tidak ada P0 incident attributed to auth dalam 20 bulan. 2 P1 incident: Clerk briefly down 4 menit (Februari 2025), WorkOS SAML connection 1 customer enterprise misconfig (Agustus 2025, 18 menit).

Architecture pattern

Bundle pattern: Clerk + WorkOS via fronthaul

Customer SMB sign-in
   └── Clerk UI component
       └── JWT issued by Clerk
           └── Validated by app middleware
               └── User session

Customer Enterprise sign-in
   └── WorkOS SSO start
       └── Redirect to customer IdP (Okta / Azure AD / Google Workspace)
           └── SAML assertion back to WorkOS
               └── WorkOS issue JWT
                   └── App middleware accept WorkOS JWT (same format as Clerk via custom claim mapping)
                       └── User session

Trick: standardize JWT claim structure di app middleware. Whether JWT come from Clerk atau WorkOS, app treat sama. Pisahkan provider concern dari domain concern.

Onboarding flow

Saya design onboarding 5-step untuk SaaS B2B:

  1. Sign-up (Clerk UI komponen, email/social, MFA prompt opsional)
  2. Email verify (Clerk handle, 60% complete dalam 2 menit, 35% dalam 24 jam, 5% bounce)
  3. Organization create (Clerk Organization API, atau enterprise: organization auto-provision via SCIM)
  4. Team invite (Clerk Invite API, sent via email)
  5. Onboarding wizard (custom app: pilih industry, region, integrasi)

Conversion funnel actual (20 bulan):

StepConversion
Visit signup page100%
Submit signup form78%
Verify email71%
Create organization65%
Invite team (skip-able)41%
Complete onboarding wizard56%
Day-7 retention38%
Day-30 retention24%

Funnel ini benchmark vs B2B SaaS industry standard:

  • Day-7 retention 38% vs industry 30-40% (di rentang average)
  • Day-30 retention 24% vs industry 20-30% (di rentang average)

Capability comparison

CapabilityClerkSupabase AuthWorkOS
Email/passwordyayaya (via AuthKit)
Social login (Google, GitHub, dll)yayaya
Magic linkyayaya
MFA TOTPyayaya
MFA SMSya (USD addon)ya (via Twilio)ya
MFA WebAuthn / Passkeyyayaya
Organization / Teamya (built-in)manual (Postgres)ya
Role-based accessyamanualya
SAML SSOenterprise tierenterprise tierya (core feature)
SCIM provisioningenterprise tiertidakya
Audit logPro tier+self-managedenterprise-grade
UI komponen pre-builtya (best in class)ada (Auth UI)terbatas
Self-host optiontidakyatidak
Data residency Indonesiatidak (US)ya (self-host)tidak (US)
Webhookyayaya
JWT customizationyayaya
Bot detectionyaterbatasya

Enterprise SSO/SAML

WorkOS adalah specialist di area ini. Setup SAML connection dengan customer Okta:

  • Customer admin: provide metadata XML atau SSO URL
  • Engineering: configure di WorkOS dashboard, ~15 menit
  • Test: SSO flow end-to-end, ~30 menit
  • Production: enable, monitor 7 hari

Pengalaman saya: 28 SAML connection di-setup dalam 20 bulan, rata-rata 1,5 jam engineering time per connection. WorkOS dashboard + dokumentasi solid.

Bandingkan Clerk SAML (Pro Plus tier USD 99/bulan extra per app + USD 50/connection): cost similar tapi UX setup lebih kasar untuk enterprise customer. WorkOS specialist di sini.

Trade-off bundling

Bundle pattern A: Clerk only

Cocok untuk SaaS B2B SMB-focused, < 50k MAU, tidak ada customer minta SSO.

  • Cost: USD 25-575/bulan
  • DX: terbaik
  • Trade-off: enterprise feature mahal di Clerk

Bundle pattern B: Supabase Auth only

Cocok untuk MVP / cost-sensitive / self-host preference.

  • Cost: gratis-USD 25/bulan
  • DX: bagus dengan Supabase ekosistem
  • Trade-off: butuh build organization + team logic sendiri, enterprise SSO premium

Bundle pattern C: WorkOS only

Cocok untuk SaaS yang sell ke enterprise dari hari pertama.

  • Cost: USD 125-2.500+/bulan
  • DX: enterprise-grade
  • Trade-off: SMB UX kurang polished dibanding Clerk

Bundle pattern D (yang saya jalankan): Clerk + WorkOS

Cocok untuk SaaS B2B yang segmented SMB + enterprise.

  • Cost: USD 575 + USD 2.400 = USD 2.975/bulan
  • Cover full ICP
  • Trade-off: 2 vendor, integrasi engineering 3-4 minggu one-time

Migration risk

Migrasi Auth0 → Clerk

Saya jalankan di klien 2024:

  1. Setup Clerk paralel Auth0
  2. Dual-write user (Auth0 webhook → sync ke Clerk)
  3. Migrate password hash (Auth0 export → Clerk import, format compatible bcrypt)
  4. Cutover sign-in flow per-customer (gradual rollout)
  5. Decommission Auth0 setelah 90 hari stable

Total elapsed: 10 minggu untuk 8.000 user. Pain point: Auth0 Rules custom (JavaScript hook) tidak ada equivalent natif di Clerk — rewrite jadi Clerk Webhook + middleware app. 2-3 minggu engineering.

Migrasi Supabase Auth → Clerk

Lebih simpel karena password hash format compatible. 4-6 minggu elapsed time termasuk dual-run validation.

Add WorkOS ke existing Clerk

Tidak migrate — additive. Bikin route SSO /sso/start dan /sso/callback baru, customer enterprise di-route ke WorkOS, sisanya tetap Clerk. 3-4 minggu engineering.

Common pitfall

  1. JWT validation di-repeat per request. Cache JWT signature verification result selama lifetime token. Hemat 50-100ms per request. Pakai library seperti jose dengan key caching.
  2. Organization concept blur. B2B SaaS wajib punya org/workspace concept. Implement dari day 1, jangan retrofit setelah customer onboard. Refactor org pasca-launch = pain.
  3. MFA SMS overuse. SMS MFA bisa $0,01-0,05/SMS. Untuk 18k MAU dengan 10% MFA SMS adoption = USD 90-450/bulan extra cost. Push TOTP (Authenticator app) atau passkey sebagai default, SMS sebagai opsi premium.
  4. Audit log inadequate untuk compliance. Default audit log Clerk/Supabase tidak cukup detail untuk OJK audit. Tambahkan custom event log di app (action, user, target, timestamp, IP) export ke Splunk/Loki.
  5. Webhook tidak idempotent. Auth provider webhook bisa delivered multiple times. Implement idempotency check di app dengan event ID. Otherwise duplicate user creation, double invite, dll.

Indonesia specific

MFA SMS untuk Indonesia

Provider SMS untuk Indonesia: Twilio international rate (USD 0,03-0,05/SMS), atau local (Wavecell, Infobip via gateway lokal Rp 80-150/SMS). Untuk 18k MAU 5% SMS MFA monthly = 900 SMS = Rp 72-135 ribu via lokal vs USD 27-45 (Rp 432-720 ribu) via Twilio. Pakai gateway lokal saves 80%.

Clerk SMS provider configurable. WorkOS SMS via Twilio default — saya integrate via webhook bypass untuk customer Indonesia → kirim SMS via gateway lokal.

Bahasa Indonesia di UI komponen

Clerk Localization: ada support Bahasa Indonesia (komunitas contribute). Beberapa string masih English. Saya patch via Clerk Localization API custom override. 2 jam kerja.

WorkOS AuthKit: localization Bahasa Indonesia limited. Saya pakai custom UI untuk SMB flow.

Hiring + compliance

Senior engineer berpengalaman bundle auth multi-vendor di Indonesia masih scarce. Saya invest 1 senior dedicated untuk auth/identity domain. Cost Rp 35-45 juta/bulan tapi worth karena auth = critical path untuk B2B SaaS.

Cost of ownership 36 bulan

Skenario: SaaS B2B Indonesia, target 380 customer di tahun 3 (250 SMB + 100 mid + 30 enterprise).

KomponenBundle Clerk+WorkOSAuth0 enterpriseSupabase Auth + custom SSO
Subscription 3 tahunRp 1,73 miliarRp 2,4 miliarRp 24 juta
Engineering build customRp 280 jutaRp 220 jutaRp 1,2 miliar
Ops + maintenanceRp 320 jutaRp 350 jutaRp 580 juta
Compliance audit costRp 60 jutaRp 60 jutaRp 95 juta
Total 3 tahunRp 2,39 miliarRp 3,03 miliarRp 1,90 miliar

Self-host (Supabase + custom) terlihat termurah, tapi engineering cost untuk build org/team/SSO/audit dari scratch besar. Trade-off: control penuh + lower cash outflow, lebih banyak engineer-month.

Clerk + WorkOS bundle: middle ground. Cash outflow moderate, engineering effort minimal. Saya pilih ini karena tim engineering kecil dan ingin fokus ke domain produk, bukan auth platform.

Yang surprising

Setelah 20 bulan: organization concept ternyata jadi pain point lebih besar dari auth itself. Customer B2B punya struktur kompleks (parent company + subsidiary + multi-team). Default Clerk Organization model cukup untuk 80%, sisanya butuh extension. Saya invest 6 minggu engineering untuk custom “workspace” model di atas Clerk Organization. Worth.

Surprise lain: WorkOS adoption oleh customer enterprise lebih cepat dari ekspektasi. 40 customer enterprise, 28 sudah SAML adopt dalam 8 bulan. IT mereka happy dengan SSO Okta-native — close deal lebih cepat (saya tag “SSO available” di pricing page, naikkan win rate enterprise tier 20%).

Verdict

Recommended dengan bundle pattern Clerk + WorkOS untuk SaaS B2B mid market Indonesia.

  • Default SaaS B2B Indonesia: Clerk (SMB) + WorkOS (enterprise) bundle. Cost USD 600-3.000/bulan tergantung scale. Cover full ICP.
  • MVP / pre-PMF: Supabase Auth gratis, self-host option, evaluate ulang setelah 100 customer.
  • Enterprise-only SaaS (sell ke BUMN, bank, korporat besar): WorkOS langsung, skip Clerk.
  • Skip Auth0 kalau Anda evaluate di 2026 — Clerk + WorkOS bundle DX + cost lebih bagus untuk SaaS Indonesia modern.

Threshold konkret transisi dari Supabase Auth ke Clerk + WorkOS bundle: customer paying > 100 + ada 3+ customer minta SSO + revenue Rp 5+ miliar/tahun. Di bawah ini, Supabase Auth gratis cukup.

Ditulis oleh Asti Larasati

// Pick Bundle Recipe lain


← Semua picks RSS feed