A primeira agência
de marketing 24/7
que nunca dorme.
Plataforma SaaS multi-tenant que substitui agência de marketing tradicional para PMEs, agências e freelas brasileiros. Combina IA (geração de conteúdo + decisão + execução), integrações de canal (IG, WA, FB, in, TT, YT, e-mail) e CRM/BI em um único produto.
Público
PMEs (R$ 200k–10M/ano), agências de mkt digital (5–50 funcionários), freelas (social media, copywriters).
Proposta de valor
Agência de marketing inteira por 1/10 do custo. IA executa o trabalho repetitivo; humano só aprova e revisa.
Modelo
Assinatura mensal (Starter R$ 97 · Pro R$ 297 · Agência R$ 897) + créditos IA elásticos por uso.
A stack moderna brasileira de mais alto leverage.
Next.js 15 (App Router) + React Server Components
Server actions pra mutações, ISR pra páginas públicas, edge runtime pro estático. tRPC ou Server Actions pra API.
- Tailwind v4 + shadcn/ui (acelera componentes)
- Zustand pra UI state · TanStack Query pra cache
- Framer Motion pra animações
- react-hook-form + zod pra validação
Supabase (Postgres + Auth + Storage + RLS)
Row-Level Security garante multi-tenancy nativo. Tudo em uma plataforma, escala até ~50k usuários sem migrar.
- Postgres 16 + pgvector (busca semântica)
- Realtime pra Inbox + Notificações
- Edge Functions (Deno) pra integrações
- R2 / Cloudflare pra storage de imagens
Replicate + Anthropic + OpenAI
Camada de abstração MediaProvider permite trocar provider sem reescrever app.
- Texto: Claude Sonnet 4.5 + GPT-5 (custo)
- Imagem: Flux 1.1 Pro · BiRefNet (bg)
- Vídeo: Kling 2.0 + Remotion
- Áudio: Whisper · ElevenLabs PT-BR
Vercel + Supabase + Cloudflare + PostHog
Tudo gerenciado. Sem ops próprio até 10k clientes pagantes. Observabilidade desde dia 1.
- Vercel pra hospedagem Next.js
- Sentry pra erros · PostHog pra produto analytics
- Resend pra e-mail transacional
- Trigger.dev / Inngest pra jobs assíncronos
Schema base · 18 tabelas iniciais.
Multi-tenant por workspace_id. RLS em todas as tabelas. Soft delete por deleted_at.
-- core
workspaces (id, slug, name, plan, niche, created_at, deleted_at)
users (id, email, name, avatar_url, created_at)
memberships (workspace_id, user_id, role) -- owner, admin, editor, viewer
-- brand
brand_kits (id, workspace_id, name, palette_json, fonts_json, voice_json)
brand_assets (id, brand_kit_id, type, url, tags[]) -- logos, fotos próprias
-- content
content_items (id, workspace_id, brand_kit_id, title, type, status, scheduled_at,
published_at, copy_json, slides_json, viral_score, parent_id)
content_versions (id, content_item_id, version, snapshot_json, created_by, created_at)
content_metrics (id, content_item_id, channel, reach, ctr, saves, leads_generated)
-- ai
ai_jobs (id, workspace_id, type, provider, model, status, input_json,
output_json, cost_credits, latency_ms, error)
ai_assets (id, ai_job_id, url, kind, prompt, refs_json)
-- crm
leads (id, workspace_id, source, channel, status, score, name, email,
phone, last_interaction_at, value_estimated)
conversations (id, workspace_id, lead_id, channel, status, last_message_at)
messages (id, conversation_id, from, body, attachments_json, sent_at)
-- ops
campaigns (id, workspace_id, name, channel, budget, status, kpis_json)
proposals (id, workspace_id, lead_id, html, status, sent_at, accepted_at)
automations (id, workspace_id, name, trigger_json, steps_json, runs_count)
-- billing
subscriptions (id, workspace_id, plan, status, credits_used, credits_quota, renews_at)
invoices (id, workspace_id, amount, status, paid_at, stripe_id)
Cada usuário pode estar em N workspaces.
Magic link + Google + Apple
Cadastro sem fricção. Senha opcional. 2FA via TOTP no plano Agência.
Policy por workspace
Toda query no Postgres filtra por workspace_id automaticamente via JWT claim.
Owner · Admin · Editor · Viewer
Owner cobra. Admin gerencia equipe. Editor cria conteúdo. Viewer só lê BI.
-- exemplo de RLS policy
create policy "users access own workspace data"
on content_items for all
using (
workspace_id in (
select workspace_id from memberships
where user_id = auth.uid()
)
);
Async-first, com camada de abstração.
Como uma geração funciona
ai_jobs com status=queued. Decrementa créditos otimisticamente.MediaProvider.dispatch() escolhe Flux / Claude / etc baseado em type.ai_jobs.content_versions.Camadas de imagem (decisão automática)
| # | Origem | Quando | Custo |
|---|---|---|---|
| 01 | Expoent Originals | hero, capas, propostas | 0 |
| 02 | IA · Flux Pro | rascunhos, variações | 4 cr |
| 03 | Unsplash/Pexels | backgrounds, mood | 0 |
| 04 | Shutterstock | caso específico raro | 8 cr |
Routing decidido automaticamente pela IA baseado em prompt + contexto + tier do plano.
8 canais com prioridade clara.
| Canal | Capacidade | API | Fase | Complexidade |
|---|---|---|---|---|
| publicar feed + reels + stories, ler insights | Graph API (Business) | MVP | média | |
| enviar + receber mensagem, templates, áudio | WhatsApp Cloud API | MVP | alta · BSP necessário | |
| publicar feed + reels, ler insights | Graph API | Fase 2 | média | |
| publicar texto + imagem + carrossel | Marketing API | Fase 2 | média | |
| TikTok | publicar vídeo + áudio | TikTok for Business | Fase 2 | média |
| YouTube | publicar shorts + vídeo longo | YouTube Data API v3 | Fase 3 | baixa |
| disparo + templates + tracking | Resend / SendGrid | MVP | baixa | |
| Chat do site | widget embed + inbox unificada | WebSocket próprio | Fase 3 | média |
Stripe BR + PIX + créditos elásticos.
Stripe BR
Assinatura recorrente cartão. Webhook reconcilia status.
PIX (via Stripe + fallback Pagar.me)
Pagamento instantâneo gera QR + copia-cola. Confirmação em até 30s.
Boleto
Para anuais. Confirmação manual via webhook do gateway.
// modelo de créditos plan.credits_quota_per_month // ex: PRO = 12.000 créditos plan.allow_overage // PRO = sim, ao R$ 0,03/crédito extra subscription.credits_used // contador resetado mensalmente subscription.credits_purchased // pacotes extra (rollover 90 dias) // custo por ação flux_pro_image = 4 créditos claude_completion_1k = 1 crédito video_15s = 40 créditos voice_clone_minute = 5 créditos
12 routers organizados por domínio.
// app/server/routers
content.create input: { brand_kit_id, type, brief }
content.list input: { status, channel, range }
content.publish input: { content_id, channel, schedule_at }
content.get_versions input: { content_id }
content.revert input: { content_id, version }
ai.generate_image input: { prompt, refs[], style, brand_lock: bool }
ai.generate_carousel input: { brief, slides_count, template_id }
ai.generate_video input: { brief, length_s, style }
ai.regenerate input: { ai_job_id, edits: { mask, prompt } }
leads.create input: { name, email, phone, source }
leads.update_status input: { lead_id, status } // hot/warm/cold/won/lost
leads.score input: { lead_id } // IA calcula 0–100
conversations.list input: { channel, status }
messages.send input: { conversation_id, body, attachments }
messages.suggest_reply input: { conversation_id } // IA sugere resposta
campaigns.create input: { name, channel, budget, goals }
campaigns.metrics input: { campaign_id, range }
billing.create_checkout input: { plan, billing_cycle }
billing.buy_credits input: { pack_size }
billing.cancel input: { confirm }
bi.dashboard input: { range }
bi.recommendations output: AI insights[]
workspace.create
workspace.invite
workspace.switch
3 fases · 10 meses até produto comercial.
Meses 1–4 · R$ 80–120k
Time: 2 devs full-stack + 1 designer
- Auth + workspace + Brand Kit básico
- Studio (post + carrossel · IG only)
- Painel + Calendário simples
- Pagamento Stripe + créditos básicos
- Meta: 50 clientes piloto · R$ 15k MRR
Meses 5–8 · R$ 150–250k
Time: 3 devs + designer + PM
- WhatsApp + Inbox + Leads/CRM
- BI completo + Recomendações IA
- Score viral + A/B testing
- Propostas + Automações
- FB + LinkedIn
- Meta: 500 clientes · R$ 150k MRR
Meses 9–12 · R$ 200–350k
Time: 5 devs + 2 PMs + ML eng
- TikTok + YouTube + Pinterest
- Vídeo curto (Cortes IA + voz)
- Agência mode (multi-cliente)
- Admin Master + suporte
- Banco Expoent · 4 nichos
- Meta: 2.000 clientes · R$ 600k MRR
Os 6 riscos que podem matar o produto.
| # | Risco | Probabilidade | Mitigação |
|---|---|---|---|
| 01 | Custo de IA explode em escala | Alta | Stack híbrida em camadas. Cache agressivo. Pacotes de crédito com margem. |
| 02 | Meta/IG mudar política & cortar API | Média | Compliance rigoroso. Plano B sempre: Buffer-like queue. Diversificar canais cedo. |
| 03 | Qualidade visual de saída < concorrentes | Alta | Banco Expoent + Brand Lock + templates curados. Priorizar foto real. |
| 04 | Churn alto por UX confusa | Média | Protótipo já está em 9/10 UX. Manter rigor com cada feature nova. |
| 05 | WhatsApp Business + BSP travar onboarding | Alta | Iniciar piloto Twilio/Zenvia agora. Documentar fluxo de aprovação. |
| 06 | Concorrência (Canva, AdCreative) replicar nicho BR | Média | Velocidade. Banco Expoent vira moat. Comunidade brasileira como fosso. |