Moveis.pro
SaaS multi-tenant para lojas de móveis, com CRM e operação de WhatsApp e Instagram.
Desenvolvimento full-stack, de ponta a ponta · menos de 45 dias de construção
- models
- 40
- aplicações
- 3
01 Problema
Lojas de móveis vendem por WhatsApp e Instagram sem CRM: conversa se perde, vendedor não sabe quem já foi atendido, e cada loja é um cliente isolado que não pode ver dado de outra. Faltava um SaaS que desse conta comercial de verdade dentro de cada loja, sem misturar tenant.
02 Arquitetura
São 3 aplicações: API em Fastify, painel de gestão em Next.js e PWA para o vendedor usar no chão de loja. Banco modelado com 40 models Prisma. Deploy em VPS com Nginx, com pipeline de CI que aplica threshold de cobertura de teste antes de liberar merge.
03 Decisões difíceis
Isolamento multi-tenant
Cada loja é um tenant isolado: toda query carrega o escopo do tenant, e o modelo de dados foi desenhado para que um bug de aplicação não consiga cruzar dado de duas lojas — a mesma preocupação de autorização do OSCapstack, resolvida no nível do schema em vez de RLS porque o banco aqui é Prisma sobre um Postgres compartilhado, não Supabase.
Atribuição de conversas a vendedores por instância
Cada loja pode ter mais de uma instância de WhatsApp/Instagram, e uma conversa entrando numa instância precisa ser atribuída ao vendedor certo sem dois vendedores respondendo o mesmo cliente. A atribuição acontece por instância, não globalmente, porque é assim que a loja de verdade organiza o time.
PWA offline-first para uso em loja
O vendedor usa a PWA no chão de loja, onde o Wi-Fi cai. A interface funciona offline e sincroniza quando a conexão volta, em vez de travar numa tela de erro no meio de um atendimento.
Pipeline de deploy com política prod/dev separada
CI aplica um threshold de cobertura de teste antes de liberar o merge, e o deploy em VPS com Nginx segue uma política que separa o que vai para produção do que fica em desenvolvimento — nenhum merge chega a produção só porque passou no build.
04 Stack
- TypeScript
- Next.js
- Fastify
- Prisma
- PostgreSQL
- PWA
- Docker
- Nginx
05 O que mudou
O sistema responde o cliente, fecha o pedido, manda o pedido para a fábrica e acompanha o estoque — tudo no mesmo lugar em que a conversa começou. A venda deixou de trocar de ferramenta a cada etapa, que era onde o atendimento se perdia e para onde ia o tempo do vendedor.