Postflare
A Postiz-inspired, Cloudflare-native social media scheduler. It runs entirely on Cloudflare (one Worker, D1,
R2, Workflows and Images): no servers, no Docker, no Postgres/Redis, and it fits the Workers Free plan.
Love Postiz but don't want to run and maintain a server for it? Postflare
takes the same idea and rebuilds it for Cloudflare's serverless platform, so you can deploy your own instance in one
click. It is an independent project, not affiliated with or endorsed by Postiz.
Live demo: postflare.ferdi.app/demo (official demo instance; a sandboxed
workspace with sample data that never publishes anything, reset daily).
Screenshots
| Dashboard | Calendar |
|---|
| |
| Composer | Analytics |
| |
Features
- 36 integrations, 3 verified and the rest in beta (see Platform status): X, LinkedIn (profile +
pages), Facebook Pages, Instagram (Facebook login and Instagram login), Threads, YouTube, TikTok, TikTok for Business,
Pinterest, Reddit, Bluesky, Mastodon, Tumblr, VK, Nostr, Farcaster, Lemmy, Dribbble, Google Business Profile,
Telegram, Discord, Slack, Twitch, Kick, DEV, Hashnode, Medium, WordPress, Listmonk, MeWe, Whop, Moltbook, a generic
Webhook and (experimental, off by default) Skool.
- Composer with per-account customisation, live limits per platform, platform-specific settings (titles, privacy, boards,
subreddits, channels, playlists...), threads / first comments, previews, drafts.
- Calendar (month/week, drag to reschedule), posts list with publishing logs, retry/cancel.
- Account groups: group accounts by brand or project (e.g. one app's Instagram, TikTok and YouTube). The Accounts
page shows them by platform, by group or as one list, with search and bulk "Move to group"; the composer selects a
whole group at once, Posts and Calendar filter by group, and agents post to a group (
pf post -a group:<name>, MCP
list_accounts with group).
- Media library on R2: multipart uploads up to 5GB, alt text, import from URL. Big videos are streamed to platforms in
chunks, never loaded into memory. Storage usage is shown against the R2 Free plan's 10 GB, and a daily job applies
the media retention (Instance settings, default 30 days, 0 = keep forever): media older than that is deleted
once no draft, scheduled, failed or needs-check post uses it. Media of posts published to platforms that keep linking
to our copy (DEV, Hashnode, Medium, Listmonk, Nostr, Farcaster, Discord embeds, webhooks) is kept. Unfinished uploads
are removed after 2 days, and upload-link files never used in a post after 7 days. Media used by a draft or scheduled
post cannot be deleted.
- Reliable publishing with Cloudflare Workflows: each post sleeps until its time, publishes, polls platform
processing (videos, Instagram containers, TikTok) and then posts follow-ups. A cron re-arms anything lost and
refreshes tokens before they expire. No double posts: only failures that certainly created nothing (rate limits,
failed uploads) are retried. When the request that creates the post fails in a way that does not tell whether the
platform accepted it (network error, timeout, server error), the post goes to Needs check instead: check the
profile, then Mark as published (optionally with its URL) or Retry anyway in the post drawer
(
POST /api/posts/:id/resolve, pf posts resolve).
- Analytics: views, reach, likes, comments, shares... of published posts and daily follower counts, collected by the
cron within the Free plan budget (see Analytics).
- Playbooks: 20 built-in, versioned recipes for posts that perform (launches, threads, short-video hooks, app
feature spotlights, game clips...), plus your workspace's own. AI agents find them over MCP and the CLI, posts record
the playbook they were written with, and a ranking shows which ones beat each account's usual (see
Playbooks).
- App Store campaign links: posts about one of your iOS apps get a tracked short link (
/a/<code>) with an App
Store campaign token per post and platform; clicks are counted, and with an optional Revflare connection Apple's
installs and proceeds show per post, platform, account and playbook (see
App Store campaigns).
- Users, workspaces and roles: several people on one deployment, each workspace with its own accounts, posts and
media; built-in and custom permission-based roles, invite links (see below).
- REST API with per-workspace API keys and a built-in MCP server (
/mcp) so AI agents can schedule posts and read
analytics.
postflare CLI (npm i -g postflare, alias pf) and a Claude Code skill for terminal and
agent workflows.
- Optional public live demo mode: a sandboxed, self-resetting demo workspace (see Live demo).
- Runs on the Workers Free plan: media is streamed, never buffered, and every provider call stays within the
Free plan's CPU and subrequest limits.
- Secrets (platform tokens, app credentials) are encrypted at rest with AES-GCM.
This is the beginning of the README. Read the rest at the original. Read the full README ↗