Início Rápido (Getting Started)¶
Repositório e Ambientes¶
- Repositório oficial:
EuVinicios/mypaidtraffic(privado). - Hospedagem da aplicação: Projeto Vercel
mypaidtraffic(brandvelia.com,app.brandvelia.com). - Banco de dados: Projeto Supabase
panoptes(schema isoladobrandvelia). - Documentação técnica: Site MkDocs hospedado em
docs.brandvelia.com.
Stack Tecnológica¶
| Camada | Tecnologia |
|---|---|
| Monorepo & Build | pnpm workspaces + Turborepo |
| Tipagem & Linguagem | TypeScript em modo strict |
| Aplicação Web | Next.js (App Router, diretório src/, Tailwind CSS v4) |
| Banco de Dados & Auth | Supabase (PostgreSQL, Row-Level Security, Edge Functions) |
| Gateway de IA | OpenRouter via provedor interno server-only com JSON Schema |
| Rede de Afiliados | ClickBank (LinkBuilder, INS 8.0, QuickStats API, Scraper) |
| Design System / UI | Radix UI + shadcn/ui + Lucide Icons |
Requisitos do Sistema¶
- Node.js: Versão 20 ou superior (Node 22 recomendado)
- pnpm: Gerenciador de pacotes padrão do monorepo
- Python 3: Usado exclusivamente para a documentação MkDocs no ambiente virtual isolado
.venv-docs
Comandos Principais (Executar da raiz do Monorepo)¶
pnpm install # Instala todas as dependências dos workspaces
pnpm build # Build de produção (Turborepo → Next.js)
pnpm lint # Validação de código com ESLint
pnpm typecheck # Verificação estrita de tipos com tsc --noEmit
pnpm test # Execução dos testes unitários com Vitest
Os três pacotes internos compartilhados são:
- packages/types — Tipos TypeScript de domínio, IDs nominais (BV_ID) e esquemas Zod compartilhados.
- packages/ai — Gateway interno de comunicação com a API do OpenRouter.
- packages/integrations — Adaptadores de integração com o ClickBank (descriptografia INS, normalização de pedidos, link builder e opportunity score).
Estrutura do Monorepo¶
mypaidtraffic/
├── apps/web/ # Aplicação Next.js (root directory da Vercel)
│ ├── src/app/ # Rotas do App Router (páginas e API route handlers)
│ └── src/components/ # Componentes do shadcn/ui e layout admin
├── packages/
│ ├── types/ # @brandvelia/types (schemas Zod e tipos)
│ ├── ai/ # @brandvelia/ai (Gateway OpenRouter)
│ └── integrations/ # @brandvelia/integrations (Adaptadores ClickBank)
├── supabase/migrations/ # Migrations SQL versionadas (aplicar com `supabase db push`)
├── docs/ # Documentação oficial (Material for MkDocs)
└── mkdocs.yml # Configuração do site de documentação
A árvore de rotas autenticadas sob apps/web/src/app/(admin)/app/ organiza-se pelos módulos da plataforma:
- /app/dashboard — Visão geral da operação e métricas do dia.
- /app/radar — Radar de oportunidades e diagnóstico de mercado com IA.
- /app/offers — Catálogo de ofertas, comissões e gerador de HopLinks.
- /app/campaigns — Campanhas de tráfego, orçamentos e fases de execução.
- /app/creatives — Criação de anúncios e copys compliant com IA.
- /app/landing-pages — Editor schema-driven de bridge e presell pages.
- /app/copilot — Assistente de IA para perguntas de negócio baseadas em SQL.
- /app/leads — CRM de contatos, eventos e conformidade LGPD/GDPR.
- /app/experiments — Testes A/B e atribuição estatística.
- /app/finance — Demonstrativo financeiro consolidado, conciliação e capital.
- /app/integrations — Webhooks, chaves de API e status de sincronização.
- /app/manual — Manual interativo do afiliado profissional embutido no app.
- /app/settings — Configurações da conta e workspaces.
Configuração e Variáveis de Ambiente¶
As configurações sensíveis ficam restritas exclusivamente ao ambiente do servidor:
SUPABASE_SERVICE_ROLE_KEY/SUPABASE_URL— Acesso privilegiado ao banco para API routes e webhooks.NEXT_PUBLIC_SUPABASE_ANON_KEY/SUPABASE_URL— Chave pública para autenticação de clientes e sessões.OPENROUTER_API_KEY— Chave do gateway de IA (somente servidor).CLICKBANK_NOTIFICATION_SECRET— Segredo de descriptografia do webhook INS 8.0.CLICKBANK_API_KEY_1— Chave única API Order Read do ClickBank (API Management);CLICKBANK_API_KEY_2é opcional para uma 2ª conta. O par antigodev:clerkretorna 401.CRON_SECRET— Token de autorização para as rotas agendadas em/api/cron/*.
Portões de Qualidade (Gates de Conclusão)¶
Antes de qualquer merge ou conclusão de tarefa:
pnpm lint && pnpm typecheck && pnpm build && pnpm test
Todos os quatro comandos devem passar sem nenhum erro.