tutorial

Stack completa de IA pra dev brasileiro: API + NF + LGPD em 2026

Tutorial fim-a-fim pra montar produção: gateway IA, observability, billing, compliance LGPD, e quanto custa por mês cada peça. Com código real.

Vou montar passo a passo a stack que uso em produção pra rodar features de IA num SaaS brasileiro. Tudo open-source ou pay-as-you-go, sem assinatura chata, com cada peça custando menos de R$ 100/mês na partida.

A stack inteira (TL;DR)

| Camada | Tecnologia | Custo aprox | |---|---|---| | Gateway IA | Tokia (OpenAI-compatible) | R$ 50-500/mês | | Backend | Node.js (Fastify) ou Python (FastAPI) | $5-20/mês (Hetzner/Hostinger VPS) | | Frontend | Next.js 16 + Tailwind v4 | $0 (Vercel free) | | DB | Supabase self-hosted | $0 (mesma VPS) | | Auth | Logto self-hosted | $0 (mesma VPS) | | Pagamentos | Asaas (PIX + cartão) | 1% por transação | | Observability | GlitchTip (Sentry-compatible) | $0 (mesma VPS) | | Email | Resend (DKIM/SPF) | $0 até 3k/mês | | Domínio + DNS | Cloudflare | $10/ano | | Total bootstrap | | R$ 80-600/mês |

1. Gateway de IA: Tokia

Por que não chamar OpenAI direto? NF brasileira, PIX, suporte PT-BR, multi-provider numa key. Já cobri no post comparativo.

Setup:

// lib/ai.ts
import OpenAI from "openai";

export const ai = new OpenAI({
  baseURL: "https://api.usetokia.com/v1",
  apiKey: process.env.TOKIA_API_KEY!,
});

export async function chat(userMessage: string) {
  return ai.chat.completions.create({
    model: "claude-sonnet-46", // ou gpt-4o-mini, llama-3-3-70b, etc
    messages: [
      { role: "system", content: "Você é assistente brasileiro." },
      { role: "user", content: userMessage },
    ],
  });
}

Custo: depende do modelo. Pra chatbot com Llama 3.3 70B: ~R$ 0,02 por conversa de 1000 tokens. 1000 conversas/mês = R$ 20.

2. Auth: Logto self-hosted

Por que não Auth0/Clerk? LGPD. Logto roda em Docker na sua VPS, dados ficam no Brasil, e custa $0.

Setup (docker-compose.yaml):

services:
  logto:
    image: svhd/logto:latest
    environment:
      DB_URL: postgres://postgres:senha@db:5432/logto
      ENDPOINT: https://auth.seusite.com
    ports:
      - "3001:3001"
    depends_on:
      - db

OAuth Google/GitHub/etc configuráveis via UI. SDKs oficiais pra Next.js, React Native, etc.

3. Pagamentos: Asaas (PIX + cartão tokenizado)

Por que não Stripe BR? Asaas tem PIX nativo + emissão de NFS-e automática quando pagamento confirma. Stripe BR tem PIX mas a NF você precisa gerar em ferramenta separada.

Setup webhook PIX:

// routes/webhooks/asaas.ts
import crypto from "node:crypto";

app.post("/webhooks/asaas", async (req, reply) => {
  const token = req.headers["asaas-access-token"];
  if (token !== process.env.ASAAS_WEBHOOK_TOKEN) {
    return reply.code(401).send();
  }
  const { event, payment } = req.body;
  if (event === "PAYMENT_RECEIVED") {
    await addBalance(payment.customer, payment.value);
  }
  return reply.code(200).send({ ok: true });
});

4. Observability: GlitchTip (Sentry-compatible)

Por que não Sentry SaaS? R$ 0 self-hosted + LGPD-friendly. GlitchTip é fork open-source do Sentry com mesma SDK.

// sentry.ts
import * as Sentry from "@sentry/nextjs";

Sentry.init({
  dsn: process.env.SENTRY_DSN, // aponta pra GlitchTip self-hosted
  tracesSampleRate: 0.1,
  environment: process.env.NODE_ENV,
});

5. LGPD compliance

3 coisas que você não pode esquecer:

a) Base legal documentada — se você usa IA pra processar dados pessoais do cliente (nome, CPF, conversas), precisa de:

  • Política de privacidade declarando uso de IA + providers (OpenRouter, Anthropic etc)
  • Cláusula contratual com cliente autorizando

b) Data residency — modelos como Llama (open-source) podem rodar via provider Singapore (OpenRouter rota). Modelos US-only (Claude) precisam de disclosure no contrato.

c) Direito ao esquecimento — endpoint /api/users/me/delete que apaga dados + para envio pra IA. Implementação:

app.delete("/me", async (req, reply) => {
  await prisma.user.delete({ where: { id: req.user.id } });
  // Asaas: anonimiza customer
  await asaas.customers.update(asaasId, { name: "DELETED", cpf: "00000000000" });
  // Tokia: revoga API keys
  await tokia.apiKeys.revokeAll(userId);
  return { ok: true };
});

6. Deploy: Coolify (self-hosted Heroku-like)

VPS Hetzner CX22 (4 vCPU + 8GB RAM) ~R$ 20/mês roda essa stack inteira:

  • Coolify (orquestrador) + Traefik (proxy HTTPS automático)
  • Supabase (Postgres + Realtime)
  • Logto (auth)
  • GlitchTip (observability)
  • Sua aplicação Next.js + API

Deploy com push pra GitHub via Coolify GitHub App. Cert HTTPS via Let's Encrypt automático.

Custos reais — mês 1 (MVP)

| Item | Custo | |---|---| | Gateway IA (Tokia, 5k requests/mês LLM + 200 imagens) | R$ 80 | | Hetzner VPS (CX22 + IPv4) | R$ 22 | | Cloudflare DNS + Resend free tier | R$ 0 | | Domínio (.com.br anual / 12) | R$ 4 | | Asaas (1% de R$ 5k recebido) | R$ 50 | | Total | R$ 156/mês |

Comparativo: SaaS equivalente em **Heroku + Auth0 + Stripe BR + Sentry SaaS

  • OpenAI direto** sai por R$ 1.500-2.500/mês na mesma escala.

Como migrar?

Você não precisa reescrever nada. Troca só o BASE_URL da OpenAI pra Tokia e continua usando SDK OpenAI/Anthropic/o que já programou. Auth e billing você adiciona quando precisar — pode rodar mês 1 só com OpenAI-direto até testar PMF.

Começar com R$ 10 de PIX →


Próximos posts da série:

  • "Como integrar Tokia + Supabase + Stripe num SaaS em 1 tarde" (em breve)
  • "LGPD pra dev: o checklist que o seu DPO esqueceu de mandar" (em breve)
#stack#ia#lgpd#producao#dev

Quer testar Tokia com R$ 10 via PIX?

Criar conta grátis →