Projeto
Eis Aqui
Uma plataforma de descoberta local em que o sinal de confiança é quantas pessoas reais indicaram cada negócio. Transforma o 'alguém indica um eletricista aqui perto?' dos grupos de WhatsApp em um diretório consultável — com páginas personalizadas para cada negócio, catálogo, orçamentos, agendamento online, pedidos e planos pagos.

Descrição
O Eis Aqui é uma plataforma de descoberta local organizada por cidade e categoria, construída em cima de uma ideia: a confiança que já existe dentro de uma comunidade é um sinal melhor do que nota em estrelas. Em vez de perguntar pela centésima vez no grupo do bairro quem indica um encanador, você consulta um diretório em que cada negócio carrega o número de pessoas reais que o indicaram — uma indicação por conta, binária, sem estrelas. O público explícito é o negócio informal: sem CNPJ, sem loja física, sem site. Um anúncio nunca exige endereço, então quem cozinha em casa ou atende a domicílio aparece igual a um comércio formal.
Quem tem um negócio ganha de graça uma página com identidade própria, catálogo, links de contato e recebimento de orçamentos; os planos pagos acrescentam checkout na plataforma, agendamento online, gestão de pedidos e financeira, analytics detalhado, cupons e espaço patrocinado. Toda conversa continua terminando no WhatsApp — a plataforma organiza a descoberta, não o relacionamento. No ar em eisaqui.com.br desde agosto de 2026.
Tecnologias
A API é Fastify 5 com Kysely sobre PostgreSQL e Zod em todas as fronteiras, além de Argon2 para senhas, armazenamento compatível com S3 e pipeline de imagens com Sharp, web push e um servidor MCP que expõe a mesma camada de serviço, permitindo que um agente de IA gerencie anúncios e categorias diretamente. O web é React 19 sobre React Router em modo SSR, com TanStack Query, TailwindCSS 4, i18next (pt-BR e en) e service worker para PWA/offline. O deploy é contínuo: o GitHub Actions constrói as imagens e publica no GHCR, e a VPS apenas baixa — nada é construído no servidor. Homologação e produção rodam lado a lado na mesma máquina, com bancos separados, atrás de um nginx de borda que tem repositório próprio.
Repositório
Repositório privado — a melhor forma de ver o produto é o site no ar.
Demo ao vivo
O eisaqui.com.br é o produto real, em produção. Dá para buscar e navegar por categoria e cidade, abrir a página de um negócio com catálogo e links de contato e pedir um orçamento sem conta; indicar, favoritar e montar listas compartilháveis exigem login.
Principais desafios
- Servir páginas SSR de um cache compartilhado sem nunca entregar a página de um visitante para outro. As páginas que importam para SEO são renderizadas no servidor e cacheadas pelo nginx, mas as mesmas rotas também são visitadas por usuários logados com cookie de sessão — e um cache errado aqui não é um site lento, é um visitante vendo a conta de outro.
- Ordenar por distância mantendo o cache compartilhado. Distância é o sinal de ordenação mais útil para descoberta local e é diferente para cada visitante — exatamente o tipo de personalização que inviabiliza um cache compartilhado.
Soluções implementadas
- As rotas foram divididas em camadas explícitas de cache, com a chave variando por cookie de cidade e bypass total sempre que há sessão. A trava é um script que roda contra uma instância viva e verifica três coisas por HTTP real: cada rota responde com o
Cache-Controlque a sua camada determina, toda rota de cache compartilhado renderiza HTML byte a byte idêntico para visitante anônimo e logado, e o cache da frente se comporta — MISS e depois HIT, BYPASS com sessão e uma entrada separada por cidade. Um teste unitário afirmando que uma constante é igual a si mesma não pegaria nada disso. - A distância nunca chega ao servidor. O payload cacheado continua agnóstico de usuário e leva as coordenadas de cada negócio como qualquer outro campo público; o navegador calcula a distância com haversine contra a localização do visitante, que fica só em memória e nunca é persistida nem enviada a lugar nenhum. O SSR e o cache compartilhado ficam intactos, e a plataforma nunca guarda a posição de ninguém.