A queue, an editor and a worker that posts at the right minute is an evening's work for Bluesky, whose API takes an app password. The weekend goes on the rest: LinkedIn needs a developer app with the posting scope and tokens that die after 60 days, Threads needs a Meta app, Instagram posting needs a professional account and a public media URL, and TikTok limits unaudited apps to private posts. Hypefury's other draws, Tweetshot images, Autoplugs and Instagram AutoDMs, add more integration work on top of that.
Before you buildHypefury has no free plan, only a 7-day trial. If you post to a single network, the $6 Flexible plan is cheaper than running this at all.
Build me a personal post scheduler to replace Hypefury. Requirements: - Node.js 22 + TypeScript: a Fastify server with server-rendered pages (`@fastify/view` + Nunjucks) and a little vanilla JS. `npm start` serves http://localhost:4880: composer, queue and log, behind one password. - Storage: better-sqlite3 in ./data/posts.db: posts (text, media paths, networks, status), queue slots (weekday, time, networks), a publish log with the URL or error per network, and connected accounts with tokens encrypted by AES-256-GCM using a key from .env. - Networks behind one Publisher interface, in this order: Bluesky (`@atproto/api`, app password, 300 graphemes, images via uploadBlob), LinkedIn (OAuth 2.0 authorization code flow, `w_member_social`, text and one image, 3000 characters) and Threads (Meta Threads API for your own account in development mode, 500 characters). - Composer: one text box with a counter per network, per-network overrides, and a long post that becomes a numbered thread on Bluesky and Threads (reply chain). Preview each network's text before saving. - Queue: a "next free slot" button, drag to reorder, and a worker (`node-cron`, every minute) that publishes due posts in UTC, retries a failure three times with backoff and flags an expired token on the home page. LinkedIn tokens last 60 days, so show a reconnect banner a week before. - Autoplug: an optional follow-up reply or comment with a link, posted a set number of minutes after the main post. - Single user. No accounts, no telemetry, local-first. Outbound calls go only to the networks. - Out of scope: X, Instagram, TikTok, analytics, AI writing, a phone app, teams or approvals. - README: creating the LinkedIn and Meta developer apps, why Instagram and TikTok are left out (Instagram wants a professional account and a public media URL; TikTok keeps unaudited apps to private posts), and keeping the worker alive with pm2 or systemd.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Hypefury.
Add Mastodon to the post scheduler in this folder. Requirements: - A Mastodon publisher using `masto`, with MASTODON_URL and MASTODON_TOKEN in .env (a token from Preferences > Development with write:statuses and write:media). - Respect the instance's character limit read from /api/v2/instance, and upload images with alt text. - Threads are posted as a reply chain with the same spacing rules as Bluesky. - Show the network in the composer next to the others, with its own counter. - Update the README with the token steps.
Add evergreen recycling to the post scheduler in this folder. Requirements: - A checkbox on a published post: "recycle", with an interval in days (30, 60 or 90). - When the interval passes, the worker queues a copy in the next free slot, unless that network already has a post queued within the last two hours. - Stop a recycled post after a set number of runs, or when I untick it. - Show recycled posts with a badge in the queue and log. - Update the README.
Add basic metrics to the post scheduler in this folder. Requirements: - A nightly job that calls Bluesky's `app.bsky.feed.getPosts` for posts from the last 30 days and stores likes, reposts, replies and quotes per day in SQLite. - A page with a table sorted by engagement and a sparkline per post. - Only Bluesky for now; leave a MetricsProvider interface for LinkedIn and Threads. - Keep requests under 25 URIs per call and back off on HTTP 429. - Update the README.
Creators pay a few dollars to keep a posting habit going without opening each app: one editor, a queue that fills time slots by itself and cross-posting that reformats for each network. At $6 a month it is cheaper than the time it takes to keep several platform connections working yourself.
Estimate · Runs on your own machine, or on a $5 VPS if it must stay on. The networks' APIs used here cost nothing for your own accounts. The build is token usage on your agent plan.
Checked 2026-10-19 against Hypefury's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Flexible | $6 | $5 | One channel included, $6 a month for each extra one. Unlimited scheduling, 2 Tweetshots a day, Autoplugs, Instagram AutoDMs, watched users and keywords, email and chat support. |
| Full | $19 | — | All channels (Bluesky, Threads, LinkedIn, Instagram, TikTok) at no extra charge, 5 Tweetshots a day, LinkedIn carousels, analytics such as follower growth and profile clicks, unified post history, AI trained on your posts. |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Instagram and TikTok publishing through already-approved apps, and Instagram AutoDMs, Tweetshots: posts turned into shareable images.
About $6 a month on the Flexible (per channel) plan, $72 a year (checked 2026-10-19).
Instagram and TikTok publishing through already-approved apps, and Instagram AutoDMs; Tweetshots: posts turned into shareable images; Analytics such as follower growth and profile clicks, and a unified history of posts made elsewhere; AI trained on your own past posts; The engagement builder for watched users and keywords, and invites for a ghostwriter or assistant. If any of those matter to you, keep paying.
Yes: Postiz (open source), Mixpost Lite (open source), BrightBean Studio (open source).