Free while we're in alpha.
No seats, no per-app fees. When paid plans arrive they will be priced per workspace, and alpha workspaces keep these limits. Everything below is enforced today, so your agent can plan around it.
- Unlimited apps and members
- Workspaces by email domain, with roles
- Private, invite, workspace and public sharing
- Realtime database, storage, schedules, email
- Team tables shared across apps
- Personal and app-scoped deploy tokens
Limits
Self-hosting? Every number here is an environment variable. See the limits reference for the exact error each one produces.
Per app, per UTC day
Over a daily quota, calls answer 429 with fuast_quota_exceeded, the bucket, when it resets, and the CLI command that shows usage.
| Requestsqueries, mutations, actions, endpoints, page loads | 100,000 |
| Mutations | 20,000 |
| Emails sentctx.email.send | 100 |
Per handler call
Mutations roll back when they hit a limit. Use paginate() instead of collect() for anything that can grow.
| Rows returned | 1,000 |
| Rows readcount() charges reads, not returns | 5,000 |
| Bytes read | 4 MiB |
| Direct gets | 1,000 |
| Index scans | 100 |
| Writes | 1,000 |
| Transaction time | 5 s |
| CPU timewall clock 10 s | 5 s |
| Memoryper isolate | 128 MB |
| Action arguments / result | 16 KiB / 48 KiB |
Data
Every app has its own SQLite database. Field values are JSON-encoded for the size check.
| Rows per app | 100,000 |
| Database size per app | 64 MiB |
| Field value | 64 KiB |
| Page size for paginate() | 1 to 1,000 items |
Storage
Executables, HTML and JavaScript uploads are refused. Private files are served only to people who can open the app.
| File size | 25 MiB |
| Storage per workspace | 1 GiB |
Logs and deploys
Logs are a ring buffer: the newest entries win. Deploys are immutable; roll back to any one that is not terminated.
| Log entries per app | 1,000 or 256 KiB |
| Log entry size | 16 KiB |
| Type checkskip with --no-typecheck | every deploy |