Command Palette

Search for a command to run...

0

Command Palette

Search for a command to run...

Blog

Stone Destino Chile: gamificação que move equipes

Como construí um sistema gamificado de incentivo comercial com ranking em tempo real para a Stone — da ideia à entrega.

O Stone Destino Chile foi um dos projetos mais divertidos de desenvolver. O desafio: criar uma plataforma de incentivo comercial gamificada para a equipe de vendas da Stone, com ranking em tempo real e uma experiência que fizesse o time querer participar.

O contexto

A Stone precisava de uma ferramenta para uma campanha comercial específica — uma competição interna onde os vendedores acumulavam pontos por metas atingidas, e os melhores colocados ganhariam uma viagem ao Chile.

O sistema precisava ser rápido de desenvolver, confiável durante a campanha e capaz de mostrar o ranking atualizado em tempo real para todos os participantes.

Como foi construído

Stack:

  • Frontend: React + TypeScript
  • Backend: Node.js + TypeScript
  • Banco: PostgreSQL
  • Tempo real: WebSockets (Socket.io)

A escolha por WebSockets foi direta — o ranking precisava atualizar automaticamente sem o usuário precisar recarregar a página. Isso era central para a experiência de competição.

Funcionalidades principais

Ranking em tempo real: quando uma venda era registrada e os pontos eram computados, todos os participantes viam o ranking atualizar instantaneamente. Sem delay, sem necessidade de refresh.

Autenticação segura: acesso controlado por credenciais individuais, garantindo que cada vendedor só visse o que devia ver e que os dados da competição não vazassem.

Painel de gestão: interface separada para os administradores da campanha gerenciarem participantes, pontuações e configurações da competição.

Histórico de pontuação: cada vendedor podia ver o detalhamento de como seus pontos foram acumulados — transparência total no processo.

Desafios

O maior desafio foi garantir a consistência dos dados em tempo real com múltiplos usuários conectados simultaneamente. Com WebSockets, você precisa pensar cuidadosamente em como distribuir eventos e garantir que o estado do cliente esteja sempre sincronizado com o servidor.

Resolvi isso com um modelo de eventos imutáveis no backend — cada mudança de pontuação gera um evento que é transmitido para todos os clientes conectados, que recalculam o ranking localmente. Simples e eficiente.

O prazo também foi um desafio. A campanha tinha data marcada e o sistema precisava estar pronto e testado antes disso. Priorizei as funcionalidades core e deixei melhorias de UX para uma segunda fase, que acabou não sendo necessária porque o sistema funcionou bem desde o início.

Resultado

O sistema rodou durante toda a campanha sem incidentes. O ranking em tempo real criou exatamente o nível de engajamento esperado — vendedores acompanhando a posição uns dos outros e competindo ativamente pelas metas.

Foi um projeto que me ensinou bastante sobre desenvolvimento orientado a prazo e sobre como simplificar a arquitetura quando o tempo é o principal constraint.