Global content delivery
The Crown
The Crown is Zipper’s content delivery network. It terminates TLS at the edge, caches static and negotiated assets, and routes visitors across an anycast network so pages load quickly worldwide. This is a Cloudflare Cloudflare CDN / Caching alternative included on every Zipper plan.
Cloudflare analogue: Cloudflare CDN / Caching
What it is
The Crown is Zipper’s content delivery network. It terminates TLS at the edge, caches static and negotiated assets, and routes visitors across an anycast network so pages load quickly worldwide.
Cloudflare analogue: Cloudflare CDN / Caching. SLA 99.99% · p99 42ms. Admins publish cache policy. Operators may purge.
- ▸Anycast points of presence
- ▸Stale-while-revalidate
- ▸Origin shielding
- ▸HTTP/3 and TLS 1.3
How it works
Point the hostname at The Herald and enable “Proxy through The Crown”. Visitors hit the nearest anycast PoP instead of your origin.
The Crown terminates TLS, applies cache level and TTLs from Policy, then fetches from origin only on a miss.
Purge a prefix when you ship a new asset. Origin shield collapses concurrent misses so one file is fetched once.
Use cases
Concrete ways teams use this service on day one.
Speed up a marketing site
A brochure site hosted in Accra is slow for visitors in Europe and North America.
- Add the zone, proxy the A/CNAME record.
- Set cache level to Standard, Brotli on, HTTP/3 on.
- Purge / after a deploy: POST /api/v1/archives/purge with prefix "/".
Survive origin outages
The origin goes down during a deploy.
- Keep Always Online on (default).
- The Crown serves last-known-good HTML and static objects.
- Watchtower shows origin 5xx separately from edge 200s.
Set it up in the dashboard
Dashboard → Services → The Crown.
Publish cache level, TTLs, minification, and HTTP/3.
Use Purge prefix for /assets/* after a release.
API
Control-plane: POST /api/v1/archives/purge. Send Authorization: Bearer tz_live_YOUR_TOKEN.
Creates count against the plan quota. A 402 plan_limit means you are at the cap — upgrade or delete an unused resource.
Purge a path
curl -sS -X POST https://tinyzipper.com/api/v1/archives/purge \
-H "Authorization: Bearer tz_live_YOUR_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"prefix":"/assets/*"}'List the same resource in JavaScript
const res = await fetch("https://tinyzipper.com/api/v1/archives/purge", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.ZIPPER_TOKEN}`,
"Content-Type": "application/json"
}
});
const json = await res.json();
if (!res.ok) throw new Error(json.error ?? res.statusText);
console.log(json);Tips
Use Bypass only on HTML that is personalised per cookie.
Aggressive cache is for hashed `/static/` folders.
- ▸SOC 2
- ▸ISO 27001
- ▸PCI-ready
Runbook
Purge by prefix, then warm the cache. Failover is handled by The Drawbridge.
Next: The Keep · All docs · Create a free account