Planning and publishing to your own accounts is plain code: a media library, a calendar, a grid preview and a worker that fires at the scheduled minute. The weekend goes on the networks' rules. Instagram needs a professional account and a Meta developer app and fetches media from a public URL, and TikTok keeps posts from apps that have not passed its audit private. A version for Instagram, Bluesky and Mastodon is realistic; matching Later's reach across TikTok, Pinterest, YouTube and LinkedIn is not.
Before you buildLater's pricing page shows a 14-day trial rather than a free plan. If you post to one account a few times a week, try Buffer's free plan before building anything.
Build me a visual social post planner to replace Later. Requirements: - Python 3.12 + FastAPI with Jinja2 templates and HTMX. `uv run planner` serves http://localhost:4860 (admin) and runs a publish worker in the same process that checks for due posts every 30 seconds. - Storage: SQLite via SQLAlchemy in ./data/planner.db and files in ./data/media/. Tables: media (file, kind, width, height, tags, alt text), posts (caption, ordered media ids, networks, scheduled_at in UTC, status draft / scheduled / publishing / published / failed, result URL per network). - Media library: upload JPEG, PNG and MP4 by drag and drop, Pillow thumbnails, tag and search. On upload, warn when a file breaks a network rule: Instagram images must be JPEG, Reels need vertical video. - Planner: a month calendar plus a three-column preview of the Instagram grid that mixes published posts (read back through the API) with scheduled ones. Drag a card to change its date or grid position. Once 30 posts are published, rank weekday and hour slots by engagement per reach from the Insights API and mark the top three; with fewer posts show "not enough data". - One adapter interface, publish(post) returning the post URL, and three adapters: Instagram (the Instagram API with Instagram Login: create a media container, poll until it is ready, then publish; single image, carousel of up to 10, Reels), Bluesky (`atproto`, app password) and Mastodon (instance URL and access token). Set status to publishing before calling a network and never retry after a container was published; otherwise retry 3 times (1, 5 and 30 minutes) and show the error. - Instagram setup: a Meta developer app in development mode with your own account added as a tester. Store the long-lived token encrypted (`cryptography` Fernet, key in .env) and refresh it before day 60. Instagram fetches media from a public URL, so serve /media/<random-name> and the link-in-bio page on a second port (4861) and expose only that one through a tunnel. - Link in bio: a public page at /links on port 4861 with ordered buttons edited in the admin and a click counter per button stored in SQLite. - Single user: one password in .env. No accounts, no telemetry, local-first. The only outbound calls are to the three networks. - Out of scope: TikTok, Pinterest, YouTube, LinkedIn, Stories, a social inbox, team approvals, AI captions. - README: creating the Meta app and adding yourself as a tester, the tunnel for port 4861, and a warning that Meta's permissions and publishing limits change (check content_publishing_limit).
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 Later.
Add weekly posting slots to the planner in this folder. Requirements: - Settings page: per network, a list of weekday and time slots in TIMEZONE from .env. - A button "Add to queue" on a draft that takes the next free slot for each selected network. - The week view shows slots as empty outlines and filled ones as cards; dragging a card onto another slot swaps them. - Skipping a slot (a toggle on the card) moves later posts up by one slot. - Update the README.
Add an import of my Instagram history to the planner in this folder. Requirements: - A command `planner import-instagram` that pages through my account's media with the Graph API (id, caption, media_type, permalink, timestamp, media_url) and stores each as a published post. - Download each image or video thumbnail into ./data/media/ once; skip anything already imported, so running it twice is safe. - Show imported posts in the grid preview in their original order and mark them as read-only. - Print a summary of imported, skipped and failed items, and respect the API's paging and rate limits. - Update the README.
Add hashtag sets and first comments to the planner in this folder. Requirements: - Settings page: named hashtag sets (for example "travel", "food") of up to 30 tags each. - In the composer, pick a set; it is stored on the post, not pasted into the caption. - For Instagram, after the post is published, add the hashtags as the first comment through the comments endpoint. If that call fails, mark the post "published, comment failed" and offer a retry. - Warn in the composer when the caption plus tags would exceed the network's limit. - Update the README with the extra Instagram permission this needs.
Later sits between you and networks that make publishing awkward. It holds approved connections to each one, shows how the feed grid will look, and keeps a team's drafts and approvals in one place. For a single account that is more than needed, but the post caps on Starter push busy accounts up a tier.
Estimate · Runs on your laptop plus a free tunnel, or a $5 VPS if posts must go out while the laptop sleeps. The network APIs cost nothing at this volume. The build is token usage on your agent plan.
Checked 2026-10-19 against Later's docs: 1, 2, 3, 4, 5, 6, 7
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $25 | $18.75 | 1 social set (8 profiles, one per network), 1 user, up to 30 posts per profile a month, 5 AI credits a month, analytics history up to 3 months, Link in Bio, best times to post for Instagram, Facebook and TikTok. |
| Growth | $50 | $37.50 | 2 social sets (16 profiles), 2 users, up to 180 posts per profile a month, 50 AI credits a month, analytics up to 1 year, social inbox, approvals, custom roles, UGC collection. |
| Scale | $110 | $82.50 | 6 social sets (48 profiles), 4 users, unlimited posts, 100 AI credits a month, analytics up to 2 years, Meta Ads analytics, competitive benchmarking, brand mentions, priority support. |
The pricing page offers a 14-day trial and no free plan, although a help article still mentions dropping back to a free plan after cancelling.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Publishing to TikTok, Pinterest, YouTube, LinkedIn and Snapchat, each of which needs its own approved developer app, The social inbox, approval flows and UGC collection on the Growth plan.
About $25 a month on the Starter plan, $300 a year (checked 2026-10-19).
Publishing to TikTok, Pinterest, YouTube, LinkedIn and Snapchat, each of which needs its own approved developer app; The social inbox, approval flows and UGC collection on the Growth plan; Competitor benchmarking, brand mentions and Meta Ads analytics on Scale; The mobile apps, for uploading from your camera roll and getting reminders; Best-time suggestions before you have a history of your own posts. If any of those matter to you, keep paying.
Yes: Postiz (open source), Mixpost Lite (open source), BrightBean Studio (open source).