
Lançar a próxima marca sem refazer nada: Viaza e GoMilhas em um código só
Plataforma whitelabel completa para venda de passagens com milhas — busca, checkout PIX e pós-venda. Viaza e GoMilhas rodam no mesmo repositório, com tema, conteúdo e regras de marca trocando em tempo real. A próxima marca entra adicionando um arquivo de configuração — sem time novo, sem retrabalho.

O cenário do cliente
A operação roda duas marcas comerciais — Viaza e GoMilhas — atendendo públicos distintos com a mesma stack de busca, motor de tarifas e integração de gateway. O desafio era manter um único código capaz de comutar branding, rotas, conteúdo de CMS e tema em runtime conforme o domínio acessado.
O problema a resolver
Construir uma arquitetura whitelabel real: tema, logos, OG images, splash screens, rotas habilitadas e até copy de CMS variando por marca, sem hardcode espalhado pelo código. Tudo isso em cima de um stack moderno (Next 15 + React 19 + MUI 7) e mantendo PWA, SEO e conformidade com fluxos sensíveis de pagamento e autenticação.
No fluxo de auth coexistem três abordagens (keycloak-js no client, NextAuth e BFF custom com cookie httpOnly) — exigindo cuidado redobrado para não quebrar nenhum caminho de usuário em cada deploy.
Como atacamos
Implementamos resolução de marca em duas camadas: server-side via NEXT_PUBLIC_BRAND alimentando getServerBranding(), e client-side via atributo data-brand no <html> + ThemeProvider Emotion. Tudo o que muda entre marcas (logos, cores, assets, rotas desabilitadas) vive em src/styles/branding.ts como fonte única da verdade.
Estruturamos o frontend com App Router, React Query para data fetching, Zustand para estado de sessão/checkout e React Hook Form + Zod para os formulários críticos. A camada api/ separa contratos (interfaces) de implementação concreta (axios + Keycloak), inspirada em Clean Architecture, facilitando testes e troca futura de backend.
Pagamento via PIX integrado com Tuna (com criptografia de campos sensíveis), checkout reativo a status em tempo real via polling, fluxo completo testado em Vitest (unit) e Playwright (E2E). PWA com next-pwa para reengajamento e atribuição customizada para tracking de conversão.
O impacto entregue
Plataforma em produção sob duas marcas, com pipelines independentes de deploy, integração com CMS proprietário (cms.viaza.com.br) e checkout PIX/cartão funcional. Time consegue lançar uma nova marca whitelabel adicionando apenas um objeto de branding e os assets correspondentes — sem tocar em rota, componente ou serviço.
O que foi construído
- Arquitetura whitelabel multi-marca (Viaza + GoMilhas) num único repositório
- Tema MUI 7 dinâmico por marca via Emotion + data-brand no <html>
- Middleware reescrevendo rotas desabilitadas por marca + UTMs em cookie
- Auth Keycloak com 3 fluxos coexistindo (keycloak-js, NextAuth, BFF httpOnly)
- Checkout PIX (Tuna) com criptografia de campos e polling de status em tempo real
- Camada api/ inspirada em Clean Architecture com DI e interfaces tipadas
- PWA com next-pwa, Service Worker e atribuição custom
- Testes em Vitest (unit) e Playwright (E2E)
Continue explorando
Plataformas internas do Itaú 60% mais rápidas e mais estáveis em 3 anos
Itaú Unibanco
Dois projetos internos críticos do maior banco privado do país, com requisitos rigorosos de segurança e acessibilidade. Modernizamos arquitetura e processos para o time entregar com mais velocidade e menos bugs em produção — o tempo de carregamento caiu 60% e a base ficou três vezes mais protegida contra erros que chegariam ao usuário.
Plataforma corporativa da TOTVS 30% mais rápida, com vários times entregando em paralelo
TOTVS
Plataforma orquestradora unindo vários sistemas internos em uma interface única. Quebramos a aplicação em pedaços que cada time pôde evoluir sem atrapalhar os outros e cobrimos os fluxos críticos com testes automáticos antes de cada subida — resposta 30% mais rápida e zero regressão chegando em produção.