Preparando seu ambiente

Estúdio de desenvolvimentoBrasil → Mundo

🎃 EVENTO DE HALLOWEEN · ATÉ 31/10

Códigos movem o mundo.Sites deoutro mundo.

MILWEB® · Desenvolvimento criativo · Brasil → Mundo

Projetos / Milsaca

COLEÇÃO DE RECOMPENSAS · 25 missões

17 de 25

MISSÃO ESPECIALMilsacaMilsacaMW/OS · CASO 17 / 25SaaS sob medida · plataforma multi-tenant

17 de 25 · PRODUTO DIGITAL

Milsaca

SaaS sob medida · plataforma multi-tenant

PROJETO AUTORALEM DESENVOLVIMENTO

Milsaca — tela inicial
ESTÚDIO
MILWEB
Tipo
Sistema Web / SaaS
Stack
Next.js · Expo · Supabase · PostgreSQL · TypeScript

CONTEXTO

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

O QUE FOI FEITO

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.

MULTI-TENANT · WEB + MOBILE · RLS

SOLUÇÕES

  • 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.

DETALHE TÉCNICO

  • 01Monorepo 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, cor…

    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.

  • 02Multi-tenant de verdade, não só "filtro no WHERE": toda tabela do schema público tem Row Level Security habilitada, sem exceção, com isolame…

    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.

  • 03A 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 …

    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.

  • 04O 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é c…

    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.

TELAS

RESULTADO

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.

QUERO ALGO PARECIDO ↗

Enter abre o primeiro resultado · Esc fecha · tecla / abre a busca

Milsaca — SaaS sob medida · plataforma multi-tenant | MilWeb