README.md

August 30, 2026 · View on GitHub

OpenPost

Publish clearly.
Create, adapt, schedule, and track social content from one workspace.

Latest release Build status GitHub stars Release downloads

Start 14-day trial · Self-host · Docs · Discord

OpenPost composer with channel-specific versions, media, scheduling, and publishing controls

Turn a launch, update, or lesson into destination-specific content, schedule it, and track what shipped. OpenPost shows each provider's limits and publishing state.

OpenPost monthly publishing calendar with published and scheduled posts
Calendar
OpenPost analytics with account growth, content results, and follower trend
Analytics

OpenPost Image Editor with a five-page carousel, layers, and text controls
OpenPost Image Editor

OpenPost Video Editor with a populated preview, media pool, inspector, and multitrack timeline
OpenPost Video Editor

What you get

  • Channel-specific versions. Adapt text, media, format, and timing for each account while keeping one source publication.
  • A durable queue. Scheduled work stays in the database, with clear queued, published, failed, and retrying states.
  • One workspace. Publications, media, calendar, analytics, and comments stay together.
  • Built-in creative tools. Edit images, cut videos, make memes, and save the result to the Media library.
  • Consistent access. The web app, HTTP API, CLI, and MCP use the same permissions within each workspace.

OpenPost focuses on publishing. It does not include a CRM, ad manager, or social listening. Hosted manages the service for you. Self-hosting leaves the server, backups, and provider setup to you.

Get started

Use the Hosted service if you want OpenPost managed for you.

To run it yourself:

git clone https://github.com/getopenpost/openpost.git
cd openpost
cp .env.example .env
# Set OPENPOST_APP_URL and replace the two example secrets in .env.
docker compose up -d

Open http://localhost:8080, create the first account, and connect a social account. The default setup uses one container, SQLite, local media, and database-backed jobs. The current amd64 image is published at ghcr.io/getopenpost/openpost.

Read the self-hosting quickstart · Installation reference · Hosted and self-hosted boundary

Providers

OpenPost has adapters for X, Mastodon, Bluesky, LinkedIn profiles and company pages, Threads, Facebook Pages, Instagram, TikTok, YouTube, and Discord webhooks.

An adapter means the integration exists. It does not mean it is ready on Hosted. Some need app review, a specific account type, or extra scopes. OpenPost shows that state before you publish.

The checked-in public certification manifest contains 0 exact provider-format claims.

No Hosted service provider-format certification claim is current. Implementation descriptions do not assert Hosted service availability.

Provider readiness · Platform limits

Automate it

API, CLI, and MCP tokens use the same workspace permissions as the web app. They never expose social account credentials.

CLI guide · MCP guide · API reference

Develop OpenPost

OpenPost uses Go, Svelte 5, SvelteKit, Bun, and Devenv.

direnv allow
devenv shell -- setup
bun run verify

Read CONTRIBUTING.md and the development docs before opening a pull request.

Help OpenPost grow

If OpenPost is useful to you, star the repository. It helps other self-hosters find the project and tells us which work is worth continuing.

Star history

License and security

OpenPost is licensed under AGPL-3.0-only. Report vulnerabilities privately through the security policy.