The social media scheduler you own: batch a month of posts, drop the monthly bill
Schedule every channel from one screen on a box you own — no per-channel monthly fee
Version history
Batch a month of posts in one sitting, then get on with running the shop — on a scheduler you own, with the Buffer/Hootsuite bill gone. One honest catch up front: X now charges for posting, and every network makes you register your own app. Both are covered below, in plain words.
The problem
Consistency is the whole game on social media, and consistency is the first thing that slips when the shop is busy. So the posting happens in bursts, then stops for three weeks, and the account goes quiet exactly when a customer looks you up. The tools that fix this — Buffer, Hootsuite, Later, Sprout — schedule your posts for you, but they charge every month and they hold your accounts and your content. Buffer's paid plans run roughly EUR 5-10 per channel per month; Hootsuite lands near EUR 99/month; the others climb from there. For a business posting to four or five channels, that is a EUR 20-100/month line item for what is, underneath, a calendar and a clock. The same job runs on a program you own for the price of a small server.
The architecture
▼
[ Postiz or Mixpost (self-hosted, Docker) — the scheduler ]
│ calendar view, per-channel preview, the queue
│ optional: AI drafts a caption (needs a key — off by default)
▼
[ Your own developer app, per network ] ← the one-time hurdle
├─ Facebook Page + Instagram (one Meta app)
├─ LinkedIn, Pinterest, Google Business
├─ Bluesky, Mastodon, Threads (free, easy)
└─ X — paid API tier (the expensive exception)
Posts publish on schedule. The numbers come back to one dashboard.
One box, one container plus a database. The scheduler owns the calendar and the queue; each network owns the actual publishing, reached through a developer app you register once. Keeping those separate is the design decision — when a network changes its rules (they all do), you re-do one connection, not the whole setup.
Tool choices — and why
Postiz (AGPL-3.0, 30.7k stars, v2.21.8 shipped 22/05/2026, commits within days) is the default pick. It covers 30+ networks, gives you a proper calendar, per-channel previews, team workspaces, and a built-in AI caption drafter you can leave switched off. It runs as a Docker container (Node/TypeScript) behind your own domain. One licence note in plain terms: AGPL is fine for running it inside your own business. It only bites if you turn around and sell it to others as a hosted service — then you owe them your source. Most shops never hit that line.
Mixpost Lite (MIT, ~3.4k stars, community edition, last release early 2026) is the calmer alternative. It is PHP/Laravel, covers 10+ networks, and ships under the more permissive MIT licence with no AGPL string attached. It moves slower than Postiz and covers fewer platforms, but if your hosting already runs PHP, or the MIT licence matters to you, it is the safer-feeling choice. Fewer networks is often fine — most small businesses only post to three or four.
The AI caption button is optional, and I would leave it off. Postiz's caption generator calls an OpenAI-compatible model. You can point it at a paid key, or at a local model you run yourself if you want it free and private, but a machine-written caption reads like every other machine-written caption. Use it for a rough first draft at most, then rewrite it so it sounds like you. Writing your own costs nothing and performs better.
Monthly cost. Software: EUR 0, both tools. Hosting: one small VPS at ~EUR 5-12/month runs the whole thing. Posting to Facebook, Instagram, LinkedIn, Bluesky, Mastodon, Threads, Pinterest and Google Business is free. X is the one real recurring cost, and only if you post to X — see the pitfalls. So for most businesses the honest number is EUR 5-12/month, versus EUR 20-100/month for the SaaS it replaces.
Setup outline
1. Deploy the scheduler with its official Docker Compose file, behind HTTPS on a subdomain — social.yourbusiness.example. Set the handful of required environment values (the public URL, a generated secret).
2. Register a developer app for each network you actually use. This is the real work, not the deploy. Facebook Page and Instagram share one Meta for Developers app; LinkedIn, Pinterest and Google Business each need their own. Copy each app's ID and secret into the scheduler's settings.
3. Connect the easy ones first. Facebook Page, LinkedIn, Bluesky and Mastodon are the least painful. Get one test post to publish end-to-end before you touch the next network.
4. Build a weekly batch: sit down once, write 5-10 posts, drop them on the calendar, and check the preview per channel — image sizes and character limits differ between networks.
5. Pick a cadence you can hold. Three good posts a week beats seven rushed ones, and the scheduler makes the sustainable rhythm easy.
6. Turn on the built-in analytics so you can see what actually landed, and quietly drop the formats that don't.
7. Back it up. This is one more box holding your content and your access tokens — fold it into the 3-2-1 backup blueprint in this library.
Pitfalls — the real ones
The developer-app hurdle is the whole difficulty. Deploying the tool takes an afternoon; connecting the networks is where non-technical owners stall. You register your own app on each platform, and Meta's review for Instagram and Facebook posting can take several days. Do one network fully — deploy, connect, publish a real test post — before you start the second. Half-connecting five at once is how the project dies on the shelf.
X is no longer free. Since early 2026, posting to X through any third-party tool needs a paid X API tier — roughly USD 100+/month at the Basic level (verify the current price, it moves). If X is not central to you, skip it and post to the free networks. Do not let one expensive channel decide whether the whole setup is worth it.
Instagram will not accept a plain personal account. You need a Business or Creator account linked to a Facebook Page, and its image and video specs are strict. Sort this out before you schedule your first Instagram post, not after it silently fails.
Tokens expire quietly. A channel that "just stopped posting" is almost always an expired access token, not a broken tool. Check your connections weekly, or point the downtime-alarm blueprint at the scheduler so the silence raises an alarm.
A scheduler is not a strategy. A tool that posts for you only makes bad posting faster. Decide what you are posting and why first — the tool is the clock, not the content.
AGPL matters only if you resell. Running Postiz for your own business is fully fine. If you ever offer it as a paid service to other people, AGPL obliges you to publish your source. If that scenario is real for you, take Mixpost's MIT licence instead.
Verified repos
Postiz — AGPL-3.0, 30.7k stars, active (v2.21.8, May 2026)
Mixpost Lite — MIT, ~3.4k stars, community edition (2026)
Get the next blueprint as it publishes — free, practical, verified tooling only.
Subscribe · Want this audited or extended for your business? DM @RXed_EU
Get this blueprint tailored to your business — free
Tell us what you run and where. We research your sector's specifics — rules, tools, customer habits — and send you a version of this blueprint rebuilt for your situation, usually within 24 hours.