Can I vibecode BulkPublish?

KINDA · weekend project
price $13.99/moyou'd save $167.88/yrbuild time multi-daycategory 🐦 social mediareplaced by 0 people

The part people picture is a weekend: a list of posts, a timer, one API call each. The part that eats the next six months is everything after the first successful post · staying authenticated to a dozen networks, learning each one's media rules the hard way, publishing that reports success and then quietly fails minutes later, retries that must never post twice, and a review process before some networks will accept a post at all. Build it for two accounts you control and it works. Build it for every network on the marketing page and you have taken a job.

the prompt
Build me a personal bulk social scheduler to replace BulkPublish. Requirements:

- Python 3.12 + FastAPI + SQLite, Jinja templates, no JavaScript framework.
  One process on an always-on box, APScheduler ticking once a minute.
- Two networks only: Mastodon (access token) and Bluesky (app password).
  One small module per network behind a single publish(post, account)
  function so a third is addable later. Scaffold nothing I do not use.
- The main screen is a CSV importer. Columns: caption, image, send_at,
  accounts. Show me every parsed row with a per-network character count and
  a red flag on anything too long or missing a file, and import only the
  rows that pass.
- Rows with no send_at fall into posting times I configure per account
  (weekdays 09:00 and 17:00 in my timezone) and take the next free one.
- Each tick picks up due rows one at a time and flips the row to "sending"
  in its own transaction before any network call, so a crash or a double
  tick can never post the same row twice. Then "sent" with the live post
  URL, or "failed" with the error text. Three retries, backing off, and
  never a retry once a send is confirmed.
- Images copied into media/ beside the database, checked for type and size
  at import, removed 90 days after the row sends.
- A history page: last 200 rows, status, error, link to the live post, and
  a retry button.
- Out of scope, and say so plainly in the README: X, Instagram, LinkedIn
  and TikTok (paid, approval-gated or review-gated APIs), analytics,
  approvals, and more than one user.
- README covers getting a Mastodon token and a Bluesky app password.
  Secrets in .env, localhost only, no accounts, no telemetry.

$ open in your agent (prompt prefilled, you press enter) or copy it raw

why people still pay

Because a scheduler is only worth anything when it is boring, and a self-built one stops being boring the first time a token expires overnight or a network changes its video rules without telling anyone. People pay so that maintenance is somebody else's Tuesday.

what you lose

xstaying connected · networks expire your auth and someone has to notice

xknowing a post is malformed before the network rejects it, not after

xan honest publish status when a network accepts the upload and fails minutes later

xanalytics pulled back per post

xapprovals, teams and multiple client workspaces

xthe platform review process that gates posting on some networks entirely

share on X ↗"I just replaced BulkPublish ($13.99/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

PostizThe broadest open scheduler here; free means running PostgreSQL, Redis, Temporal and your own platform credentials.34kaug 2026open sourceMixpost LiteA polished single-user scheduler with queues and basic analytics; the team features live in the paid edition.3.5kmar 2026open sourcePubler FreeThree non-X accounts and ten queued posts each, with a bulk CSV importer that is the closest free match for the actual job.$0free

all 6 free alternatives to BulkPublish →· no votes, no pay-to-list · just what's real

the numbers

BulkPublish pricing

pro$13.99/mo · monthly per organization · $167.88/yr

free tierThe free plan covers three channels, thirty posts a month, ten scheduled at a time and 100 MB of media, with repeat posts and RSS auto-publishing held back for paid plans.

verified 2026-08-08 · source ↗

questions
Is BulkPublish free?

The free plan covers three channels, thirty posts a month, ten scheduled at a time and 100 MB of media, with repeat posts and RSS auto-publishing held back for paid plans. Paid is Pro at $13.99/mo (checked 2026-08-08).

Can I vibecode BulkPublish?

Kinda. The core of BulkPublish is buildable in a weekend with the prompt on this page, but there are real gaps: staying connected · networks expire your auth and someone has to notice, knowing a post is malformed before the network rejects it, not after. Read the honest list above before committing.

How much does BulkPublish cost?

BulkPublish costs about $13.99/month (Pro, checked 2026-08-08), which is $167.88 per year.

What do I lose by replacing BulkPublish?

Honestly: staying connected · networks expire your auth and someone has to notice; knowing a post is malformed before the network rejects it, not after; an honest publish status when a network accepts the upload and fails minutes later; analytics pulled back per post; approvals, teams and multiple client workspaces; the platform review process that gates posting on some networks entirely. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to BulkPublish?

Yes: Postiz (The broadest open scheduler here; free means running PostgreSQL, Redis, Temporal and your own platform credentials.) Mixpost Lite (A polished single-user scheduler with queues and basic analytics; the team features live in the paid edition.) Publer Free (Three non-X accounts and ten queued posts each, with a bulk CSV importer that is the closest free match for the actual job.) All 6 curated free alternatives are at canivibecodeit.com/bulkpublish/alternatives. The prompt is for when you want it exactly your way.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.