Limits
The boundaries that are real, so you do not discover them at an inconvenient moment.
Per application#
| Environments | Three: preview, test, live |
| Databases | One per environment |
| Custom domains | One per environment |
| Design system | One at a time; changeable |
| Versions | No practical limit — storage is incremental |
Per build#
A build has a step limit. A very large request reaches it and pauses rather than fails: the work is saved and Continue resumes it.
If you hit that regularly, the requests are too big. Breaking them up produces better results as well as faster ones.
Per person, per application#
| Custom data fields on a user | 40 |
| Characters per field | 500 |
Bounded on purpose. This is a place for a customer number, not a document store.
On the Data tab#
| Records shown a page | 25, 50, 100 or 200 |
| Conditions in one filter | 12 |
| Records in one download | 10,000 |
A table with more in it than that is still fully readable a page at a time — the limit is on one download, not on the table.
What an application starts from#
| Things attached | 12 |
| Each one | 25MB |
| Rows read to work out a spreadsheet's shape | 400 |
| Rows brought across in one batch | 500 |
The row limits are on one read, never on the sheet: a large spreadsheet comes across in batches until it is all there.
Attachments#
A limit on how many files one message takes. You are told when you exceed it; sending them across two messages is fine.
Very large spreadsheets are better summarised. A few hundred representative rows tell the builder everything fifty thousand would.
What has no limit worth knowing about#
- The number of applications in a workspace.
- The number of workspaces one account can belong to.
- The number of versions of an application.
- The number of people who sign in to a deployed application.
- The number of records an application can store.
- The number of published files.
Things that are not limits but feel like them#
A service that is not connected. Email, SMS and Google are built in. Anything else has to be an ordinary HTTP API the application calls with a key from Configuration. This is a design decision, not a quota.
One framework. Not negotiable, and the reason everything else here works.
No source browser in the interface. Not a limit on what you may see — the whole repository is downloadable. See Taking one over.