Versions that stay put
Every publish is immutable and kept. Going live is one pointer moving; rolling back is the same pointer moving again. Nothing is overwritten.
Post a directory. Get back a URL that serves it, a version you can roll back to, and a list of who may read it.
you.usercontent.colophon.fyi/quarterly-report/
Sign in, open Keys, and make one scoped to publishing. The plaintext is shown once and never stored.
A bearer token is all it needs. Nothing else about your account is exposed, and revoking the key takes effect on the next request.
tar -czf site.tar.gz -C ./out .
curl -X POST https://you.usercontent.colophon.fyi/api/v1/sites \
-H "Authorization: Bearer colo_live_…" \
-F archive=@site.tar.gz -F name="Quarterly report"The response carries the live URL. Publishing the same name again adds a version rather than replacing anything.
※ A colophon command your agent installs directly is next. Until then the API above is the whole interface, and it is stable.
Every publish is immutable and kept. Going live is one pointer moving; rolling back is the same pointer moving again. Nothing is overwritten.
Public, unlisted, restricted, or private. Restricted sites are shared with named email addresses — including people who have never signed in. Removing someone takes effect on their next click, not when a token expires.
Views, uniques, pages, referrers and devices. No cookie, no cross-site identifier, no consent banner — visitors are counted with a hash that is thrown away nightly.
Compact redirects on your own subdomain, with click counts in the same dashboard. Targets are checked before they resolve.