Appwrite is great — until you need background jobs and search
Appwrite handles auth and storage well. Centrali gives you the rest — background jobs, search, and automation — in one system. As your app grows, you start needing more than the basics.
What's missing when you need more
Appwrite covers the basics — database, auth, storage. But as your app grows, you hit gaps.
| What you need | What Appwrite gives you |
|---|---|
| Background jobs | Not built in — requires adding a job queue |
| Full-text search | Basic queries — no full-text search built in |
| Workflow automation | Functions exist, but no event-driven triggers or scheduling |
| Workspaces & isolation | Projects act as tenants, but no built-in workspace isolation |
| AI tools | Not available — build your own or add a third-party service |
| Realtime with filtering | Realtime exists, but limited filtering and event types |
You end up adding services on top of Appwrite to fill the gaps. The backend grows — but so does the complexity.
Appwrite gives you a solid foundation — but you still assemble the rest yourself.
A more complete approach
Centrali gives you everything Appwrite does — plus the pieces you'd normally have to build yourself. You don't configure services — you just build.
| What you need | With Centrali |
|---|---|
| Background jobs | Run code on events, schedules, or HTTP — built in |
| Full-text search | Every record is searchable — no extra service |
| Workflow automation | Event-driven triggers, scheduled jobs, and multi-step orchestration |
| Workspaces & isolation | Workspaces, teams, and data isolation — ready from day one |
| AI tools | Generate schemas from prompts, natural language search, data validation |
| Realtime | Live updates with filtering — your app stays in sync automatically |
Everything works together automatically — no integration, no glue code.
One API. One system. No gaps to fill.
Same backend task — very different setup
Store a record and trigger a background job
With Appwrite, you add infrastructure. With Centrali, it's already there.
// Store a documentimport { Client, Databases, ID } from 'appwrite'const client = new Client().setEndpoint('https://cloud.appwrite.io/v1').setProject('my-project')const db = new Databases(client)await db.createDocument('main', 'users', ID.unique(), {name: 'Jane',email: 'jane@example.com'})// Background job? You need a separate service// (Bull, BullMQ, custom worker, etc.)
// Store a record — everything else is already wired upawait centrali.createRecord('users', {name: 'Jane',email: 'jane@example.com'})// Background job runs automatically// (triggered by event, configured once)
No separate job queue. No extra infrastructure. Just one system that works.
At a glance
Here's how Appwrite and Centrali compare for common backend needs:
| Appwrite | Centrali | |
|---|---|---|
| Database | Document-based with basic queries | Structured or schemaless — your choice |
| Background jobs | Not available | Built-in jobs triggered by events, schedules, or HTTP |
| Search | Basic queries only | Full-text search built in |
| Workspaces & isolation | Project-level isolation only | Workspaces, teams, and isolation built in |
| Auth | Built-in Appwrite Auth | Works with any auth provider (BYOT) |
| AI tools | Not available | Schema generation, natural language search, validation |
Want more details? See the full feature comparison →
Centrali replaces the stack — not just one part of it.
Start your backend in minutes
No credit card. No setup. Just run the CLI and start building.
npx @centrali-io/create-centrali-app --template saas
Takes less than 5 minutes to get started.