Auto-prefix de URL: um detalhe que economiza minutos
O cutty.dev detecta quando você cola um endereço sem https:// e o adiciona automaticamente. Parece insignificante. Na prática, é a diferença entre dois segundos e clicar em "tente novamente".
No formulário de encurtamento de link, você inserirá allegro.pl. A maioria dos encurtadores dirá que não é um URL válido e pedirá para inserir novamente com https:// no início. O cutty.dev simplesmente adiciona https:// automaticamente e continua.
Isso soa como um recurso que mal merece ser mencionado. Na prática, é a diferença entre:
- "colei, tenho um link curto, fecho a janela" (2 segundos)
- "colei, erro, leio a mensagem, adiciono https, de novo, tenho o link" (15-20 segundos)
Multiplique pela quantidade de vezes por mês em que você cola a URL, mais a frustração de ler o erro, mais o momento “ah, é claro, o protocolo”. Um detalhe que se mede em minutos por mês por pessoa.
O que exatamente o cutty.dev faz
Você colou o texto no formulário. Antes de enviar para o servidor, o JavaScript verifica se começa com algum protocolo (http://, https://, ftp://, mailto: etc). Se não começar — o sistema assume que é apenas um domínio sem protocolo e adiciona https:// na frente.
Ou seja:
allegro.pl→https://allegro.plgithub.com/twoj-profil/projekt→https://github.com/twoj-profil/projektwww.gazeta.pl→https://www.gazeta.pl
E se algo já tiver um protocolo (mesmo que incorreto), o sistema deixa como está e verifica adiante:
http://example.com→ permanecehttp://example.com(permitido)ftp://example.com→ rejeitado (apenas http/https)javascript:alert(1)→ rejeitado (proteção contra XSS)
Por que eu tenho isso e os outros não?
A maioria dos encurtadores de URL realiza uma validação padrão de URL por meio de new URL(string). O construtor URL no navegador/JavaScript é strict — se não houver protocolo, ele lança um erro. A saída padrão para new URL("allegro.pl") é TypeError.
Este é o comportamento correto para a maioria dos aplicativos. Mas para um formulário de encurtamento de links, onde o usuário cola uma URL copiada da barra de endereços ou de outro aplicativo, essa rigidez é um obstáculo em vez de uma ajuda.
A solução ocupa cinco linhas de JavaScript:
function sanitizeUrl(input) {
const trimmed = input.trim();
const hasProtocol = /^[a-z][a-z0-9+.-]*:/i.test(trimmed);
const normalized = hasProtocol ? trimmed : "https://" + trimmed;
// dalsza walidacja przez new URL(normalized)
}
Cinco linhas de código, uma dezena de segundos a menos de frustração por usuário por dia. Não sei por que a maioria do mercado não faz isso. Talvez porque “padrão” signifique “o construtor de URLs funciona assim”.
Os detalhes em UX são desproporcionalmente importantes
O cutty.dev tem várias dessas coisas que não estão em nenhuma lista de recursos, pois cada uma delas isoladamente soa insignificante:
- Remover espaços em branco antes da validação — a URL colada com um espaço no final não causa erro
- Hash preservado —
https://example.com/page#sectionmantém#sectionapós o encurtamento - Strings de consulta preservadas —
?utm_source=testpassa sem ser cortada - Atualização automática do protocolo —
http://parahttps://quando a URL de origem suporta TLS (planejado, ainda não em produção) - Domínios IDN —
źdźbło.plé convertido automaticamente para punycode - Caracteres poloneses no slug — automaticamente substituídos por ASCII ao criar um final personalizado (
różowy-link→rozowy-link) - Detectar protocolos perigosos —
javascript:,data:,file:,mailto:rejeitados com mensagem específica
Cada um desses detalhes poupa de 5 a 30 segundos e um momento de irritação para alguém. Juntos, isso faz a diferença entre "gosto deste aplicativo" e "funciona bem".
O que vem a seguir para os detalhes de UX
Lista de coisas que quero fazer no futuro:
- Smart paste — detecte quando o usuário cola texto contendo um URL entre outras palavras, extraia apenas o URL
- Bulk paste — uma lista de URLs colada (uma por linha) cria vários links curtos simultaneamente
- Suggested slugs — com base no título da página de destino, sugira 3 extensões de marca para escolher
- Auto-OG preview — mostre a prévia dos cartões Open Graph imediatamente após colar o URL, antes de encurtar
Cada uma dessas é também uma "função de cinco linhas que não parece nada". No conjunto, a diferença está entre uma ferramenta que é OK e uma que você quer usar no dia a dia.
Tente você mesmo
Cole algo — allegro.pl ou github.com ou news.ycombinator.com. O sistema adicionará o protocolo automaticamente e prosseguirá. Sem espera, sem erro, sem "tente novamente".
Se esse tipo de detalhe de UX te interessa, avise por qual direção seguir. hello@cutty.dev.