Ir para o conteúdo
cutty.dev
All posts

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.