Agorapulse

agorapulse.com

ALMOST

A weekend of work, and real gaps remain.

Social media management: schedule posts across networks, answer every comment and message from one inbox, and report on it.

Promptfree, for everyone, and the only version there is
Build me the social publishing and inbox tool I actually need instead of Agorapulse.

The constraint that shapes everything: **network APIs are the whole difficulty.** They are restricted, they change, they require app review, and some of what these tools do is available only to approved partners. Build for the networks that let you in and be explicit about the rest.

STACK
- Node 20+ with Fastify, server-rendered HTML with a little vanilla JS
- SQLite through better-sqlite3, WAL mode
- A worker process for publishing and polling
- Caddy in front

THE DATA MODEL
- accounts: id, network, handle, token_encrypted, refresh_token_encrypted, expires_at, scopes, status
- posts: id, body, media_ids_json, created_by, status
- targets: id, post_id, account_id, scheduled_for_utc, published_at, remote_id, status, error — **one row per network, because the same post succeeds on one and fails on another and a single status hides that**
- variants: per network overrides — length, mentions, first comment, alt text
- conversations and messages: id, account_id, remote_id, kind, author, body, at, assigned_to, status
- metrics: id, target_id, name, value, collected_at — sampled over time, since networks revise numbers for days

PUBLISHING RELIABLY
- The queue is a table with a lease; a crashed worker's job is reclaimed
- **Idempotency on every publish**, keyed by target id, and check the remote before retrying. Posting twice to a public account is a visible, embarrassing failure and retries are what cause it
- Per-network validation before scheduling — length, media counts, aspect ratios, mention syntax — with the errors shown at composition time and not at publish time
- Token refresh in the background with an alert well before expiry. **A silently expired token means a fortnight of posts that never went out**, which is the classic failure of homemade schedulers
- A visible queue with failures at the top and a one-button retry

THE INBOX
- Poll comments and messages where the API allows, store with the remote id, and never lose one to a redelivery
- Assignment, a status, and an internal note. Two people replying to the same comment is what an inbox exists to prevent
- Saved replies, and a keyboard-first list. Speed is the whole feature

REPORTING HONESTLY
- Collect what the API gives, on a schedule, and store each collection rather than overwriting. **Networks revise engagement numbers for days after a post**, and only a series shows that
- Report reach and engagement with the collection date attached
- Do not invent a composite score. It hides which number moved

ACCESSIBILITY AND CARE
- Alt text required on every image before scheduling. It takes ten seconds and it is the difference between a post everybody can read and one many cannot
- A preview per network, because a post that looks fine in the composer wraps badly on half of them

WHAT MATTERS MOST
Per-network target rows and idempotent publishing. The first makes failures visible; the second stops the retry doing damage.

What you lose

  • Publishing access to networks that restrict their APIs
  • A unified inbox pulling comments and messages from everywhere
  • Reports built from metrics the networks expose to partners only
  • The approvals maintained as each network changes its rules

If you would rather not build

  • The networks’ own schedulers, which are free and reliable
  • A queue table and a worker, which is the core in a day

The escape hatch

open source · no votes, no paid placement

Postiz

$0

Open-source social scheduling with a calendar and multiple accounts.

gitroomhq/postiz-appfree · open source

Mixpost

$0

Self-hosted social media management, one-time licence or free core.

inovector/mixpostfree · open source

Why this verdict

our own opinion · changed only by a person

50/100

Verdict kinda at 50: the scheduler is a weekend, the network access is a permanent maintenance job. Token expiry and double-posting are the two failures worth designing against from the start.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.

Questions about Agorapulse

answered from the record above

Is Agorapulse free?

No — the plan we track is $79 a month. Standard at $79 per user per month billed monthly, around $69 annually.

Can you replace Agorapulse by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 50 out of 100, build time a weekend. Read what you lose before you decide.

How much does Agorapulse cost?

$79 a month on Standard — $948 a year. Recorded 14 Aug 2026.

What do you lose by replacing Agorapulse?

Publishing access to networks that restrict their APIs; A unified inbox pulling comments and messages from everywhere; Reports built from metrics the networks expose to partners only; The approvals maintained as each network changes its rules. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Agorapulse?

Yes: Postiz, Mixpost. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 17 in Social media & links

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc