Skip to content

rodrgds/openpost

OpenPost Logo

Latest Release Container Image CI Status License: MIT Security Policy

Self-hosted social media scheduling, without another monthly subscription.

OpenPost is a self-hosted Typefully-like social media scheduler for people who want to write, customize, and schedule posts across platforms from their own server.

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

Built with Go, SvelteKit, and SQLite. Runs as a single binary or container with no Redis, no Postgres, and no external queue.

Who is this for?

OpenPost is especially useful for:

  • Creators who want scheduling without another SaaS subscription
  • 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

Feature Snapshot

Capability Status
Self-hosted Yes
Single binary Yes
Docker support Yes
SQLite Yes
X, Mastodon, Bluesky, Threads, LinkedIn Yes
Threads composer Yes
Platform-specific variants Yes
Media library Yes
2FA / TOTP Yes
Passkeys Yes
Video posts Partial, provider-dependent
Analytics Not a launch feature

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

Security And Operations

OAuth tokens are encrypted at rest, and OpenPost supports account-level 2FA/TOTP and passkeys. In production, keep OPENPOST_JWT_SECRET and OPENPOST_ENCRYPTION_KEY unique and private, run behind HTTPS for OAuth callbacks, and back up the database, media directory, and secrets together.

Quickstart

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