Sobre Este Site

Sem provedores cloud, sem portas abertas — apenas um Mac Mini na prateleira servindo arquivos estáticos por um túnel Cloudflare.

A Stack

Este site é uma aplicação Next.js 15 exportada estaticamente, construída com React 19 e TypeScript. No momento do build, cada página vira um arquivo HTML puro — sem renderização server-side, sem rotas de API, sem runtime Node.js em produção. Apenas arquivos estáticos.

Tailwind CSS 4 cuida de toda a estilização através de classes utilitárias e custom properties CSS. Todo o design system — cores, tipografia, espaçamento — vive em um único arquivo globals.css. Sem component library, sem CSS-in-JS.

A tipografia usa Instrument Serif para títulos display e DM Sans para corpo de texto, carregadas via next/font/google com subsetting automático e self-hosting. O seletor de idioma e as animações ativadas por scroll são as únicas partes de interatividade client-side.

Next.js 15React 19TypeScriptTailwind CSS 4

O Servidor

Este site roda em um Mac Mini Late 2012, uma máquina que passou anos como desktop antes de ser aposentada em uma prateleira e ganhar uma segunda vida como home server. O hardware é modesto: um Intel i5 dual-core, atualizado para 16 GB de RAM e um SSD de 1 TB. Consome cerca de 10 watts em idle.

A máquina roda Ubuntu Server headless — sem monitor, sem teclado, gerenciada inteiramente via SSH. Hospeda este site junto com alguns outros containers e projetos pessoais.

Toda a infraestrutura custa cerca de R$10/mês em eletricidade. Sem contas de cloud, sem assinaturas, sem cobrança por uso.

Como Chega Até Você

O site é empacotado como um container Docker usando um build multi-stage: Node 22 gera os arquivos estáticos, depois apenas o output é copiado para uma imagem Nginx Alpine minúscula (menos de 25 MB). Deploys são um único comando que reconstrói e reinicia o container em cerca de 30 segundos.

O Caddy fica na frente de todos os containers como reverse proxy, cuidando dos certificados TLS automáticos via Let's Encrypt. Cada container roda seu próprio servidor web (Nginx), mantendo os apps autocontidos e portáveis, enquanto o Caddy roteia o tráfego por nome de domínio.

Um Cloudflare Tunnel cria uma conexão somente de saída do servidor para a edge da Cloudflare — nenhuma porta fica aberta na rede doméstica, sem port forwarding, sem DNS dinâmico. Funciona até atrás de CGNAT, então você não precisa de IP público. Cloudflare cuida de DNS, proteção DDoS e cache na edge por cima.

Quer construir algo assim?

Escrevi um guia detalhado passo a passo cobrindo tudo, desde criar o projeto Next.js até configurar o túnel Cloudflare. É voltado para iniciantes — se você sabe abrir um terminal, consegue acompanhar.

Ler o guia