Getting started
How an Orbit account is organised, what lives where in the console, and the shortest path from signing in to serving a name from our network.
A Pages site is served from every location we run, on a hostname you own. There is no subdomain of ours — see the first section for why that is a decision rather than a gap.
A Pages site is served only on a hostname you own. We do not offer a subdomain to publish on, and we are not going to.
The difference is not size. It is what happens when something else breaks.
| Store | Edge | |
|---|---|---|
| Where the files are | Held centrally; each location caches them on first use | Copied onto every location |
| Origin fetch | Once per location per file | Never — there is no origin |
| Size | 50 MB, 5000 files | 5 MB, 200 files |
| Good for | Sites with real content | Landing pages, documentation, redirects |
Use store unless the site is small and you want it to stay up through anything. The edge tier's limits are small precisely because every location holds a copy.
index.html has to be at its top.From a script instead, a deploy is three calls: start it, PUT each file into it, finish it. The API reference has the shapes.
curl -X POST -H "Authorization: Bearer orb_…" \
https://dash.yunzheng.space/api/v1/pages/projects/7/deploys
curl -X PUT -H "Authorization: Bearer orb_…" --data-binary @dist/index.html \
https://dash.yunzheng.space/api/v1/pages/projects/7/deploys/12/files/index.html
curl -X POST -H "Authorization: Bearer orb_…" -d '{"activate":true}' \
https://dash.yunzheng.space/api/v1/pages/projects/7/deploys/12/finishEvery upload is a deploy, and a finished deploy never changes. Making an earlier one live again is instant: nothing is copied and nothing is rebuilt, because the deploy is part of where its files are stored — only a pointer moves. The edge is told to drop its cache at the same moment, so the change is visible straight away rather than when the last cached file happens to expire.
| Path asked for | What is served |
|---|---|
/ | index.html |
/docs | docs, then docs.html, then a redirect to /docs/ |
/docs/ | docs/index.html |
| anything missing | 404.html, with a 404 status |
_redirects takes one rule per line: /from /to 301. A trailing /* matches a prefix and :splat carries the rest. Status 200 rewrites without changing the URL, which is how a single-page app serves its own routes.
/old-page /new-page 301
/blog/* /articles/:splat 301
/app/* /index.html 200_headers sets your own response headers, a path pattern followed by indented lines. Headers that would rewrite what the edge decided — the length, the connection, cookies — are ignored.
/*
X-Frame-Options: DENY
Referrer-Policy: no-referrer
/assets/*
Cache-Control: public, max-age=31536000, immutableNo. You upload the finished files, so build wherever you already build — the output is what we serve.
It stays, so going back to it is a single action. Only the pointer to the live one moves.
Yes. Point as many of your hostnames at it as you like; they all serve the same live deploy.
How an Orbit account is organised, what lives where in the console, and the shortest path from signing in to serving a name from our network.
Add a zone, point your registrar at our name servers, and manage records. Includes weighted answers, health-checked records, ALIAS at the apex and zone-file import.
Delegate the whole domain, delegate one hostname, or add a CNAME and leave your DNS where it is. What each one costs you and when to pick it.