The 9am post goes out at 9am. Here is the mechanism.
Month, week, day and agenda views with drag-to-reschedule, queues and categories, evergreen recycling, and a publish pipeline built to a 99.5% success target, aiming to put a post live within 60 seconds of its slot.
- 14-day trial, no card
- Included on every plan
Why it works this way
Most schedulers hold your schedule in the memory of a running program. If that program restarts — a deploy, a crash, a server that ran out of memory at 3am — the schedule it was holding is gone. Nothing errors, nothing alerts, and you find out when the client asks.
Gongong AI keeps the schedule in the database and asks it every thirty seconds what is due. When a post is claimed for publishing, the instruction to publish it is written in the same transaction as the claim, so there is no instant where we have ticked a post off as handled but not yet told anything to send it. The message queue can be down at that moment and the post is still safely queued, waiting for the relay. Several machines can work the same due list without colliding, because each one takes the rows the others are not holding and steps over the rest — which is what stops a post being picked up twice and posted twice to a real audience.
Then there is a second pass on a longer clock. The queue’s lock on a post lasts eight minutes; the recovery pass sweeps for anything still stuck after ten. Ten is longer than eight on purpose — the recovery pass must never grab a post a still-alive machine is in the middle of publishing.
When a network refuses, the failure is classified rather than retried blindly. An expired token pauses the account and asks you to reconnect, because replaying a dead token three times burns the platform’s rate budget. A rate limit reschedules to the platform’s own reset time rather than backing off into the same closed window. A transient error retries three times with jittered backoff — the one class where retrying is the right answer. A rejection stops, shows a human-readable reason on the post card and fires a webhook. And when the platform says it already has the post, that counts as success and the IDs are reconciled, because retrying would post a second copy to real followers.
Two separate anti-duplicate keys make that last one work. One is stable per post and account and is handed to the platform, so the platform de-duplicates if our request times out ambiguously. The other changes on every attempt and is ours, so our own queue can tell attempt two from attempt one. Putting the attempt number in the platform-facing key would cause exactly the double-post it exists to prevent.
The 9am post goes out at 9am. Here is the mechanism.
Month, week, day and agenda views with drag-to-reschedule, queues and categories, evergreen recycling, and a publish pipeline built to a 99.5% success target, aiming to put a post live within 60 seconds of its slot.
- The schedule is a database row, not a timer in a running program — a deploy or a crash costs one 30-second sweep, never a post
- If the machine publishing your post dies, a recovery pass on a ten-minute clock — deliberately longer than the queue’s eight-minute lock — picks it up
- Five named failure classes, each with a different response: an expired token pauses the account instead of burning three retries
Drag to reschedule. Colour is the platform, status is the label.
What you get
Inside calendar & publishing
Four views, one dataset
Month, week, day and agenda. Colour is the platform, border style is the status, and the filter bar covers account, platform, status, label and author.
Queues and categories
Content buckets with rotation rules — education Monday, promo Tuesday, fun Friday — so “next free slot” means something.
Evergreen recycling
Requeue a winner after N days, optionally with an AI variation that is written back to the post — compare-and-set on the body and its version, with the platform-facing keys re-derived so the network sees a new post rather than a duplicate. If the variation fails, the credits come back.
Bulk operations
CSV import, bulk schedule, bulk reschedule, duplicate a whole week.
Link attribution
Stamp utm_source, utm_medium, utm_campaign, utm_term and utm_content onto the links in a post, with a sensible per-network default for the source. The composer previews the exact URL that will publish, because the preview and the publisher read the same table.
Platform-native extras
First comment automation for Instagram, LinkedIn and YouTube; thread auto-split with sentence-boundary breaks and numbering for X, Threads and Bluesky.
Keep going
Pairs well with
Repurposing engine
Drop a YouTube link, a blog post, a PDF or an audio file. One run mines the distinct arguments inside it and expands each one into platform drafts, carousel copy, a short-video script and a Pin — all four delivered, each with one click through to the builder that finishes it.
Read moreAI video studio
Turn a script into a vertical video with AI voiceover, AI-generated scene visuals with motion, and animated captions — then edit it scene by scene and schedule it without leaving the workspace.
Read moreStrategy copilot
An onboarding interview turns into a 30-day plan, drafted onto your calendar and pointed at your accounts. Every draft gets a pre-publish score with reasons. A weekly job feeds what your own posts actually did into next week’s drafts.
Read more
Try calendar & publishing on your own content
Fourteen days free, no credit card, and the public API is switched on from the first minute.
No credit card · Cancel anytime · Every plan includes the API and the MCP server