Skip to content

rodrgds/openpost

OpenPost Logo

Latest Release Container Image CI Status License: MIT Security Policy

Self-hosted Buffer/Hootsuite alternative

Schedule posts to X, Mastodon, Bluesky, Threads, and LinkedIn from your own server. One binary or container. No Redis, no Postgres, no external queue.

X (Twitter)   Mastodon   Bluesky   Threads   LinkedIn


Documentation · Quickstart · Releases

OpenPost main dashboard screenshot

Why OpenPost

OpenPost is for people who want the core social media scheduling workflow without relying on another hosted SaaS.

  • Typefully-like composer: write once, customize per platform with account-specific variants
  • Thread support: publish multi-post threads in sequence
  • Scheduling that stays queued: plan posts ahead, queued posts survive restarts
  • Workspaces: separate brands, projects, or clients into different workspaces
  • Reusable media library: upload once, reuse across posts
  • Self-hosted: your data, schedules, and tokens stay on your server

Under the hood: Built with Go, Svelte, and SQLite. Runs as a single binary or container — no Redis, no Postgres, no external queue. OAuth tokens are encrypted at rest with AES-256-GCM. Account-level 2FA and passkeys supported.

Who is this for?

OpenPost is especially useful for:

  • Indie hackers who want a cheaper or free alternative to Typefully, Buffer, or Hootsuite
  • Small teams that want control over credentials and data
  • Open-source maintainers managing multiple platform presences
  • Self-hosters who want a lightweight tool instead of a full marketing suite
  • Agencies managing separate brand workspaces

Current Limitations

  • Video support is provider-dependent — some platforms have implementation paths in the codebase, but not every provider is verified end to end
  • No full feature parity guarantee — each platform has different capabilities
  • Advanced analytics are not the current focus — engagement reporting is not a launch feature
  • Enterprise approval workflows are not the current focus — OpenPost is optimized for core scheduling workflows

Quickstart

cp backend/.env.example .env
docker compose up -d

Set fresh values for OPENPOST_JWT_SECRET and OPENPOST_ENCRYPTION_KEY before using OpenPost. Both secrets are required and must be at least 32 characters long. The first account created on an instance becomes the instance admin automatically. For the full install path, reverse proxy setup, provider OAuth guides, and operations docs, use the docs site.

Supported Platforms

  • X
  • Mastodon
  • Bluesky
  • Threads
  • LinkedIn

Documentation

Contributing

Use the development docs in the documentation site, the repo guidance in AGENTS.md, and the existing code patterns in frontend/ and backend/.

Security

Report security issues through SECURITY.md.

License

MIT

About

Lightweight self-hosted open source social media scheduler

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors