Why Centrali?¶
Centrali is a backend platform built for developers who need production-ready APIs without managing infrastructure. Here's how it compares to alternatives.
Feature Comparison¶
| Feature | Centrali | Firebase | Supabase | Convex |
|---|---|---|---|---|
| Structured Data | Schemas with validation | NoSQL (Firestore) | PostgreSQL | Document DB |
| Serverless Functions | JavaScript runtime | Cloud Functions | Edge Functions | Mutations/Actions |
| Multi-step Orchestrations | Built-in with branching | Manual chaining | Manual chaining | Manual chaining |
| Multi-tenancy | Workspace-scoped by design | Manual implementation | Row-level security | Manual implementation |
| Real-time | SSE streaming with filters | Firestore listeners | Postgres changes | Reactive queries |
| File Storage | Azure Blob + CDN | Cloud Storage | S3-compatible | File storage |
| Full-text Search | Meilisearch built-in | Requires Algolia | pg_trgm / extensions | Third-party |
| AI Validation | Built-in | Not available | Not available | Not available |
| Anomaly Detection | Built-in | Not available | Not available | Not available |
| Schema Discovery | Auto-evolving schemas | Schema-less | Manual migrations | Schema validation |
| External Auth (BYOT) | Clerk, Auth0, Okta | Firebase Auth only | GoTrue / custom | Clerk integration |
| Webhooks | Native with retry | Cloud Functions | Database webhooks | HTTP actions |
| Secret Fields | AES-256-GCM encrypted | Not built-in | Not built-in | Not built-in |
Key Differentiators¶
Multi-tenant by Design¶
Every API call in Centrali is scoped to a workspace. There's no way to accidentally query across tenants — isolation is enforced at the platform level, not bolted on with row-level policies.
// Every SDK call is automatically workspace-scoped
const centrali = new CentraliSDK({
workspaceId: 'tenant-acme', // All operations scoped here
clientId: process.env.CENTRALI_CLIENT_ID,
clientSecret: process.env.CENTRALI_CLIENT_SECRET
});
// This only returns records from tenant-acme's workspace
const orders = await centrali.queryRecords('Order', { limit: 50 });
AI Built Into Your Data Layer¶
Centrali doesn't just store data — it understands it. AI features work directly on your records without external integrations.
- AI Validation — Detect typos, format errors, and duplicates with auto-fix suggestions
- Anomaly Insights — Catch unusual patterns and data quality issues automatically
- Schema Discovery — Let your schema evolve with your data, with AI guiding field type detection
Orchestrations, Not Just Functions¶
Most platforms offer serverless functions. Centrali adds multi-step orchestrations with:
- Sequential and parallel steps — Chain functions or run them concurrently
- Conditional branching — Route execution based on data conditions
- Built-in delays — Wait hours or days between steps
- Decision nodes — Complex routing logic without code
Bring Your Own Token (BYOT)¶
Already using Clerk, Auth0, or Okta? Don't migrate your users. Centrali validates your existing JWTs and maps them to its authorization system.
// Your users authenticate with Clerk/Auth0/Okta as usual
// Centrali validates their tokens and enforces permissions
const centrali = new CentraliSDK({
workspaceId: 'my-workspace',
token: clerkUserToken // Works directly
});
When to Choose Centrali¶
Choose Centrali if you need:
- Multi-tenant SaaS backends where data isolation is critical
- Serverless compute with multi-step orchestrations (not just simple functions)
- AI-powered data quality features out of the box
- External IdP integration without migrating users
- Full-text search without a separate service
- Encrypted secret fields for sensitive data
Consider alternatives if:
- You need a relational database with raw SQL access (try Supabase)
- You're building a mobile-first app with offline sync (try Firebase)
- You need reactive queries with automatic cache invalidation (try Convex)
- You want a fully open-source, self-hosted solution (try Supabase)
Get Started¶
Ready to try Centrali? Build your first API in 10 minutes.