Olá algumas considerações:
Urls com parâmetros:
ao usar a URL: https://example.com?utm_source=test
o serviço não gera o link encurtado. Não vejo o seu serviço ser bem adotado bloqueando urls com parâmetros
Fricção ao redirecionar:
Quando acesso o link encurtado vejo uma tela de que será redirecionado. na primeira execução ela fica por alguns segundos. percebi que após isso é feita uma chamada de api: https://api.urlite.link/api/v1/url/HFUM1b/
e só depois eu sou redirecionado.
Porque não simplesmente redirecionar direto pelo lado do servidor?
O simples fato de baixar uma tela e só depois redirecionar pelo lado do cliente gera uma má experiência de uso, além de ser necessário trafegar muitos dados desnecessários (um html e 2 scripts)
Ah, outra coisa. Fazendo o request na API, eu consigo realizar o controle de fluxo, bem como registrar quantos clicks determinada URL teve. Vou estudar uma forma de ter um middleware sem que seja necessário baixar os scripts, ou mitigar a maior parte deles.
Opa, obrigado pelas considerações. Vamos lá, realmente, vi que o https://example.com?utm_source=test não encurta, mas https://example.com/?utm_source=test ele encurta sem problemas, vou revisar o regex que valida as URLs. Sobre a parte de redirecionar para uma tela antes, é proposital, vou explicar: Eu desenvolvi como um MVP com alguns planos futuros para o serviço, realmente poderia já redirecionar diretamente, mas optei por deixar uma página "middleware" para facilitar algumas alterações futuramente.