-
Notifications
You must be signed in to change notification settings - Fork 52
Description
Hoje a Deco oferece um ótimo sistema de Experiments com variants, que funciona muito bem para testar componentes, sections e até páginas completas entre diferentes segmentos.
No entanto, quando falamos de grandes mudanças estruturais, como refactors amplos, novas arquiteturas, reescrita de páginas, mudanças profundas de loaders, caching strategies ou alterações na navegação, o modelo atual se torna limitado.
Para esses casos, seria extremamente útil termos a capacidade de executar um A/B test real entre duas branches diferentes, ou seja, testar uma versão inteira do site (branch X) contra outra (branch Y) com tráfego controlado.
Por que isso é importante
Experiments + variants funcionam muito bem para testar componentes, sections e páginas inteiras, mas começam a se tornar insuficientes quando as mudanças envolvem múltiplas partes do sistema. Nesses casos, é necessário duplicar componentes, criar feature flags, fazer merge na main e configurar diversas variants manualmente. Além disso, não há uma forma simples de visualizar todos os componentes, sections ou páginas que participam de um mesmo experimento, o que torna o processo mais complexo e difícil de manter conforme o escopo cresce.
Nestes casos, um full branch test permitiria validar a experiência completa e lançar mudanças grandes de forma mais segura
Perguntas importantes (para discussão)
1. O teste seria sempre main vs develop?
Ou permitiria main vs qualquer branch?
Ou até branch vs branch arbitrária?
O ideal seria permitir:
mainvsdevelopmainvsfeature/refactor-xyz
Qualquer limitação fixa no par comparado reduz muito os casos reais de uso.
2. A branch usada no experimento ficaria “congelada”?
Ou acompanhará os novos commits?
Cenários que precisamos considerar:
- A
developpode continuar recebendo features enquanto o teste está no ar? - E se a equipe não quiser que essas features entrem no experimento?
- Como lidar com:
- hotfixes
- patches
- ajustes emergenciais
- merges não relacionados ao teste
Talvez um toggle do tipo:
- Lock branch during experiment (congela o estado)
- Follow branch HEAD (automaticamente atualiza o build)
3. Como seria o deploy técnico?
Alguns pontos importantes:
- A branch alternativa gera seu próprio build (como um preview atual)?
- O roteamento divide tráfego entre builds distintos?
- Existe limite de branches concorrendo?
- Como ficam as dependências entre builds?
4. Como funcionariam métricas e tracking?
Para testes A/B reais, é essencial:
- identificar bucket A ou B por request
- expor isso no cookie (
__deco_matcherou equivalente)
5. Impactos em SEO
Testar duas branches completas pode gerar duplicação de conteúdo.
Algumas perguntas relevantes:
- A variant alternativa fica automaticamente bloqueada para crawlers?
- Apenas a branch principal deve ser indexável?
- Como fica canonical e robots nesses casos?
Resumo da proposta
Adicionar suporte para:
✔️ criar experimentos A/B servindo branches inteiras
✔️ escolher quais branches entram no experimento
✔️ controlar congelamento ou atualização automática da branch
✔️ testar features profundas e reescritas completas com tráfego real
✔️ continuar usando variants para ajustes pequenos