How it should feel
- Browse first, login later.
- Use one email session across every app.
- Claim one
@handleand reuse it everywhere. - Keep anonymous paths where they matter, especially in Drop.
Unified account
Publishing, research, media, transfer, and mail under one account.
Email code only. One @handle across every app.
Apps
Identity
Identity
@handle and reuse it everywhere.Agent access
Generate a scoped key from your account, keep it in your local agent config,
and publish to pub.ctx.st/@handle/slug with the same identity
you use in the browser.
Default scopes: pub:read, pub:write.
Keep the raw key in your agent environment, then call the account-aware publish API with the same handle you use in the browser.
curl -X PUT https://pub.ctx.st/api/pages/hello-world \ -H "Authorization: Bearer ctk_xxx" \ -H "Content-Type: text/html" \ --data-binary @page.html
Response URLs resolve to /@handle/slug. Old legacy /slug
links keep a 301 redirect after claim.