OnCell vs Modal
Modal is general-purpose serverless compute. OnCell is purpose-built for AI agents that need per-user persistent state.
The core difference
Modal gives you serverless functions and containers. You write Python, define resources, and Modal scales it. It's excellent for ML pipelines, batch jobs, and GPU workloads. But if your AI agent needs per-user storage, a database, and search — you bring those yourself.
OnCell gives each user their own isolated environment with storage, database, and search built in. You don't configure infrastructure — you write agent logic and call ctx.store, ctx.db, ctx.search.
Feature comparison
| Feature | OnCell | Modal |
|---|---|---|
| Purpose | Per-user AI agent environments | General serverless compute |
| Per-user isolation | Built-in — one environment per user | Manual — you manage user routing |
| Storage | Built-in persistent NVMe | Volumes (separate config) |
| Database | Built-in SQLite per user | Not included — bring your own |
| Search / RAG | Built-in full-text + vector | Not included — bring your own |
| Pause / resume | Auto — 200ms resume | Cold start ~1-5s |
| Streaming | Built-in SSE (ctx.stream()) | Custom implementation |
| GPU support | Not available | Full GPU support |
| Languages | Python, TypeScript | Python |
| Pricing model | Per-hour, pause when idle | Per-second compute |
When to use Modal
Modal is the right choice for GPU workloads, ML model training/inference, batch processing, and general serverless Python. If you need A100s or don't need per-user persistent state, Modal is more flexible.
When to use OnCell
OnCell is the right choice when you're building an AI product where each user needs their own persistent environment — their own files, database, and search index. OnCell eliminates the infrastructure layer between your agent code and the user's state.
Try OnCell
One API call creates a sandboxed environment with storage, database, and search.