Pitch: Como eu fiz um módulo de domínios customizados pro curto.io
Fala pessoal, aqui é o Vitor, de novo, rs... E nesse post quero falar com vocês sobre a última coisa que implementei no curto.io, um SaaS que estou desenvolvendo e documentando sua evolução aqui no TabNews.
Se você se interessar, pode ver os meus outros posts sobre ele:
- Pitch: como eu desenvolvi o módulo de analytics do meu micro-saas
- Pitch: Como eu criei um encurtador de URL com Spring Boot, Next.JS e Redis
A idéia
Usar a plataforma para criar links curtos utilizando o domínio curr.to
é muito legal, mas imagina você conseguir criar, através da plataforma, domínios com a sua marca registrada? Seria bem legal né?
A idéia é permitir com que um usuário conecte e use um domínio próprio para a criação e operação de links curtos. Ao invés de usar o curr.to
para redirecionar, usar um domínio medeirol.ink
por exemplo, e criar links como:
E a Rebrandly, um gigante nesse mercado de encurtadores de URL, diz que links com domínios próprios recebem 39% mais cliques que um link genérico, e é esse tipo de alcance que eu quero que os usuários do curto.io possam ter.
Isso também mitiga um problema: Os spammers
Apesar da idéia ser muito legal, não é só uma feature pra tornar o curto mais atrativo, mas também foi pensada para resolver/mitigar um problema maior: Os spammers.
Infelizmente, muitos spammers fazem uso desses encurtadores de links para disseminar spam na internet sem que sejam notados, é de se esperar que usuário apareça entre os usuários do curto, mas eles jamais serão passados de forma despercebida 💪.
Já ouvi dizer que os primeiros clientes de qualquer empresa serão F&F&F:
- Family (Família)
- Friends (Amigos)
- Fraudsters (Fraudadores)
Então, ao decidir criar um sistema como o curto, eu assumi que estou esperando que esse tipo de prática aconteça e preciso me proteger e proteger meus futuros clientes desse tipo de coisa.
A consequência do Spam no curto
A verdade é que quando um spammer usa o curto.io pra disseminar um conteúdo malicioso, afeta diretamente a reputação do domínio do nosso encurtador, gerando muitos ruídos como:
- Diminuição da entrega de e-mails que façam uso do domínio curr.to
- Diminuição da entrega de videos/posts em redes sociais
- Piora na indexação do Google de um site que faça uso do curr.to.
E a pergunta que quer calar é: "Por que você está contando isso pra nós?", afinal, isso é uma das fraquezas que meu projeto tem, mas, o que eu mais quero com isso são duas coisas:
- Transparência quanto o estado da aplicação, suas forças e fraquezas 🤝.
- Alertar vocês de que nem tudo são flores na criação de um software, e é preciso saber lidar com isso. 👎
Como um domínio customizado resolve o problema
A escolha de um domínio customizado ao invés de um domínio genérico, como o curr.to
, é que o uso genérico NÃO IMPACTA, de nenhuma forma, os demais domínios atrelados ao sistema, isso significa que se você usar um domínio seu, você jamais será impactado por possíveis tentativas de spam à plataforma.
Tá, mas, você vai deixar o spam acontecer? Como você vai se proteger?
Estou trabalhando arduamente na criação de um modelo de dados que permite prever, com maior precisão, se um link tem um conteúdo malicioso ou não antes mesmo de um link ser criado na plataforma. 🤝
Estou fazendo uso do GPT-3 para isso e trarei maiores detalhes assim que possível.
Como eu fiz isso? Spoiler: foi mais fácil do que parece rs
Confesso pra você que quando vi a quantidade de coisas que eu precisaria fazer pra conseguir fazer isso, eu fiquei maluco, rs.
Engine de redirecionamento apartado, servidor de DNS, criação de SSL, renovação automática, e tudo mais, pensei: vish 😂😂😂
Mas a Vercel, minha salvadora, conta com recursos incríveis em sua API REST, onde é possível criar, verificar e remover domínios de maneira programática.
Integrar a API ao meu Backend em Java foi muito tranquilo, e o desenho da solução foi mais ou menos esse:
Onde todas as operações que faziam alguma mutação nos domínios, precisavam, obrigatoriamente, serem encaminhadas à Vercel antes de darem uma resposta "produtiva" ao front-end.
Aqui um GIF de como está funcionando no front-end
E como ficou na Vercel assim que o domínio foi criado:
Conclusão
Essa foi minha experiência ao criar o módulo de domínios customizados no curto.io, e espero que de isso te dê tantos insights bons quanto os que eu tive construindo essa solução.
Se você se interessou pelo curto, e quer conversar comigo sobre como as coisas foram feitas ou se tem alguma sugestão, me procura nos links abaixo:
E-mail: [email protected]
LinkedIn: https://medeirol.ink/linkedin
GitHub: https://medeirol.ink/github
Instagram: https://medeirol.ink/instagram
YouTube: https://medeirol.ink/youtube