Skip to main content

[verdict][curated prompt][source: bulkpublish.com]

Can I vibecode BulkPublish?

// buildable in a weekend, but real gaps stay open

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.

confidence: high

what it is: Queue a spreadsheet of posts once and let it publish across every connected social account

Buildability index · an editorial game

  • Price 13.99 $/month weight: plus 2
  • Time multi-day weight: plus 1
  • Category social media no weight
  • Moat integrations · execution quality · infrastructure scale weight: minus 4
  • Confidence high weight: plus 1
  • What you lose 6 items weight: minus 3
  • Site bulkpublish.com (si apre in una nuova scheda) no weight
Indice: minus 3. think twice

The moat outweighs the price: rebuilding this is a project, not an evening.

Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.

// free tier: 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.

What you build

Import a spreadsheet of captions and images, point each row at one or more connected accounts, and let it publish on schedule with a log of what landed.

what you need

  • a developer app and API credentials per network (several need review before they will publish anything)
  • somewhere always on for the schedule to fire
  • somewhere to keep the posts and the media
  • patience for the retry and duplicate-post edge cases

Bulk-first scheduler · the honest split between the one-weekend build and the multi-year integration bill is unusually clean here.

The prompt

A weekend with a coding agent. The gaps that stay are right below, under “what you lose”.

One-shot prompt EN
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.

Curated prompt: written and reviewed by hand for this app. In English on purpose — it is the language coding agents work best in.

What you lose

  • 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

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.

moat: Integrations Execution quality Infrastructure scale what a moat is

The moat is not the scheduler, it is the standing cost of a dozen platform integrations that change under you.

Free alternatives

Not in the mood to build it? These already exist, they are free or open source, and we checked them one by one.

Rejected (2) — and why

Who has already built it

Starting from here is still vibecoding: the prompt is for when you want it exactly your way.

Do you agree?

The vote balance

Ancora nessun voto: il tuo è il primo.

Nessun voto ancora — il primo pesa.

Related apps

Distribuzione dei verdetti n = 996

YES 153 KIND OF 451 — il verdetto di questa app NOT REALLY 392

From a Confusing Brief to a Complete UX/UI A vague brief becomes a navigable app. Product Ad From a Single Photo A photo becomes an animated ad, no code required. Get Claude to Watch Your Videos Claude watches your videos and turns them into text. Higgsfield Inside Claude Code Generate images and video while you code in Claude Code. Turn a Loom Recording Into a Web Page A screen recording becomes a web page, no code. Vertical Shorts With NotebookLM Your sources become a vertical short. Luxury Landing Pages on Lovable A luxury landing page from a single prompt. Excalidraw Running Locally Excalidraw free on your computer, no code. Mistral OCR in Your Workflow Extract text from documents with Mistral OCR. Claude SEO in the Terminal 25 free SEO skills inside Claude Code. Google Search Console inside Claude Code Search Console data inside your terminal. Claude Code Routines Claude working on its own, computer off. Clone a Landing Page in React With v0 Clone a real landing page into React code. Context Economy With Claude Work light and don't burn through Claude's limits. From Prompt to Self-Improving Skill Claude skills that learn from your mistakes. From NotebookLM to Canva: Presentations NotebookLM slides, finally editable in Canva. The Map for Understanding Every AI Tool 12 categories for placing any AI tool. Transparent PNGs With ChatGPT Real transparency, not a fake checkerboard. Animated Infographics With Gemini Infographics that loop, animated with Gemini. Market Research With Deep Research Deep Research as your market analyst. Get Cited by AI Search Engines (AEO) Become a source that ChatGPT and Perplexity cite.