Martec Template API
O template oficial para desenvolvedores que querem criar, publicar e monetizar extensões dentro do ecossistema Martec.app
O Martec.app é um SaaS B2B de automação de marketing com IA, criado para empresas que precisam crescer com mais previsibilidade, integração e inteligência operacional.
Mais do que uma plataforma, o Martec.app está evoluindo para um ecossistema aberto de extensões, onde desenvolvedores parceiros podem construir soluções próprias e transformar conhecimento técnico em produto e receita.
Dentro do Marketplace Martec, parceiros como você poderão criar e publicar:
- APIs complementares
- Workers customizados
- Plugins leves
- Landing pages personalizadas
- Integrações específicas por nicho
- Recursos adicionais para casos de uso reais de clientes
Essas extensões podem ser publicadas como:
- gratuitas para aquisição de leads e autoridade
- freemium para atrair usuários e converter depois
- pagas para gerar receita recorrente
- com revenue share, permitindo que você ganhe uma porcentagem sobre as vendas dentro do ecossistema
Em outras palavras: você não desenvolve apenas uma feature.
Você cria um ativo digital vendável, distribuído dentro de um ecossistema com potencial de escala.
O Martec Marketplace conecta sua solução a empresas que precisam exatamente do que você construiu.
Este template foi criado para acelerar seu caminho desde a ideia até a publicação.
Com ele, você consegue:
- começar rápido
- desenvolver localmente com segurança
- testar com confiança
- publicar na Vercel sem gerenciar servidores
- preparar sua solução para virar um módulo real dentro do Marketplace Martec
O que você ganha como parceiro desenvolvedor
Ao entrar nesse ecossistema, você passa a ter a oportunidade de:
- construir produtos reaproveitáveis em vez de fazer apenas projetos sob demanda
- monetizar soluções técnicas que antes ficariam restritas a um cliente
- ganhar visibilidade dentro de um Marketplace voltado a marketing, automação e crescimento
- atuar em um modelo mais escalável, com possibilidade de receita recorrente
- desenvolver em cima de contratos e padrões já definidos, sem depender de acesso ao core sensível da plataforma
Você foca em criar valor.
A base técnica para isso já está preparada.
Vercel-first: feito para velocidade e escala
Este template é Vercel-first, pensado para o modelo moderno de desenvolvimento e deploy:
- deploy serverless rápido
- ambiente de preview por branch
- SSL grátis
- distribuição global
- experiência simples para publicar e iterar
Para desenvolvimento local, você usa PostgreSQL via Docker, com uma estrutura próxima da produção, garantindo consistência desde os primeiros testes.
Tudo isso com:
- migrations seguras
- testes de integração
- tipagem forte
- estrutura limpa
- zero necessidade de administrar servidor em produção
Tecnologias principais:
- Next.js 16.1.6 (Pages Router – compatível com API Routes clássicas)
- React 19.2.0
- TypeScript 5.6.2 (strict mode)
- PostgreSQL (local via Docker + managed em produção: Neon, Supabase ou Vercel Postgres)
- node-pg-migrate para migrations
- Jest + ts-jest para testes
Bancos recomendados em produção:
- Neon
- Supabase
- Vercel Postgres
Objetivo do template
Permitir que você crie uma extensão funcional em poucas horas, valide localmente, publique com rapidez e transforme sua entrega em uma solução pronta para distribuição no ecossistema Martec.
Por que usar este template?
1. Você acelera o desenvolvimento
Sem perder horas montando setup inicial, estrutura de pastas, migrations, conexão com banco e organização de testes.
2. Você constrói com segurança
Com acesso a tipos e contratos do Martec por meio de pacotes privados como:
@martec/core-types@martec/core-utils
Isso permite integração consistente sem expor código sensível do core da plataforma.
3. Você publica mais rápido
Com deploy automatizado na Vercel, previews por branch e fluxo simples para produção.
4. Você desenvolve com contexto real
Banco local, testes de integração e estrutura próxima do ambiente produtivo.
5. Você já nasce preparado para o Marketplace
Sua extensão pode seguir um caminho mais simples até submissão, publicação e monetização.
Para quem este template é ideal
Este template é ideal para desenvolvedores que querem:
- criar integrações para marketing e automação
- transformar soluções sob medida em produtos reutilizáveis
- entrar em um ecossistema com potencial comercial
- desenvolver módulos para empresas, agências e nichos específicos
- sair do modelo de serviço puramente operacional e começar a construir ativos escaláveis
Se você já pensou em vender integrações, automações, mini-SaaS, plugins ou APIs especializadas, este é um caminho prático para começar.
Passo a Passo Completo: Do Zero ao Deploy
Pré-requisitos
- Conta GitHub
- Conta Vercel (gratuita): https://vercel.com/signup
- Docker instalado e rodando (Docker Desktop no Windows/Mac ou Docker Engine no Linux)
- Node.js ≥ 20.11 (recomendado: 22 LTS) – usaremos NVM para gerenciar
1. Instalar NVM (gerenciador de versões do Node)
No terminal (Ubuntu, macOS ou Git Bash no Windows):
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
Atenção: Feche e reabra o terminal. Depois carregue:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Valide:
nvm --version
2. Instalar e usar Node 22
Bash
nvm install 22
nvm use 22
node -v # deve mostrar ~v22.x
npm -v # deve mostrar ≥10
Fixar como default (opcional):
Bash
nvm alias default 22
3. Clonar e instalar o template
Bash
git clone https://github.com/SEU-USUARIO/martec-template-api.git
cd martec-template-api
npm ci # instala exatamente as versões do package-lock (mais seguro que npm install)
4. Configurar variáveis de ambiente
Bash
cp .env.example .env.development.local
Edite .env.development.local (use um editor como VS Code):
env
# Para desenvolvimento local (Docker) POSTGRES_HOST=localhost POSTGRES_PORT=5433 POSTGRES_USER=martec POSTGRES_PASSWORD=password POSTGRES_DB=martec_dev # Priorize isso em produção (Vercel) # DATABASE_URL=postgresql://user:pass@host:5432/dbname?sslmode=require
Dica: Em produção, use apenas DATABASE_URL (fornecido pelo Neon/Supabase/Vercel Postgres). Nunca misture as vars separadas em prod.
5. Subir PostgreSQL local
Bash
npm run services:up
Valide:
Bash
docker ps # deve mostrar postgres rodando na porta 5433
6. Aplicar migrations iniciais
O template já vem com uma migration de exemplo (cria tabela users).
Bash
npm run migration:up
Criar nova migration quando precisar:
Bash
npm run migration:create nome-da-sua-migration # cria arquivo .sql em infra/migrations
Edite o .sql gerado e rode novamente npm run migration:up.
7. Rodar a API localmente
Bash
npm run dev
Acesse no navegador:
- http://localhost:3000/api/v1/status → Mostra saúde do banco
- http://localhost:3000/api/v1/migrations (GET) → Lista migrations pendentes
Teste POST via terminal:
Bash
curl -X POST http://localhost:3000/api/v1/migrations
8. Rodar testes de integração
Primeiro garanta banco up e migrado:
Bash
npm run services:up
npm run migration:up
npm test
Ou modo watch (reativo a mudanças):
Bash
npm run test:watch
9. Deploy na Vercel (o mais importante!)
- Vá para https://vercel.com e faça login (com GitHub)
- Clique em Add New… → Project
- Importe seu repositório GitHub
- Na tela de configuração:
- Framework Preset: Next.js
- Root Directory: deixe vazio (é o root)
- Em Environment Variables, adicione:
- DATABASE_URL = sua conexão do provedor (Neon/Supabase/Vercel Postgres)
- (opcional) outras vars que sua API precise
- Clique Deploy
Pronto!
- Cada git push gera novo deploy automático
- Branches criam previews (ex: feature/nova-api → https://martec-template-api-feature-nova-api.vercel.app)
- Domínio custom: adicione depois em Settings → Domains
Dica de banco recomendado:
- Neon ou Supabase (serverless Postgres): crie conta grátis, copie DATABASE_URL e cole na Vercel.
- Vercel Postgres também funciona nativamente.
10. Como virar parceiro e publicar no Marketplace Martec.app
Após desenvolver sua API custom:
- Implemente sua lógica:
- Crie novos endpoints em pages/api/v1/seu-endpoint/index.ts
- Use tipos do core (quando liberado): npm install @martec/core-types –registry=https://npm.pkg.github.com
- Você receberá um token de leitura restrito via email/dashboard Martec
- Integre com API principal (ex: chame endpoints do martec-api para auth/tenants via fetch)
- Teste tudo:
- Local + testes Jest
- Deploy preview na Vercel
- Submeta para revisão:
- Acesse o dashboard de parceiros Martec.app (link será enviado quando aprovado)
- Ou envie PR para o repositório de marketplace (se aplicável)
- Forneça: nome da extensão, descrição, endpoints, pricing (free/freemium/paid)
- Processo:
- Revisão de compatibilidade, segurança e compliance (1–5 dias úteis)
- Aprovado → publicado no Marketplace
- Revenue share: configurado automaticamente (ex: 70% para você, 30% plataforma)
- Monetização:
- Clientes instalam sua extensão via dashboard Martec
- Pagamentos via Stripe Connect (ou similar) → você recebe direto
Parabéns! Você agora é um parceiro oficial.
Solução de Problemas Comuns
- nvm não encontrado → Rode os comandos de load do Passo 1 novamente + source ~/.bashrc
- Erro de versão Node → nvm use 22 e npm ci
- Docker permission denied → sudo usermod -aG docker $USER → logout/login
- DATABASE_URL não encontrado em prod → Adicione na Vercel dashboard (Settings → Environment Variables)
- Migrations falham → Verifique DATABASE_URL no .env ou Vercel
- Jest erro ESM → Limpe cache: npx jest –clearCache
Scripts Úteis (do package.json)
- npm run dev → Sobe DB + API local
- npm run services:up / down / reset-db → Gerencia Docker Postgres
- npm run migration:create <nome> / up / up:prod
- npm test / test:watch
- npm run lint / lint:fix → Formatação Prettier
Estrutura do Projeto
text
martec-template-api/
├── infra/ # Infra local e DB
│ ├── compose.yaml
│ ├── database.ts # Pool de conexão + query helper
│ └── migrations/ # Suas .sql aqui
├── pages/
│ └── api/
│ └── v1/
│ ├── status/ # Endpoint de saúde
│ └── migrations/ # Controla migrations via API
├── tests/
│ └── integration/...
├── .env.example
├── .nvmrc # Node 22
├── jest.config.ts
├── next.config.mjs
├── package.json
├── tsconfig.json
└── README.md # Você está aqui :)
Boas práticas no código:
- Use DATABASE_URL sempre que possível
- Evite estado global em serverless
- Valide inputs com tipos do core
- Retorne HTTP status corretos (200, 400, 401, 500)
Dúvidas? Abra issue no repo ou entre em contato com a equipe Martec. Boa construção e boas vendas no Marketplace! 🚀