April 23, 2026
Rename your org. Old URLs keep working. Forever.
Renaming your org no longer breaks the URLs you already shared. Every retired slug becomes a permanent redirect to its owner, and no one else can ever claim it. Three renames per rolling 90 days keeps the blast radius sane.
New
- Rename via `PATCH /api/me/org` with the new `slug`. The outgoing slug becomes a permanent alias. Every `/old-org/*` URL keeps resolving to the renamed org forever.
- Squat protection. An aliased slug is as unavailable as a live one. Nobody else can claim your old handle.
- The original owner can reclaim. Renaming back to a previous slug works, in a single transaction.
- Rolling rate limit: 3 renames per 90 days. The 4th attempt returns 429 with `retryAfter`.
API
- `GET /api/orgs/slug-availability?slug=<x>` is a debounced live probe for the rename input. Returns `available: true` or a typed reason: `taken_by_org`, `aliased`, `reserved`, `reclaimable_by_you`, `rate_limited`, `same_as_current`, `invalid`. Resolution order matches the rename endpoint exactly, so the UI never says "available" then 409s at save time.
Polish
- Slug bounds tightened to 3-32 chars. Existing 33-60 slugs are grandfathered. Matches the per-peer convention (GitHub, Linear, Vercel) and fits cleanly in share cards and OG images.
- Error copy: "That slug isn't available. Try another." We don't reveal whether the unavailability is live-org or aliased, so the endpoint can't be used to fingerprint the alias table.