Martec.app for Devs

Template oficial para extensões do Martec.app

Aprenda a Criar Software e Empreenda

Domine tecnologia para tirar ideias do papel, construir seus próprios projetos e gerar renda fazendo o que poucos sabem: resolver problemas reais com software.

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:

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!)

  1. Vá para https://vercel.com e faça login (com GitHub)
  2. Clique em Add New…Project
  3. Importe seu repositório GitHub
  4. Na tela de configuração:
    • Framework Preset: Next.js
    • Root Directory: deixe vazio (é o root)
  5. Em Environment Variables, adicione:
    • DATABASE_URL = sua conexão do provedor (Neon/Supabase/Vercel Postgres)
    • (opcional) outras vars que sua API precise
  6. Clique Deploy

Pronto!

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:

  1. 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)
  2. Teste tudo:
    • Local + testes Jest
    • Deploy preview na Vercel
  3. 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)
  4. 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)
  5. 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! 🚀