← Voltar pro blog
Case Study 4 min de leitura

Loja Base & Loja Demo — Sistema white-label multibrand para entrega de e-commerce em escala

Esforço de design por loja: de ~60h pra ~30–36h. 6× menos refação. De dois anos de percepção a um produto vivo.

ClientBis2Bis Period2025–current

~60h → ~30–36h de design por loja

6× menos refação por ciclo de aprovação

23 falhas estruturais do piloto viraram backlog priorizado

Contexto

A Bis2Bis entrega lojas de e-commerce para centenas de clientes B2B e B2C no mercado brasileiro, com backend em Magento. Antes deste produto, cada projeto começava do zero — componentes recriados, sem padrões compartilhados, design e dev correndo em silos paralelos. A consequência era previsível: refação alta, tempo de entrega imprevisível, inconsistência visual entre projetos.

Desafio

Construir um ecossistema que escalasse a entrega de lojas sem prender o cliente em visual genérico. Em termos de Design System, o terreno é dos mais complexos do mercado: White Label + Multibrand.

Resultado prévio (antes do produto existir)

Dois anos de trabalho em quatro frentes paralelas — Design Research, UX, Workflows e Ferramentas — já tinham mudado os números do time, mesmo antes do produto Loja Base nascer:

Esforço de design por loja caiu de ~60 horas para ~30–36 horas. Refação por ciclo de aprovação caiu .

Esse resultado foi o que justificou consolidar tudo num produto.

A solução em três peças

No final de 2025, design e dev — que até então corriam em paralelo — se juntaram numa frente só. Três artefatos nasceram dessa convergência:

1. Loja Base (ferramenta de design + dev) Template white-label. Estrutura pronta de loja, visual adaptável por cliente sem alterar o esqueleto. Features ativáveis/desativáveis por contrato. Camada de marca intercambiável separada das fundações. É o motor de criação.

2. Loja Demo (ferramenta comercial — minha criação) Espelho da Loja Base com painel de controle facilitado para o time comercial usar ao vivo com cliente em reunião — liga/desliga seções, troca categorias, alterna entre modos de PDP, simula identidade visual. Tira a venda do PDF e leva pra dentro de uma loja real navegável.

3. Flexi (projeto dev paralelo) Frontend desacoplado do Magento. Runtime que consome o que sai da Loja Base. Acelera o ciclo de criação de cliente.

Loja Base alimenta Flexi. Loja Demo é a face comercial dos dois.

Decisões-chave

Ecossistema em três camadas, não um template solto. Template base → Demo comercial (todos os módulos ativos) → Fork por cliente. O sync Template → Demo é automatizado via CI a cada push em main. Cliente nasce de fork do template, não da demo.

Camada de marca separada das fundações. Tokens fixos (tokens.ts) carregam escala invariante — raio, fontSize, spacing, shadow, transition. Marca intercambiável (brand.ts) carrega o que muda por cliente — paleta, fontes, raio, elevação. Theme em CSS variables consumido pelo Tailwind 4 via @theme inline. Trocar de cliente = trocar um arquivo + assets.

Regras de customização, não liberdade de customização. Um projeto de cliente só pode diferir do template em quatro lugares: configuração de tema, assets, dados e flags. Se for preciso abrir um componente para adaptar a marca, isso é um buraco no template — conserta-se o template, não o cliente. Essa regra trava a divergência antes que ela se acumule.

Scripts de auditoria como gates de build. audit-tokens bloqueia hex literais e classes Tailwind arbitrárias. validate-assets exige convenção kebab/webp e referências resolvidas. rebrand-check caça strings da loja demo que poderiam vazar pro cliente. validate-menu-coverage garante que todo slug declarado tem entrada no mega menu. O sistema enforça o próprio contrato.

Feature flags por cliente, sem branch de código. Cada cliente tem um public/flags.json que sobrescreve defaults do template — flash sale, brand carousel, blog preview, wishlist nos cards, login modal. Cadeia de prioridade: localStorage (designer) > flags.json (cliente) > defaults (template). Liga e desliga features sem tocar em componente.

Validação no campo

O primeiro cliente real rodado no template (anonimizado: vertical de artigos esportivos de combate) revelou 23 falhas estruturais que viraram backlog priorizado e foram corrigidas commit a commit no template antes do próximo cliente entrar — em vez de virar dívida acumulada.

Para fechar o ciclo, montei um kit de replicação: o cliente piloto refeito sobre o template corrigido. A métrica de sucesso operacional: “a IA recria o cliente sem precisar abrir nenhum arquivo de componente”. Se precisar abrir, é regressão registrada. Esse critério mudou o jeito de revisar o template.

Resultado

~60h → ~30–36h de design por loja entregue. 6× menos refação em ciclos de aprovação. 23 falhas estruturais do piloto viraram backlog priorizado e fixes versionados. Posicionamento de mercado: Bis2Bis passou a operar em uma das categorias mais complexas de Design System (White Label + Multibrand).

Equipe e papel

Ponte design × dev. Responsabilidades de design: arquitetura do design system, definição da Loja Base, criação completa da Loja Demo como produto independente, workflow de onboarding de cliente (briefing/setup.html), audit tooling, documentação interna e externa.

O que aprendi

  • Migração de literais é cirurgia, não atalho. Uma tentativa de migrar hex literais com script único quebrou overlays escuros intencionais — o mega menu virou transparente, a navbar sobrepôs o grid. Commit foi revertido. A retomada virou one-shot só de classes não-ambíguas (rounded, aspect, fontFamily); hex passou a ser tratado um arquivo por vez. Auditoria automatizada complementa, não substitui leitura humana.
  • “Sistema escalável” é abstração; “IA recria o cliente sem abrir componente” é métrica. Operacionalizar o critério de sucesso mudou o jeito de revisar o template.
  • Ferramenta comercial é também ferramenta de design. A Loja Demo, criada pra vender, virou laboratório de UX — ao botar o cliente pra interagir ao vivo com a loja, surgiram sinais que pesquisa formal demoraria pra capturar.

Stack

ReactTypeScriptViteTailwind 4SupabaseCoolify