Writing and queueing posts is the easy part: an editor that splits a thread at each network's limit, a calendar, and a worker that publishes on time. For Bluesky and Mastodon, whose APIs are free and simple, an agent gets that done in an evening. X and LinkedIn take the rest of the weekend: X now charges for every post through its pay-per-use API, LinkedIn tokens expire after 60 days unless you are an approved partner, and Threads needs its own Meta developer app. You end up with a working personal scheduler, minus the analytics, the AI rewrites and Typefully's exact previews.
Before you buildTypefully Free still publishes 10 posts a month to every network. If that's your volume, keep it.
Build me a thread writer and post scheduler to replace Typefully. Requirements:
- Node.js 22 + TypeScript: Fastify API and a React + Vite front end, served
by `npm start` on http://localhost:4800. A worker in the same process checks
the queue every 30 seconds and publishes whatever is due.
- Storage: better-sqlite3 in ./data/posts.db; uploaded images in ./data/media/.
- Editor: one draft can target several networks. Blank lines split a thread;
show a live count per post (X 280, Bluesky 300, Mastodon 500, LinkedIn
3,000) and refuse to schedule anything over a limit.
- Publishing: Bluesky with @atproto/api and an app password; Mastodon with
`masto` and an access token; X with the v2 API (OAuth 2.0 PKCE, scopes
tweet.write, users.read, offline.access; replies chained into a thread);
LinkedIn with the Posts API and w_member_social. Secrets stay in .env and
./data, never in the browser.
- Calendar: week view, drag to reschedule, and weekday time slots
("Tue 09:00, Thu 17:00") that an "Add to queue" button fills in order.
- After publishing, store each post URL. On failure keep the draft, show the
API error and retry up to 3 times.
- Single user. No accounts, no telemetry, local-first.
- Out of scope: analytics, AI rewriting, team comments, Threads, Instagram.
- README: setup for each network and two honest warnings: X bills every post
through pay-per-use credits (posts with links cost more), and LinkedIn
tokens expire after 60 days, so show a "reconnect" banner before they do.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 Typefully.
Add a Typefully importer to the scheduler in this folder. Requirements:
- Read TYPEFULLY_API_KEY from .env (created in Typefully under Settings > API).
- Call GET /v2/social-sets, then GET /v2/social-sets/{id}/drafts with
limit=50 and a rising offset until no results remain; pause 1 second
between pages and back off on HTTP 429.
- Import drafts and scheduled posts as local drafts (unscheduled, so nothing
publishes twice); keep published ones as read-only history.
- Print a summary of imported, skipped and failed items. Running it twice is safe.
- Update the README.Add simple stats to the scheduler in this folder. Requirements: - Once a day, fetch likes, reposts and replies for posts published in the last 14 days: Bluesky via app.bsky.feed.getPosts, Mastodon via the status endpoint, X via the owned-reads endpoints for my own posts. - Store daily snapshots in SQLite and show a table sorted by engagement, with a sparkline per post. - Show the X credit cost of each run in the log. - Update the README.
Add Threads publishing to the scheduler in this folder. Requirements: - Use the official Threads API with a Meta developer app in development mode, my account added as a tester, and the long-lived token stored in ./data. - Publish text and image posts and chain replies for threads; respect a 500-character limit per post. - Refresh the long-lived token before it expires and show a banner if it can't. - Out of scope: browser automation of the Threads website. - Update the README with the Meta app setup steps.
At $99 a year, Creator costs less than an afternoon of wiring up four social APIs, and writers like the editor enough to draft in it every day. Teams pay for shared drafts and approvals, and X-focused creators for the analytics.
Estimate · Bluesky, Mastodon and LinkedIn posting cost nothing. X charges $0.015 per post and $0.20 for a post with a link, so 60 posts a month with 20 links comes to about $4.60. A VPS to run the worker adds a few dollars.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | 1 user, 1 social set, 10 posts a month, limited media uploads; scheduling, API and MCP included. |
| Creator | — | $8.25 | 1 user, 1 social set, 1,000 posts a month, X analytics, AI writing features, unlimited media uploads. |
| Business | $20 | $18 | Unlimited users, up to 50 social sets, shared drafts and comments, Slack notifications, roles and permissions, higher API limits. |
Free publishes to every supported network, but only 10 posts a month from one social set, with limited media uploads.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: X analytics: follower growth, profile conversion, streaks, AI rewrites that learn your voice.
About $8.25 a month on the Creator plan, $99 a year (checked 2026-10-13).
X analytics: follower growth, profile conversion, streaks; AI rewrites that learn your voice; Shared drafts, comments and Slack alerts for a team; The Mac app and pixel-exact previews of threads; Auto-plug, auto-retweet and other engagement automations. If any of those matter to you, keep paying.
Yes: Postiz (open source), BrightBean Studio (open source), Mixpost Lite (open source).