Pular para o conteúdo
Voltar aos projetos

Como Transformar Lógica Hardcoded em Dados Visuais

Logo do projeto Como Transformar Lógica Hardcoded em Dados Visuais

Em um mundo onde a agilidade é crucial, a experiência de onboarding de usuários e clientes deveria ser um processo fluido e fácil de adaptar. No entanto, a realidade em muitos projetos é bem diferente. Frequentemente, nos deparamos com sistemas de onboarding complexos, rigidamente codificados, que se tornam um verdadeiro gargalo para a inovação. Foi exatamente dessa "dor real" que nasceu a ideia por trás de um projeto que prova ser possível mudar esse cenário.

A Dor do Onboarding Hardcoded: Um Pesadelo de Manutenção

Imagine a seguinte situação:

"Essa POC nasceu de uma dor real. Em um projeto anterior, participei de um onboarding onde toda a lógica era hardcoded. Cada etapa era um componente separado, com campos repetidos, validações duplicadas, e qualquer mudança exigia alterar múltiplos arquivos. O time gastava mais tempo mantendo o onboarding do que construindo funcionalidades novas."

Essa é uma descrição precisa do problema que muitos times de desenvolvimento e produto enfrentam. Um onboarding construído com lógica "hardcoded" significa:

  • Falta de Flexibilidade: Qualquer ajuste, por menor que seja, requer intervenção de desenvolvedores.

  • Duplicação de Esforços: Campos, validações e regras são frequentemente replicados em diferentes partes do código, aumentando a chance de erros.

  • Custo de Manutenção Elevado: O tempo do time de desenvolvimento é consumido em tarefas repetitivas de manutenção, desviando o foco de novas funcionalidades.

  • Dependência da Equipe de Desenvolvimento: O time de produto, que possui a visão estratégica do onboarding, fica refém do ciclo de desenvolvimento para implementar até as menores alterações.

A Visão: Onboarding como Dados, Não Código

Diante desse cenário, uma pergunta emergiu: e se o onboarding fosse dado, não código? E se existisse uma ferramenta visual onde o time de produto pudesse montar fluxos, definir condições, e testar sem depender de desenvolvimento? A ideia era criar um "builder visual" que empoderasse as equipes de produto, permitindo-lhes:

  • Independência: Criar e modificar fluxos de onboarding sem escrever uma linha de código.

  • Agilidade: Iterar rapidamente, testar diferentes abordagens e otimizar a experiência do usuário em tempo real.

  • Redução de Custos: Liberar o time de desenvolvimento para focar em tarefas de maior valor agregado.

  • Melhora da Experiência: Desenhar jornadas mais personalizadas e dinâmicas para os usuários.

A Prova de Conceito (POC): Transformando a Visão em Realidade

Para provar que essa visão é não apenas possível, mas também altamente eficaz, desenvolvi uma Prova de Conceito (POC) que demonstra um builder de onboarding visual completo, com lógica condicional real. Esta POC valida a capacidade de construir um sistema robusto e flexível, que atende às necessidades de negócios e ao mesmo tempo simplifica a vida dos times de produto e desenvolvimento.

Funcionalidades Chave da POC

A POC incorpora diversas funcionalidades que a tornam poderosa e intuitiva:

  • Paleta Drag-and-Drop com 21 Tipos de Campo:

    Oferece uma vasta gama de componentes pré-construídos, desde campos de texto simples e moedas, até campos específicos como CPF com máscara, chips, select (seleção), radio buttons e switches. Isso garante que qualquer tipo de informação possa ser coletado de forma eficiente e padronizada.

  • Editor de Fluxo Condicional com React Flow:

    Utilizando a biblioteca React Flow, a POC permite criar um grafo visual onde cada "nó" representa uma etapa do onboarding e as "arestas" definem as transições. Essas arestas são inteligentes, avaliando as respostas do usuário para determinar qual caminho seguir.

  • Mecanismo Dual de Condições:

    A flexibilidade é garantida por dois tipos de lógica condicional:

    • showIf em campos: Permite exibir ou ocultar campos dentro da mesma etapa, dependendo das respostas anteriores do usuário.

    • when em arestas: Controla a transição entre etapas diferentes, direcionando o usuário para o próximo passo mais relevante com base em suas escolhas.

  • Runtime Responsivo:

    O sistema monta a jornada em tempo real, avaliando o grafo de fluxo a cada nova resposta do usuário. Isso significa uma experiência dinâmica e personalizada, adaptando-se instantaneamente às interações.

  • Persistência em LocalStorage com Rascunho Automático:

    Para garantir uma experiência de usuário sem interrupções, a POC salva automaticamente o progresso do usuário no armazenamento local do navegador, permitindo que ele retome o onboarding de onde parou.

  • 3 Exemplos Seed:

    A POC inclui exemplos práticos para ilustrar sua versatilidade:

    • Um fluxo linear de 6 etapas.

    • Um fluxo com "fork" (ramificação) para pessoas físicas (PF) e jurídicas (PJ) em 4 etapas.

    • Um fluxo mais complexo com 5 etapas e 3 ramificações baseadas em interesses, demonstrando a capacidade de criar jornadas altamente personalizadas.

A Tecnologia por Trás da POC

Para construir essa solução robusta e moderna, utilizei uma stack tecnológica de ponta:

  • React 19, TypeScript, Vite 8: Para uma interface de usuário performática, escalável e com forte tipagem.

  • Tailwind v4: Para um desenvolvimento de UI rápido e estilos consistentes.

  • Zod 4: Para validação de esquemas, garantindo a integridade dos dados.

  • @xyflow/react (React Flow): A ferramenta essencial para a criação do editor de fluxo visual.

  • dnd-kit: Para a funcionalidade de drag-and-drop da paleta de campos.

  • framer-motion: Para adicionar animações fluidas e melhorar a experiência do usuário.

Impacto e Próximos Passos

O objetivo principal desta POC é provar que é totalmente possível construir um builder de onboarding visual com lógica condicional complexa e real. Embora atualmente funcione 100% no navegador, utilizando JSON no front-end para definir os fluxos, a arquitetura foi pensada para permitir uma fácil integração com um backend quando necessário, possibilitando persistência em banco de dados e gerenciamento centralizado dos fluxos.

Essa abordagem não apenas resolve a "dor" do onboarding hardcoded, mas abre portas para um futuro onde a criação de experiências de usuário dinâmicas e personalizadas é acessível a todos os membros do time de produto, acelerando a inovação e o crescimento.

O código completo desta Prova de Conceito está disponível para exploração e colaboração no GitHub:

Acesse o código no GitHub