URLs canônicas
Cada organização e projeto tem um public_id curto e estável por trás das suas URLs públicas. Renomeie a organização ou o projeto, e os links existentes continuam funcionando.
Por que não o slug
Slugs são ótimos até alguém renomear. Uma URL de formulário no Twitter, um QR code num panfleto, um link num e-mail de boas-vindas: tudo quebra no momento em que acme vira acme-labs.
O Opini resolve URLs públicas a partir de um public_id de 10 caracteres (Crockford base32, então sem caracteres ambíguos como I/l/O/U). O id não muda quando algo é renomeado.
Como elas são
Organização e projeto têm cada um seu próprio id. A URL canônica do formulário hospedado fica assim:
https://opini.dev/f/<org-public-id>/<project-public-id>Posts de lançamento e endpoints da API pública seguem o mesmo padrão: /r/..., /api/v1/public/projects/....
Copie o public_id de um projeto em Configurações → Geral. Ele fica logo abaixo do nome, com um botão para copiar. A página de configurações da organização tem o mesmo.
URLs com slug redirecionam
URLs antigas com slug (/f/acme/main) não quebram: elas fazem um redirecionamento 301 para a URL canônica com public_id. Navegadores guardam o redirecionamento e buscadores atualizam o índice. Você pode continuar compartilhando URLs com slug, e com o tempo elas se acomodam na forma canônica.
Ao renomear uma organização ou projeto, o slug antigo e o novo continuam funcionando. O public_id é a referência, e o slug é só um atalho legível.
Trocar um public_id
Não dá. O public_id é estável de propósito: trocá-lo quebraria todos os links que o usam, o que acabaria com a ideia.