Skip to content

Latest commit

 

History

1,252 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

OpenPost

Write once. Shape every channel. Know what shipped.
One social publishing workspace for founders, creators, teams, and agencies.

Latest release Build status GitHub stars Release downloads

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

OpenPost composer with six social destinations, a command-review meme, and scheduling and publishing controls

You already have the material. A launch. An update. Something you learned the hard way. OpenPost takes that and makes it fit each channel. It shows you what each destination allows before you publish, lets you schedule it, and then shows you what actually happened. No hidden rules.

OpenPost monthly publishing calendar with published and scheduled posts
Plan the month
Drafts, scheduled posts, and published work stay in one calendar.
OpenPost analytics with account growth, content results, and follower trend
See what worked
Track real provider metrics without mixing views, impressions, and reach.
OpenPost media library with reusable branded assets
Reuse your brand
Keep images, videos, designs, and their usage in the shared library.
OpenPost connected social channels and available provider connections
Keep provider truth visible
Connect each channel once, then see its real setup and publishing state.

What you get

  • A composer that respects each channel. Write once, then fix the text, media, and timing for each account. It will not let you push a 280-character thread to LinkedIn and pretend it worked.
  • A queue that remembers. Everything scheduled lives in the database. Restart the server and it is still there. You see if it is queued, published, failed, or waiting to retry.
  • One place for your work. Publications, media, calendar, analytics, comments — all in the same workspace. Not five tabs pretending to be one product.
  • Tools where you need them. Edit an image. Cut a short video. Make a meme. Write alt text. It saves back to your library. No need to open another app.
  • Same app everywhere. Web, Android, API, CLI, MCP. Same words, same permissions, same state. I built it that way because different behavior on different surfaces breaks trust.

You will not find a CRM, ad manager, or social listening here. There are better tools for that. I run the hosted version for you. Self-hosting is there if you want to own the box, the backups, and the provider setup yourself.

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 talks to X, Mastodon, Bluesky, LinkedIn profiles and company pages, Threads, Facebook Pages, Instagram, TikTok, YouTube, and Discord webhooks.

An adapter means I built it, not that it is ready on the hosted service. Some need app review. Some need the right account type or scopes. Those checks stay separate so you see the real 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

Give a token to the API, CLI, or MCP server and it works like you do. Same workspace. Same permissions. You can automate a post without handing over your social logins. I use one permission model everywhere. Separate models are where things quietly break.

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.

About

Create, adapt, schedule, and publish content across platforms.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

26 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages