Case · Marketplace · Agronegócio
Reconstrução do Cavalar, marketplace onde criadores anunciam e compradores procuram cavalos pelo Brasil. Paridade de funcionalidade com o produto em produção, forma inteiramente nova — e quarenta e uma decisões de arquitetura registradas, cada uma com a alternativa que foi recusada.
01 · Contexto
Reconstruir não é recomeçar. O sistema em produção carregava regras que custaram tempo para serem descobertas — e erros que valia a pena não repetir.
O Cavalar conecta quem vende e quem procura cavalos: ficha com genealogia, premiações, documentação conferida, nível de doma e localização aproximada. O público real usa celular, muitas vezes no campo, e o compartilhamento acontece por WhatsApp — um filtro colado numa conversa é um dos motores de crescimento declarados do produto. Do outro lado existe uma operação de moderação: denúncias, verificação de vendedor, importação de anúncios em lote e taxonomias que mudam o site imediatamente.
O ponto de partida foi o levantamento do que existia: telas, fluxos, funcionalidades por área e regras de negócio lidas do código em produção. O critério declarado da reconstrução é paridade com o sitemap original — o que torna cada rota nova uma decisão que precisa ser justificada, e não uma adição natural.
02 · Desafio
A auditoria encontrou duplicação estrutural e uma falha sistêmica que nenhuma tela isolada poderia corrigir. As duas pediam decisão de produto antes de qualquer desenho.
Três rotas exibiam grade de anúncio com o mesmo cabeçalho, a mesma grade de colunas, o mesmo cartão e os mesmos quatro estados com a mesma redação. A única diferença real: uma delas tinha filtro e mapa.
Vitrine, catálogo e descobrir nomeavam a mesma coisa em lugares diferentes, e os títulos das telas não ajudavam a distinguir. O guia de voz encontrou o conflito antes de a arquitetura encontrar.
A página de erro mandava para uma rota, a ficha do animal mandava para outra, e o assistente de publicação mandava para as duas. Não existia uma casa única de retorno.
Os tamanhos da escala de botões iam de 24 a 36 pixels; os campos, 32. A diretriz de acessibilidade pede 24 no mínimo, e os sistemas móveis pedem 44 e 48. O sistema não conseguia sequer expressar um alvo válido — então nenhuma tela podia estar certa.
A resposta que aparece sozinha é resolver por tamanho de tela. Mas o eixo é falso: o moderador pode estar num tablet e o comprador num celular grande. Largura de janela não diz quem está usando nem para quê.
A paleta herdada tinha um verde que reprova contraste para texto normal sobre branco e um cinza que reprova tudo sobre a areia da marca. Sem medição, a decisão de cor vira preferência — e preferência não sobrevive à primeira revisão.
03 · Estratégia e mapeamento
A identidade visual do produto foi extraída do sistema legado com todo contraste calculado, não estimado — e o cálculo veio junto, reproduzível.
O documento de marca transcreve a paleta herdada, converte cada cor e mede cada par de contraste pela fórmula canônica, com o script que produz os números publicado junto. Quando os valores divergiram dos que o briefing citava, a divergência foi registrada e resolvida a favor do número reprodutível — e a conclusão prática não mudou: o verde médio reprova para texto normal, e a correção válida para superfície de ação é o verde mais escuro.
O mesmo princípio orientou a arquitetura. Cada duplicação virou um achado numerado, cada atrito de jornada virou um item, e a decisão só foi tomada depois de medir o alcance. A correção dos alvos de toque, por exemplo, atinge 48 arquivos que importam o botão e 19 que importam o campo — todas as rotas, sem exceção. Era a maior alavanca por menor custo do levantamento inteiro: três arquivos.
04 · Decisões de design
O formato é fixo: o que era verdade que forçou a decisão, o que foi decidido em uma frase, as alternativas descartadas com o motivo de cada uma, e as consequências — inclusive as ruins. Alternativa sem motivo registrado volta a ser proposta em duas semanas.
A rota de vitrine saiu. O fato que decidiu não estava em nenhum documento anterior: ela não existia no sistema legado — era rota inventada na reconstrução. Nenhum link compartilhado no WhatsApp apontava para ela, porque ela nunca esteve no ar. Removê-la não quebra a paridade declarada: restaura.
Filtro, ordenação, página e modo de visualização vivem no endereço, lido num único lugar — nenhuma tela lê a URL por conta própria, porque dois leitores do mesmo dado divergem no terceiro filtro. O custo está registrado e foi aceito: a rota deixa de ser estática. O ganho paga: o filtro colado numa conversa abre idêntico do outro lado.
Duas densidades nomeadas, escolhidas pela casca e não pela tela nem pela largura da janela. O marketplace usa a confortável, com 44 pixels em todo controle, porque o comprador está com o celular na mão no meio do pasto. O painel usa a compacta, com espaçamento compensando, porque o moderador varre tabela.
O termo travado no briefing — "falar com o vendedor" — descrevia duas ações lado a lado na mesma ficha, e o próprio legado já havia criado três chaves diferentes para elas. O nome da ação determina quantas ações existem: enviar mensagem, ligar e chamar no WhatsApp passaram a ter verbo e objeto próprios.
O briefing afirmava que anúncios com vídeo e genealogia recebem três vezes mais contatos. O repositório havia trocado por "vendem mais rápido" — e vender é justamente o que a plataforma não mede, porque a venda acontece fora do aplicativo. Ficou a forma sem número, com o verbo certo: afirmar o que não se mede é a mesma falha de escrever "vendedor confiável".
"Preço a combinar" é estado legítimo, mas nasce na edição, não na publicação. Deixar publicar sem preço num marketplace cujo principal filtro é faixa de preço é produzir anúncio que não aparece em nenhuma busca — e o vendedor não tem como saber disso.
O login é gate de ação, não de leitura. Quem chega por um link compartilhado vê o anúncio; a porta aparece quando a pessoa tenta salvar, conversar ou anunciar. Tratar "sem conta" como um estado de tela ao lado de carregando, vazio e erro teria colocado uma parede antes do conteúdo que atrai.
O padrão de abertura da home, o método de entrada, o modo noturno do mapa, o significado de preço zero e o salvamento sem login são conflitos diretos entre o briefing e o produto construído. Estão registradas como bloqueadas, com as duas leituras e a consequência de cada uma. Escolher sozinha ali teria sido decidir no lugar de quem tem a informação.
05 · O que não entrou
Boa parte do valor deste trabalho está no que foi deixado de fora, e no motivo registrado — porque é isso que impede a mesma proposta de voltar daqui a um mês.
"Três vezes mais contatos" é uma afirmação quantificada num produto em início de operação, cujo problema número um declarado é densidade de anúncios. Não é mentira: é que não há de onde tirar o número ainda. Quando houver medição, a frase volta com ele.
O mapa mostra o município e um círculo de privacidade ao redor do anúncio selecionado. A coordenada de um lote importado é sempre o centro do município. Precisão maior seria mais útil para comprar — e também para roubar.
A infraestrutura do legado comportava três idiomas, mas só o português estava completo: os outros dois tinham doze linhas de tradução contra quatrocentas. O redesign não assume que eles funcionam — o português é o idioma publicado, e o inglês fica em paridade verificada no CI.
Nada de "compra cem por cento segura" ou "vendedor confiável". O selo só aparece onde a plataforma de fato verifica alguma coisa — documentação conferida, vendedor verificado. Confiança afirmada sem verificação é a primeira coisa que um comprador testa e a primeira que ele perde.
06 · Da estratégia à experiência
Não há tela solta nem fluxo imaginado: o anúncio se publica, o filtro se aplica, o mapa agrupa e a conversa abre.
As telas foram construídas em código consumindo contratos de dado fictícios, com os quatro estados obrigatórios e toda string passando pela camada de tradução. A fronteira com o desenvolvimento é verificada por script: nenhuma tela faz requisição, lê variável de ambiente ou chama ação de servidor, e o CI reprova o pull request se aparecer.
O ganho prático é de conversa. Discutir se o modo mapa deve ser o padrão da home é uma coisa quando se olha um layout, e outra completamente diferente quando a pessoa arrasta o mapa, vê os agrupamentos se reorganizarem e percebe quanto tempo leva até encontrar um animal na própria região. A decisão sobre esse padrão continua registrada como pendente do cliente — mas agora ela é tomada com o produto na frente.
07 · Em destaque
Quatro áreas concentram quase toda a complexidade do produto: encontrar, avaliar, anunciar e moderar.
Pinos agrupados que se reorganizam por faixa de zoom, pino da posição de quem navega e círculo de privacidade ao redor do anúncio selecionado. A cor do pino comunica a pelagem do animal — informação que o comprador procura antes mesmo de abrir a ficha.
Aptidão, modalidade, tipo de negócio, preço, idade, premiações, raça, sexo, alçada, pelagem, nível de doma, documentação em dia e condições de venda. Vocabulário de criador, não de catálogo genérico — e toda origem de valor vem da taxonomia, nunca de texto livre.
Fotos, preço e município publicam o anúncio. A ficha completa vem depois, em blocos opcionais e colapsáveis, cada um mostrando quantos campos foram preenchidos. Exigir a ficha inteira na publicação é o jeito mais confiável de não ter anúncio nenhum.
Onde a ação entra, a navegação sai. Num celular, duas barras ancoradas competem pelo mesmo polegar e pela mesma faixa de 44 pixels — e a que perde é sempre a que o usuário queria.
Aptidões, modalidades, raças, pelagens e tipos de negócio são administráveis, e a mudança reflete no site imediatamente. Item em uso em algum anúncio não pode ser apagado, só desativado — apagar reescreveria anúncios que não são de quem administra.
Lotes de anúncios chegam por planilha, conferidos linha a linha contra as listas oficiais, tolerantes a acento e maiúscula. Erro bloqueia a linha, aviso não. E o lote inteiro pode ser desfeito — importação sem volta é a operação que ninguém tem coragem de usar.
08 · Impacto e aprendizados
Nenhuma métrica de produção é reivindicada aqui. O que o protótipo entrega é a capacidade de responder perguntas que antes só se respondiam depois do lançamento.
A hipótese mais importante é a do compartilhamento: se o estado inteiro da descoberta vive no endereço, um filtro colado numa conversa abre idêntico do outro lado. Isso é verificável hoje, copiando a URL entre dois navegadores — e era a aposta de crescimento que estava declarada no briefing sem nunca ter sido construída. A segunda é a dos alvos de toque: com duas densidades nomeadas, dá para colocar o produto numa mão real e medir erro de toque sem esperar a primeira reclamação na loja de aplicativos.
O aprendizado que eu levo é sobre o custo de não registrar. As cinco decisões bloqueadas são todas conflitos entre o que o briefing pediu e o que o produto construído faz — modo escuro do mapa, método de entrada, padrão da home. Nenhuma delas é difícil de decidir; todas são caras de redescobrir. Registrá-las como pendentes, com as duas leituras lado a lado, transformou cinco discussões circulares em cinco perguntas objetivas.
09 · Conclusão
O critério era manter tudo o que o produto sabia fazer. O trabalho foi descobrir quanto disso estava espalhado, duplicado ou com o nome errado.
Reconstruir um produto que já funciona é mais difícil que começar do zero, porque cada coisa estranha no sistema antigo pode ser dívida ou pode ser aprendizado — e confundir as duas custa caro nas duas direções. Remover a rota de vitrine só foi possível depois de confirmar que ela nunca esteve no ar; manter três ações de contato distintas só fez sentido depois de ver que o próprio legado já havia criado três chaves para elas, contra o que o briefing travava.
O que o protótipo entrega não é um layout aprovado: é um produto que se atravessa, com as decisões escritas ao lado e as pendências nomeadas. Quem for implementar recebe as telas, os contratos de dado, o motivo de cada escolha e a lista exata do que ainda depende do cliente — que é a diferença entre entregar uma proposta e entregar um projeto.