Postiz

Schedule posts, track the performance of your content, and manage all

Web Analytics ★ 36.2k stars Medium setup AGPL-3.0

Schedule posts, track the performance of your content, and manage all your social media accounts in one place (Alternative to Buffer, Hootsuite, Sprout Social).

Key features

  • Schedule to many platforms
  • AI content assistant
  • Team collaboration
  • Analytics and insights

Pros & cons

Strengths

  • Many platforms supported
  • AI content assistance
  • Team collaboration features

Trade-offs

  • Many API keys required
  • Multi-service stack

Postiz replaces

Last reviewed Sep 13, 2026 · 814 words

The Postiz container takes 20 minutes to run. The API keys it needs take days, because every social network you want to post to requires its own developer application, and three of them require a human review before they will let you publish. That is the real cost of self-hosting a Buffer replacement, and it applies to every tool in the space, not just this one. Postiz (AGPL-3.0, 35,441 stars) is the most complete of them: scheduling to X, LinkedIn, Facebook, Instagram, Threads, TikTok, YouTube, Pinterest, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more, a calendar view, team workspaces, an AI writing assistant, and analytics pulled back from each platform.

The deployment is four containers and a lot of URLs

Postiz ships as one application image with a Postgres and a Redis beside it, and the image serves frontend and backend on a single port, 5000, through an internal proxy. The environment block is where the mistakes happen:

environment:
  MAIN_URL: "https://postiz.example.com"
  FRONTEND_URL: "https://postiz.example.com"
  NEXT_PUBLIC_BACKEND_URL: "https://postiz.example.com/api"
  JWT_SECRET: "long-random-string"
  DATABASE_URL: "postgresql://postiz:pw@postiz-postgres:5432/postiz"
  REDIS_URL: "redis://postiz-redis:6379"
  BACKEND_INTERNAL_URL: "http://localhost:3000"
  STORAGE_PROVIDER: "local"
  UPLOAD_DIRECTORY: "/uploads"
  NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY: "/uploads"

All three public URLs must be HTTPS and must match your reverse proxy exactly, because OAuth callbacks from the networks are built from them; a stray trailing slash or an http:// produces a login loop that looks like a bug in Postiz and is not. Mount /uploads on a volume or every image you attach vanishes on the next docker compose up. Memory sits around the 512 MB the catalogue lists for the app plus Postgres and Redis; a 2 GB VM is comfortable.

Which platforms are painless and which are a project

Painless, in an evening: Mastodon (create an app in your instance's settings, done), Bluesky (an app password), Discord and Telegram (a bot token), Reddit (a script app, 5 minutes), LinkedIn (an app plus a request for the posting product, usually approved in a day). Each becomes a pair of environment variables like LINKEDIN_CLIENT_ID and LINKEDIN_CLIENT_SECRET, and the provider appears in the Add Channel dialog once set.

A project: Facebook, Instagram and Threads share one Meta developer app, and publishing requires Meta's app review with screen recordings of your use case; allow a week or two and at least one rejection. X's free API tier is write-limited enough to be useless for a real account and the paid tier is about $100 a month at last check, which is more than Buffer. TikTok and YouTube need app verification for public use, though a single account in testing mode gets most people through. Write the list of networks you actually post to before you start; if it is Mastodon, Bluesky and LinkedIn, you are done in a night.

Where Postiz stands against Mixpost

Mixpost is the other serious self-hosted scheduler: a Laravel app, lighter, calmer UI, fewer networks in the free edition with the rest behind a paid Pro licence. Postiz keeps everything in the AGPL build, adds the AI assistant, a public API, a browser extension and an MCP server so an agent can queue posts, and moves faster, which cuts both ways; the changelog is long and the occasional release needs a config change. For a single person managing 3 accounts, Mixpost is the quieter life. For an agency with clients, teams and a dozen channels, Postiz is the one with the features. Both are honest replacements for Buffer and Hootsuite at the small-business tier; neither matches the enterprise listening and inbox tools, and the social category is about running your own network rather than posting to others'.

Automation fits here better than the AI assistant does

The AI writing feature needs an OpenAI key and produces what you would expect. The more useful integration is the public API and webhooks: an n8n workflow that turns a new blog post from your RSS feed into a queued post on four networks is a 15-minute build and removes the reason most people stop using a scheduler. Postiz's job is to hold the OAuth tokens and the calendar; let something else decide what gets posted.

What I'd do

Decide which networks matter. If Meta and X are on the list, budget the app-review weeks and the X subscription before installing anything, or accept posting there by hand. Run Postiz on a 2 GB VM behind a reverse proxy with the three URLs set identically, mount the uploads volume, connect Mastodon and Bluesky first to prove the flow, and wire n8n to the API for anything repetitive. Solo user with 2 or 3 accounts and no team: try Mixpost first; it is the calmer tool and you may never need more.

Similar web analytics apps