O stack tecnológico do cutty.dev — escolhas conscientes
O que há por baixo de cutty.dev e porquê. Sem evangelismo: uma pilha tecnológica entediante e estável, hospedagem na UE e privacidade incorporada na arquitetura, capaz de ser mantida por uma única pessoa.
A maioria dos artigos sobre "meu tech stack" é uma lista orgulhosa de novidades. Este trata de algo diferente — da filosofia por trás das escolhas do cutty.dev: chato e estável em vez de moderno, europeu em vez de americano, privado por definição, e simples o suficiente para que uma única pessoa possa mantê-lo.
Framework: Astro (renderização no lado do servidor)
cutty.dev é uma aplicação Astro renderizada no lado do servidor. Cada requisição passa pelo servidor, compila a página dinamicamente e responde com HTML pronto.
Por que: eu queria renderização no lado do servidor sem uma infraestrutura pesada, bom suporte a vários idiomas integrado ao próprio framework e velocidade sem sobrecarga. O Astro oferece tudo isso, e o código permanece legível — o que, em um projeto conduzido por uma única pessoa, vale mais do que qualquer recurso da moda.
Base de dados: SQLite
Uma única base de dados, um único arquivo. Além disso, uma camada de consultas amigável ao TypeScript, que faz com que a alteração da estrutura dos dados exiba erros no código em vez de em produção.
Por que: cutty.dev é principalmente "read-heavy" — cada clique em um link significa uma leitura e o aumento do contador. O SQLite faz isso perfeitamente, mesmo com volumes muito altos de tráfego diário. Um backup é simplesmente copiar um único arquivo — sem cerimônia de replicação, sem scripts complexos. A simplicidade aqui não é uma economia de qualidade; é uma decisão consciente de que menos partes móveis significam menos coisas que podem falhar.
Hospedagem: servidor na União Europeia
Servidor dedicado na UE, certificado TLS próprio, proxy reverso com HTTPS automático, aplicativo em contêineres.
Por que: é o fundamento de como o cutty.dev trata os dados. Controle total sobre sua localização (crucial para clientes na UE e para a LGPD), sem dependência de um único fornecedor, sem replicação automática para os EUA, oferecida pelas grandes plataformas em nuvem, e custo previsível em vez de uma conta baseada no tráfego. Plataformas ocidentais convenientes dariam um início mais rápido — mas ao custo de onde fisicamente terminam os dados dos seus usuários.
Traduções: modelo de IA local
O cutty.dev fala em 25 idiomas e as traduções são feitas por um modelo de IA local e de código aberto executado em nossa própria infraestrutura.
Por que: nenhum texto da interface é exposto externamente — não o enviamos a nenhum fornecedor de IA externo. Isso resulta em custo zero por tradução individual e controle total sobre a qualidade: podemos atualizá-la quando quisermos. A tradução automática sempre requer verificação humana — e cada idioma passou por essa revisão —, mas fazer isso internamente significa que a privacidade não é uma opção no preço, mas sim uma propriedade da arquitetura.
CSS: utility-first (Tailwind)
Um único sistema de estilos, sem CSS-in-JS, sem arquivos de estilo separados. Tudo diretamente nos templates.
Por que: velocidade de iteração. Não perco tempo criando nomes de classes, e os estilos não utilizados não chegam à página final. Um design consistente imposto pelo próprio sistema. Para uma pessoa, cada minuto gasto com tarefas secundárias é um minuto perdido.
Implementação: contêineres
Aplicação em contêineres (Docker), implantada de forma repetível e portátil.
Por que: o mesmo ambiente localmente e em produção, sem a desculpa de "funcionou aqui", e a possibilidade de migrar tudo para outro servidor em meia hora, caso seja necessário. Portabilidade é uma forma de independência.
O que isso me ensinou
- A pilha "entediante" vence. Astro, SQLite, Tailwind, contêineres — tudo maduro, bem documentado e estável. Nada quebra no momento menos esperado.
- O hospedagem na UE está pronta para produção. O mito de que "você precisa ir para a grande nuvem americana para ser levado a sério" é exatamente isso — um mito.
- A IA local é real. Não é necessário enviar seus dados para uma API externa para obter boas traduções.
- Uma pessoa pode lançar algo que parece o produto de uma equipe. O tempo é um recurso mais valioso do que o dinheiro, então cada escolha aqui protegeu precisamente esse tempo.
Veja ao vivo. Perguntas sobre a abordagem técnica — hello@cutty.dev, respondo no mesmo dia.