Skip to content

licenseMITsourceopen

Your self-hosted social scheduler,
on your own Cloudflare account.

Mastodon, Bluesky, LinkedIn, Threads and X. Write a draft, customize it per platform, then publish it now or schedule it. No subscription — it runs on Cloudflare's free plan.

Deploy to Cloudflare

No terminal, nothing to install: Cloudflare copies a prebuilt release into your GitHub and deploys it. Bring a Cloudflare account and an encryption key.

Star on GitHub
Prefer a terminal?
Loading the demo…

Features

A thread editor, a queue and a retry rule.

Enough to run a presence on five networks from one place — with the delivery stats that tell you what broke, and none of the vanity charts you would never open.

Posts

Everything you scheduled, in one list

Scheduled, published, failed and draft, with the account icons right there. Cancel or reschedule a queued post without opening it.

  • Per-destination results
  • Cancel and reschedule straight from the list

Insights

Delivery stats that tell you what broke

Published against failed, bucketed by your local days, with the same period before it alongside. Failures are grouped by reason, so a platform-wide problem looks different from one bad post.

  • 7, 30 and 90 day ranges, in your own timezone
  • Failure reasons grouped, not a wall of API errors
  • Last post at a glance, so a silent week is obvious

Install

One click, about five minutes.

You need a Cloudflare account with Workers, D1 and R2, and a GitHub or GitLab account. Nothing to install.

  1. Generate your key

    A random key, made in your browser and sent nowhere. Keep a copy in your password manager: the next two steps ask for it.

  2. Deploy to Cloudflare

    Sign in to Cloudflare and GitHub. Cloudflare copies a prebuilt release into a repository of yours, creates the database and the bucket, and deploys it. Paste the key when the form asks.

  3. Create your account

    Open your new URL, enter the same key, an email and a password, and scan the QR with an authenticator app. Later releases install from your repository, no token needed.

Prefer a terminal?

For changing the code, or deploying without GitHub. You need Node 22.17+, 24 or 26+ and the same Cloudflare account; setup is the whole install.

  1. Clone and run setup

    It creates the D1 database and the R2 bucket, generates the secrets, creates your account, applies migrations and deploys. Safe to re-run.

    $ git clone --depth 1 https://github.com/cogsend/cogsend.git cogsend
    $ cd cogsend && npm install && npm run setup
  2. Check it worked

    Read-only. It confirms the Cloudflare account, the database, the bucket, the secret and the deploy. Every failure prints the command that fixes it.

    $ npm run doctor
    # add -- --app-url <url> to ask the live app too
  3. Sign in and connect

    Open the URL setup printed, sign in, and scan the QR with an authenticator app. Mastodon and Bluesky connect straight away; LinkedIn, Threads and X each need a developer app of your own first.

Every command, flag and failure mode is in the install and deploy guide.

Questions

Before you deploy.

Yours in about five minutes.

One click and the Cloudflare account you already have. No signup, no trial, no monthly bill, and no one else holding your credentials.