Como liderei o desenvolvimento de um CRM completo em NestJS e Next.js — substituindo planilhas por automação com 60% menos custo de infra.

O Axxos CRM foi o projeto mais ambicioso que já desenvolvi. Um sistema construído do zero para substituir processos manuais e fragmentados, automatizar o fluxo comercial inteiro e dar visibilidade real sobre as operações da empresa.
Impacto em números
Após migração e otimizações
Do time comercial
Crescimento direto
Impacto na receita total
O problema
Antes do CRM, o time comercial da Axxos operava com planilhas, WhatsApp e e-mail. Cada etapa do funil de vendas era manual. Não havia rastreabilidade, os dados ficavam espalhados, e qualquer análise dependia de alguém juntar tudo na mão.
O objetivo era claro: centralizar tudo, automatizar o que fosse possível e dar ao time uma ferramenta que realmente funcionasse no dia a dia.
Sobre o projeto
Desenvolvi um CRM completo do zero que substituiu planilhas e processos manuais por um sistema integrado com funil visual, automações de fluxo e relatórios em tempo real.
O sistema foi arquitetado para lidar com o ciclo de vida completo do cliente, desde o primeiro contato até o fechamento da venda e pós-venda. Implementamos uma interface de "Pipeline" estilo Kanban que permite aos consultores moverem leads entre estágios de forma intuitiva.
Além do core do CRM, integramos diversos serviços como envio automatizado de e-mails, notificações via WhatsApp e geração automática de propostas comerciais.
Principais funcionalidades:
- Gestão de funil: pipeline visual com etapas configuráveis e movimentação por drag-and-drop
- Automações: regras de negócio que disparam ações automaticamente — notificações, tarefas, mudanças de status — sem intervenção humana
- Integração com APIs externas: webhooks para sincronizar dados com outras ferramentas usadas pela empresa
- Relatórios em tempo real: dashboards com métricas do funil, taxa de conversão, tempo médio de fechamento
- Controle de acesso: permissões por papel, garantindo que cada usuário veja e faça só o que deve
O desafio
O maior desafio foi a migração de dados e a mudança de cultura interna. A equipe estava acostumada com fluxos manuais e descentralizados. Precisamos construir um motor de migração robusto para garantir que nenhum histórico comercial fosse perdido e criar uma interface que fosse, ao mesmo tempo, poderosa e extremamente simples de operar.
Do ponto de vista técnico, o desafio central foi modelar o funil de vendas de forma flexível o suficiente para acomodar diferentes tipos de oportunidade sem tornar o sistema complexo demais. Cheguei a três ou quatro iterações no modelo de dados antes de encontrar uma estrutura que funcionasse bem.
Outro ponto foi a performance dos relatórios. Com volume de dados crescendo, queries simples começaram a ficar lentas. Resolvi com índices estratégicos, agregações pré-computadas e cache no Redis para as métricas mais acessadas.
Métricas de Crescimento
Eficiência Operacional
Volume de Vendas
Stack técnica
NestJS + TypeScript
Backend modular com separação clara de responsabilidades. Cada módulo tem sua própria camada de serviço e repositório.
React + Vite
Dashboard rápido e responsivo. Foco em usabilidade para o time comercial com pipeline estilo Kanban.
PostgreSQL + Redis
PostgreSQL para dados transacionais, Redis para cache de métricas e processamento de filas de notificação.
Docker + AWS
Infraestrutura containerizada com CI/CD configurado para deploys automáticos. Hospedagem escalável e segura.
O que aprendi
Construir um CRM do zero te força a entender profundamente o processo de vendas. Tive que aprender o negócio para conseguir modelar bem o sistema. A parte técnica foi a parte fácil — o desafio real foi entender o que o time precisava e traduzir isso em software que fizesse sentido para eles.
Se tivesse que refazer, investiria mais tempo em testes automatizados desde o início. Com a velocidade de desenvolvimento que o projeto exigiu, acabei acumulando dívida técnica em alguns módulos que depois custou tempo para limpar.
Os números refletem o impacto direto de ter um sistema que funciona — não só tecnicamente, mas para o negócio.