Crie, aprove, agende e publique em todas as suas redes a partir de um só lugar.
Plataforma open source de publicação multicanal para equipes, automações e agentes de IA.
Um compositor, um calendário e uma infraestrutura confiável — da ideia ao post publicado.
Início rápido · Recursos · Integrações · Arquitetura · Documentação · Contribuir
▶ A demonstração inicia automaticamente e reinicia em loop. Clique para abrir o MP4.
O manypost reúne o ciclo de conteúdo social em uma única plataforma: conexão de canais, criação por rede, calendário, aprovação externa, publicação assíncrona, recuperação de falhas e automação por API ou MCP.
Ele foi desenhado para dois usos que compartilham a mesma regra de negócio:
- equipes e agências trabalham pela interface web, com previews por canal, calendário, kanban, threads e aprovação de cliente sem login;
- desenvolvedores e agentes operam pela API REST pública ou pelo servidor MCP, com escopos, idempotência, rate limit e auditoria.
Important
Community e Cloud usam exatamente este monorepo AGPL-3.0. Não existe edição enterprise fechada nem recurso mantido em outro repositório.
|
Compositor multicanal Texto global ou por rede, mídia, threads, previews e validações específicas de cada destino. |
Calendário e kanban Visualizações por dia, semana, mês ou lista, com drag-and-drop e estados de publicação. |
Aprovação sem login Compartilhe um link temporário para o cliente revisar e aprovar o conteúdo. |
|
Publicação durável pg-boss, retry com backoff, rate limit, fencing, idempotência e recuperação de jobs interrompidos. |
IA dentro do fluxo Legendas, reescrita, hashtags, alt text, rascunhos multicanal e sugestões de horário com orçamento controlado. |
REST + MCP nativos OpenAPI 3.1, API keys com escopos, webhooks assinados e ferramentas para agentes de IA. |
- tokens de canais e segredos de webhook cifrados em repouso com AES-256-GCM;
- isolamento multi-tenant por organização em toda operação;
- proteção anti-SSRF com validação e pin de DNS nos fetches externos;
- estados de publicação condicionais para impedir concorrência e jobs obsoletos;
- resultado externo incerto vai para
NEEDS_REVIEW, nunca para retry cego; - logs estruturados com request/correlation IDs, sem tokens ou conteúdo sensível.
O ambiente local sobe API, worker, PostgreSQL e Redis e disponibiliza o explorador OpenAPI em http://localhost:3000/docs.
git clone https://github.com/manypost/manypost-app.git
cd manypost-app
cp .env.example .env
# Preencha no .env as chaves de teste do Clerk indicadas no arquivo.
docker compose up --buildPara conectar o provider de teste e acompanhar uma publicação completa, siga o guia TESTING.md.
Pré-requisitos: Bun 1.3.14, PostgreSQL, Redis e credenciais de teste do Clerk.
bun install --frozen-lockfile
cp .env.example .env
# Configure as variáveis obrigatórias descritas no arquivo.
docker compose up postgres redis -d
PORT=3100 bun run dev:all- web: http://localhost:3000
- API: http://localhost:3100
- documentação OpenAPI: http://localhost:3100/docs
O guia de desenvolvimento cobre setup, testes, debug e E2E: docs/operations/development.md.
O registry atual possui 16 adapters reais. A disponibilidade na interface depende das credenciais da instalação e dos gates externos de cada plataforma.
| Categoria | Destinos |
|---|---|
| Redes sociais | Instagram, Facebook Pages, Threads, TikTok, X, LinkedIn, Bluesky e Mastodon |
| Vídeo e artigos | YouTube e Dev.to |
| Comunidades | Telegram e Discord, por OAuth ou webhook |
| Live chat | Twitch e Kick |
Cada adapter declara limites de texto e mídia, settings próprios, classificação de erro e suporte a replies/threads. Veja como configurar credenciais em INTEGRATIONS_SETUP.md e como adicionar um provider no guia de integrações.
Todas as superfícies chegam aos mesmos casos de uso. HTTP adapta transporte, repositories adaptam persistência e providers adaptam cada rede social.
Abra em tamanho completo · ver código-fonte · gerado com mingrammer/diagrams
| Módulo | Responsabilidade |
|---|---|
apps/web |
Next.js App Router, interface e cliente OpenAPI gerado |
apps/api |
Hono, auth, REST interna/pública, MCP, webhooks e OpenAPI |
apps/worker |
entrada dedicada do runtime pg-boss |
packages/core |
domínio, casos de uso e ports |
packages/db |
Drizzle, migrations e repositories PostgreSQL |
packages/providers |
adapters das redes sociais |
packages/queue |
jobs, Redis, rate limit, idempotência e realtime |
packages/contracts |
tipos, schemas, enums e eventos compartilhados |
Comece pela arquitetura vigente e pelo mapa do repositório. As fronteiras são verificadas automaticamente pelo CI.
A API pública usa chaves mp_live_, escopos por credencial,
Idempotency-Key nas mutações e problem+json com códigos estáveis. O contrato
OpenAPI 3.1 fica disponível em /openapi.json e /docs de cada instância.
O servidor MCP expõe operações de consulta e agendamento sobre os mesmos casos
de uso da API. A coleção completa para desenvolvimento e integração está em
postman/.
O binário e o banco de código são os mesmos nos dois modos. A diferença é operacional, configurada por ambiente:
IS_SELF_HOSTED=true
HIDE_BILLING=true| Community | Cloud gerenciado | |
|---|---|---|
| Código | este monorepo | este monorepo |
| Licença | AGPL-3.0 | AGPL-3.0 |
| Limites de plano | desativados | aplicados por PlanPolicy |
| Billing | rotas não montadas | Stripe |
| Credenciais das redes | fornecidas por você | operadas pelo serviço |
| Infraestrutura | sua | gerenciada |
Sem configuração Stripe, a instalação self-hosted não cobra nem aplica limites comerciais. A decisão e suas implicações estão documentadas em DECISIONS.md e PLANS.md.
Bun é obrigatório; o projeto não usa npm, pnpm ou Yarn.
bun run check # typechecks, testes, fronteiras, IA e identidade
bun run db:check # schema e migrations Drizzle
bun run build:web # build Next.js de produção
bun run spec:validate # OpenSpec estritoFeatures e mudanças de comportamento seguem o fluxo OpenSpec: proposta, requisitos, design quando necessário, tasks test-first, validação e archive depois da implementação.
| Quero… | Começar por |
|---|---|
| testar sem conhecer a codebase | TESTING.md |
| instalar e desenvolver | guia de desenvolvimento |
| entender componentes e fluxos | arquitetura |
| integrar via REST ou MCP | spec de API/MCP e Postman |
| configurar uma rede | guia de integrações |
| conhecer o estado do projeto | STATUS.md |
| entender decisões técnicas | DECISIONS.md |
| contribuir | CONTRIBUTING.md e AGENTS.md |
O índice completo está em docs/README.md.
Contribuições de código, documentação, traduções e novos providers são bem-vindas. Antes de começar, leia o guia de contribuição, o código de conduta e as regras operacionais em AGENTS.md.
O manypost é derivado em conceito e arquitetura do Postiz, também AGPL-3.0. A stack é própria, mas contratos e decisões reconhecidamente derivados são preservados e declarados em ATTRIBUTION.md e POSTIZ_ANALYSIS.md.
Distribuído sob a GNU Affero General Public License v3.0. Avisos de terceiros estão em NOTICE.
Topo · Documentação · Status · Changelog · AGPL-3.0