ÓticaPlus – SaaS Multi-Tenant para Óticas
SaaS multi-tenant para óticas com vitrine pública, propostas, pedidos/OS, financeiro, WhatsApp Agent e QR/OCR em um fluxo unificado.
Visão geral
Sistema SaaS multi-tenant para a operação completa de óticas, conectando vitrine pública, leads, atendimento, propostas compartilháveis, pedidos/OS, financeiro, laboratórios e relatórios no mesmo produto. O projeto foi evoluído para reduzir retrabalho, melhorar rastreabilidade comercial, organizar cobrança recorrente e dar mais controle ao fluxo operacional.
Galeria do produto
Desafio
- Atendimento, financeiro, laboratório, prospecção e presença digital operavam de forma fragmentada.
- Isso gerava retrabalho em cadastro, baixa rastreabilidade entre orçamento e pedido, pouca previsibilidade financeira e dificuldade para transformar leads em vendas acompanháveis.
Solução
- Desenvolvi uma arquitetura SaaS multi-tenant em Next.js App Router, TypeScript, Drizzle ORM e Supabase, com módulos integrados para CRM, propostas, pedidos, financeiro, laboratórios, vitrine pública e prospecção.
- Implementei governança por tenant, billing por plano, WhatsApp Agent, QR/OCR rastreável, propostas públicas com ciclo de aprovação e conversão segura para pedido/OS.
- Também refinei contratos de API, validação, cache, observabilidade, hardening de uploads e componentes recolhíveis para reduzir poluição visual em fluxos densos.
Arquitetura
- Monólito modular
- Governança multi-tenant por loja e laboratório
- Autenticação e autorização por contexto
- Domínio de propostas separado do pedido operacional
- Integração de QR/OCR, WhatsApp Agent e vitrine pública
- Observabilidade e hardening incremental de APIs
Decisões técnicas
- Separei proposta comercial de pedido operacional para evitar financeiro duplicado durante negociação.
- Usei Drizzle ORM e repositories/services incrementais para reduzir acoplamento entre App Router, banco e regras de negócio.
- Mantive WhatsApp como adaptador de canal, preservando fallback manual quando o Agent ou provedor automático não está disponível.
- Apliquei hardening multi-tenant, validação de IDs, rate limit em uploads e observabilidade nas rotas críticas sem reescrever o sistema.
Destaques de Engenharia
- 810 arquivos TypeScript
- 197 route handlers de API
- 53 tabelas/modelos Drizzle
- Vitrine pública com leads e eventos
- Proposta -> Pedido/OS -> Financeiro integrado
Impacto
- Fluxo comercial, operacional e financeiro centralizado
- Rastreabilidade entre lead, proposta, OS, pagamento e laboratório
- Redução de entrada manual com QR/OCR e mensagens prontas
- Billing, planos, cupons e limites de filiais estruturados
Resultado
- Antes: comercial, financeiro e laboratório trabalhavam em paralelo -> Depois: a operação passou a seguir proposta -> pedido/OS -> financeiro -> laboratório.
- Antes: leads e presença digital ficavam fora do sistema -> Depois: a vitrine pública passou a registrar leads, eventos e contato por WhatsApp.
- Antes: cadastro manual gerava muito retrabalho -> Depois: QR/OCR e contexto de captura reduziram entrada manual em documentos críticos.
- Antes: a cobrança era menos previsível -> Depois: billing por plano, carnês, recebíveis e despesas de laboratório deram mais controle operacional.
- Antes: permissões e IDs eram pontos sensíveis -> Depois: validações por tenant e hardening de APIs reforçaram a governança de acesso.
Tecnologias
- Next.js 16
- React 19
- TypeScript
- Drizzle ORM
- PostgreSQL
- NextAuth
- Zustand
- Supabase
- WhatsApp Agent