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.
microservices.sh vs Supabase & BaaS
Supabase is excellent infrastructure, and its MCP connector makes it a default agent backend. But it's raw access — an agent can run SQL or change an RLS policy with no guardrail. microservices.sh sits one layer up: composable, source-visible modules you own, with contracts that enforce how auth, payments, and audit behave.
Compared against: Supabase, Firebase, Convex
Credit where due
The gap
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.
There's no module.json, no lockfile pinning the integration version, no permission boundary between components. It's infrastructure, not composable application modules.
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
| Supabase & BaaS | microservices.sh | |
|---|---|---|
| Abstraction level | Raw infra (Postgres, RLS, edge fns) | Composable app modules above the infra |
| Agent access | 32 MCP tools, raw SQL & policy | Contract-gated module ops + safety checks |
| Guardrails | Powerful but none | 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 |
You want a managed Postgres backend with auth and realtime, and you're comfortable governing the application logic yourself.
You want Cloudflare-native application modules you own, with contracts and safety checks — the auth/payment/audit logic as code you read, not just the database hosted.
BaaS gives agents raw infrastructure access with no guardrails. Modules give agents composable, source-visible application primitives you own — 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 →