microservices.sh vs Supabase & BaaS

BaaS is the substrate. Modules are the contract layer above it.

Supabase is excellent infrastructure, and its Claude/MCP connector makes it the default backend for many agent workflows. But it's raw access — an agent can run SQL, change an RLS policy, or deploy an edge function with no guardrail. microservices.sh sits one layer up: governed modules that enforce how auth, payments, and audit behave.

Compared against: Supabase, Firebase, Convex

Credit where due

What Supabase is genuinely good at.

The gap

Where it leaves you exposed.

Raw access, no guardrails

The 32 MCP tools let an agent run raw SQL and modify policies. That's power without a contract — nothing enforces that your Stripe handler is idempotent or your audit log captures the right events.

No module / version governance

There's no module.json, no lockfile pinning the integration version, no permission boundary between components. It's infrastructure, not a governed application layer.

Postgres/Node, not Cloudflare-native

No Workers-for-Platforms multi-tenant dispatch, no D1, no per-tenant custom-domain routing. You operate Postgres, RLS, and migrations yourself.

Side by side

Head to head.

Supabase & BaaS microservices.sh
Abstraction level Raw infra (Postgres, RLS, edge fns) Governed app modules above the infra
Agent access 32 MCP tools, raw SQL & policy Contract-gated module ops + safety checks
Guardrails Powerful but ungoverned Permissions + deploy-time checks by construction
Runtime Postgres / Node Cloudflare Workers / D1 / KV
Multi-tenant RLS + your own routing Workers-for-Platforms dispatch + custom hostnames
Ecosystem Large, embedded everywhere Early — honest about it
Choose Supabase when

You want a managed Postgres backend with auth and realtime, and you're comfortable governing the application logic yourself.

Choose microservices.sh when

You want Cloudflare-native application modules with contracts and safety checks — the auth/payment/audit logic governed, not just the database hosted.

BaaS gives agents raw infrastructure access with no guardrails. Modules give agents governed application primitives — the contract enforces correct webhooks, token rotation, and audit events by construction. We sit above the substrate, not beside the database.

Already decided to move off Supabase? Migrate from Supabase →Migrate from Firebase →