MilWebWhatsApp
Voltar aos projetos

SaaS sob medida · plataforma multi-tenant

Milsaca

Multi-tenant · web + mobile · RLSEm desenvolvimento
Screenshot do projeto Milsaca

Problema

Um setor inteiro rodava no improviso entre planilhas e WhatsApp, sem um sistema único.

Solução

SaaS multi-tenant (web + mobile) com painéis por papel, automações e dados seguros (RLS). Prova de que entrego produto complexo de ponta a ponta.

SaaS em desenvolvimento ativo.

Como foi construído

Monorepo Turborepo + pnpm com três frentes num só backend: Next.js 16 (App Router) pro web, que sozinho já cobre três painéis (produtor, corretora e admin da plataforma), e Expo Router pro app mobile do produtor. Web e mobile falam com o mesmo Supabase através de um pacote compartilhado (@milsaca/db) com três camadas de client: uma com cookie de sessão pro server, uma sem cookie (só a chave pública) pra rotas com cache, e uma com secure-store pro mobile.

Multi-tenant de verdade, não só "filtro no WHERE": toda tabela do schema público tem Row Level Security habilitada, sem exceção, com isolamento por corretora_id garantido no banco, não na aplicação. Papéis (produtor/corretora/admin) vivem num array na tabela de perfil, permitindo o mesmo e-mail acumular mais de um papel; o admin da plataforma fica numa tabela própria, fora do enum de papéis, pra não vazar por engano num RLS mal escrito.

A decisão de autenticação é um bom exemplo de aprender com o próprio produto: começou com magic link e foi trocada por OTP de 6 dígitos por e-mail, porque o Gmail Safe Links faz prefetch automático do link (pra escanear por segurança) e acaba "queimando" o token de uso único antes do usuário clicar. É um bug sutil que só aparece em produção, com e-mails reais.

O diferencial de domínio é a classificação COB (Instrução Normativa MAPA nº 8/2003): a lógica de tipos, defeitos, peneira e bebida do café cru foi extraída pra um pacote puro (@milsaca/cob), sem dependência de runtime, testável isoladamente. O laudo gerado tem PDF com QR code e uma página pública de verificação, dando ao produtor algo que hoje é feito no papel ou de cabeça.

Multi-tenant via RLS

Isolamento por corretora_id garantido no banco, não na aplicação. RLS em toda tabela.

Laudo COB digital

Motor de classificação da IN 8/2003 (MAPA) em pacote puro, com PDF + QR de verificação pública.

Cotações ao vivo

CEPEA, ICE NY Coffee C e PTAX (BCB) sincronizados via edge function agendada.

Web + mobile, um backend

Next.js 16 e Expo Router compartilhando o mesmo Supabase por um pacote de clients em camadas.

Mais telas

Página pública do MilsacaPainel da corretora (dados de demonstração)Laudo COB digital do produtor (dados de demonstração)

Stack

  • Next.js
  • Expo
  • Supabase
  • PostgreSQL
  • TypeScript

Pronto para transformar sua ideia em um produto digital?

Me conta o que você precisa. Respondo rápido e te passo um orçamento gratuito, sem compromisso.

  • Contrato de garantia
  • Suporte pós-entrega
  • O código é seu
  • Orçamento gratuito