Docs menu

Limits

Published

These are the limits the platform applies to every account, where each one is checked, and the error you get when you reach it. What each plan includes is on the pricing page.

“In the browser” means the app checks it before anything is sent. “On the server” means Dotpane’s servers check it, whatever the browser does. Some limits are checked in both places.

Requests

These apply to dash.fetch.

Limit Value Checked When you reach it
Calls a minute 60 per account, over any 60 seconds. Each pane also stops at 60. On the server and in the browser RATE_LIMITED
Calls at once 10 per account. Each pane also stops at 10. On the server and in the browser RATE_LIMITED
Calls a month 100,000 per account, per calendar month in UTC. On the server QUOTA_EXCEEDED
Time for one call 10 seconds, including reading the response. On the server PROXY_TIMEOUT
Response size 2 MB, measured after it is decompressed. On the server PROXY_RESPONSE_TOO_LARGE
Request body 256 KB. On the server PROXY_REQUEST_TOO_LARGE
Whole request 300 KB once encoded, so a binary body fits up to about 220 KB. In the browser PROXY_REQUEST_TOO_LARGE
URL 2,048 characters. On the server PROXY_URL_INVALID
Headers 30 headers, 8 KB in total as written, 64 KB once secrets are filled in. On the server VALIDATION_FAILED
cache 0 to 3,600 seconds, GET only. In the browser and on the server VALIDATION_FAILED

A call counts towards the minute, the month and the calls at once as soon as it passes Dotpane’s checks. That includes calls answered from the cache, and calls where the API then fails or times out. A call refused before that point, for example for a host that is not in the manifest, does not count. The Usage page shows how many calls you have made this month.

Panes

Limit Value Checked When you reach it
Panes per account 100. On the server LIMIT_REACHED
Panes on one canvas 40. On the server LIMIT_REACHED
Code 256 KB for index.html, style.css and component.js together, in UTF-8 bytes. On the server, when the draft or a version is saved VALIDATION_FAILED
Manifest 16 KB, in UTF-8 bytes. On the server, when the draft or a version is saved VALIDATION_FAILED
Pane name 80 characters. On the server VALIDATION_FAILED
Pane size 24 × 40 cells at most, and no wider than the canvas. On the server VALIDATION_FAILED or LAYOUT_INVALID
Manifest contents 30 props, 10 secret slots with 10 hosts each, 20 network hosts. All rules are in the manifest reference. On the server, when a version is saved VALIDATION_FAILED
Messages from a pane 200 a second. Each call to dash.fetch, dash.storage, dash.emit or dash.log is one, and so is starting or stopping to listen to an event name. In the browser The first message over the limit is refused with RATE_LIMITED; the rest of that second are dropped.
dash.log 16 KB per call, 50 calls a second. In the browser Longer output is cut short; calls over the rate are dropped.

Storage

dash.storage belongs to one pane on one canvas. The same pane placed twice has two separate stores.

Limit Value Checked When you reach it
Keys 100 per pane. On the server LIMIT_REACHED
One value 64 KB, measured as JSON. On the server VALIDATION_FAILED
All values 256 KB per pane, measured as JSON. On the server LIMIT_REACHED
Writes 60 a minute per pane, counting set and remove. On the server RATE_LIMITED
Key length 1 to 128 characters. In the browser and on the server VALIDATION_FAILED
Storage calls at once 10 per pane. In the browser RATE_LIMITED

In the editor’s preview, storage lives in memory and is thrown away when the preview reloads. The same key and size limits apply there, but not the write rate.

Events

These apply to dash.on and dash.emit. Events stay on one canvas and are not delivered back to the pane that sent them.

Limit Value Checked When you reach it
Event name 1 to 64 characters. In the browser dash.on and dash.emit throw VALIDATION_FAILED.
Payload 16 KB, measured as JSON. In the browser dash.emit throws VALIDATION_FAILED.
Events listened to 100 different names per pane. In the browser Further names are refused with LIMIT_REACHED. dash.on does not throw; the refusal is written to the browser’s console.

Refresh

These apply to dash.refresh.

Limit Value
Shortest interval 15 seconds. A smaller number is raised to 15, without an error.
While hidden Runs pause while the pane is off screen or the browser tab is hidden, and one run catches up when it is shown again.
Overlap A run never starts while the previous one is still going; that tick is skipped.

Each run’s calls count towards the request limits above. A pane that makes one call every 15 seconds uses 4 of the account’s 60 calls a minute.

Account

Limit Value Checked When you reach it
Canvases 20. On the server LIMIT_REACHED
Canvas name 60 characters. On the server VALIDATION_FAILED
Canvas columns 6 to 24. A new canvas has 12. On the server VALIDATION_FAILED
Cell height 40 to 120 pixels. A new canvas has 64. On the server VALIDATION_FAILED
Secrets 50. On the server LIMIT_REACHED
Secret value 8 KB. On the server VALIDATION_FAILED
Allowed hosts per secret 1 to 10. On the server VALIDATION_FAILED
Sign-in links 5 an hour for each email address, and 5 an hour for each IP address. On the server RATE_LIMITED. The sign-in page asks you to wait a few minutes.
Sign-in link lifetime 15 minutes, and it works once. On the server The sign-in page asks you to request a new link.