O que é
Uma plataforma onde negócios locais têm site próprio com o que o ramo precisa — catálogo, página de detalhe, contato — e o dono edita sozinho, sem depender de programador para cada troca de texto.
Arquitetura
- Multi-tenant com isolamento por cliente, banco por tenant e autenticação em JWT.
- Renderização no servidor com Jinja2, empacotado em Docker.
- Temas por ramo de atividade, com features ligáveis individualmente por cliente e paleta configurável via CSS custom properties, para que o tema não precise ser duplicado por cor.
Decisões técnicas
SSR em vez de aplicação client-side, de propósito. O cliente desses sites é um negócio local, e o que ele quer é aparecer na busca. Servidor devolvendo HTML completo significa que o buscador não depende de executar JavaScript para ler a página. É uma decisão de produto disfarçada de decisão técnica — e vale mais que qualquer sofisticação de front-end nesse caso.
Isolamento entre tenants é teste, não intenção. Multi-tenant falha silenciosamente: o vazamento de dado entre clientes não quebra nada, só mostra a coisa errada para a pessoa errada. Por isso o isolamento tem teste de regressão próprio, que tenta acessar dado de um tenant autenticado como outro e exige que a resposta seja negada. É o teste que eu rodo primeiro depois de qualquer mudança em consulta.
Tema por CSS custom properties. A alternativa era um tema por cliente, que multiplicaria a manutenção por N. Com variáveis, a paleta é dado, não código.
Estado
Página de detalhe do item concluída — galeria com lightbox em JavaScript puro, navegação por teclado e toque, dados estruturados e chamada de contato. Em desenvolvimento ativo.