Skip to content

CogSend

Self-hosted scheduler that writes, schedules and publishes posts and threads to Mastodon, Bluesky, LinkedIn, Threads and X

CogSend editor with a draft post, the Global tab and per-network override options

CogSend runs in your own Cloudflare account and posts to Mastodon, Bluesky, LinkedIn, Threads and X from one editor. A draft goes out as a single post or a thread, with a tailored version per network, right away or at a set time. Network credentials are stored encrypted in your D1 database, and the one account signs in with a password and an authenticator app.

The editor shows one card per post, so a thread is a stack of cards, and a long draft can be split into a thread that fits every selected network. A tab per network overrides the shared text. A post carries up to four images with alt text or one video, which the browser converts when a network needs another format. Links get preview cards, and drafts save as you type. Posts go out right away, at a set time or after an offset. A cron trigger checks for due posts every minute, retries temporary failures up to five times and records the result per account. The Posts page lists scheduled, published, failed and draft items, which can be cancelled, rescheduled or retried. Insights counts what went out or failed over 7, 30 or 90 days and groups failures by reason; it does not track likes or reach. Personal API keys, read-only or read-write, and a built-in MCP server let scripts and AI agents such as Claude Code draft, schedule and publish. Optional emails through Resend report failures. One Worker serves the SvelteKit app, keeps accounts and posts in D1 and media in R2. The Deploy to Cloudflare button copies a prebuilt release repository and creates both on workers.dev, and the Worker sets up its own schema on the first request. Updates are signed releases, installed from Settings, a GitHub Action or the CLI.

Built for: Creators, developers and small projects that post the same updates across Mastodon, Bluesky, LinkedIn, Threads and X

An alternative to: Buffer, Typefully

What you can use it for

  • Cross-post an announcement to Mastodon, Bluesky, LinkedIn, Threads and X at once
  • Schedule a launch thread with a tailored version for each network
  • Let an AI agent draft and queue posts through the MCP server
  • Keep social network credentials in your own Cloudflare account

Deploy

  • One-click · main path

    Make an APP_ENCRYPTION_KEY of at least 32 random characters first and keep a copy: the deploy form asks for it, and so does the first visit, where you create the only account. The button deploys a prebuilt release from cogsend/deploy and creates the D1 database and R2 bucket.

  • CLI

    The setup script signs in to Cloudflare, creates D1 and R2, generates the encryption key, creates the admin account and deploys. It is safe to run again.

    git clone --depth 1 https://github.com/cogsend/cogsend.git
    cd cogsend
    npm install
    npm run setup

Connecting LinkedIn, Threads or X means registering a developer app on each network first; Mastodon needs only a sign-in and Bluesky an app password.

What it needs to run

  • D1 databasescogsend
  • R2 bucketscogsend-media

Also uses

  • GitHub, Gitea, Forgejo or GitLab (optional): The Deploy button copies the release repository into a GitHub or GitLab accountSource
  • Resend (optional): Failure digest emails

Good to know

Five networks only: Mastodon, Bluesky, LinkedIn, Threads and X. One admin account per instance, with no team members or approvals. LinkedIn, Threads and X need your own developer app on each network, or a Zernio account; Mastodon and Bluesky connect directly. Posting to X uses paid X API credits, and LinkedIn tokens from your own app expire after 60 days. Insights count deliveries and failures, not engagement. R2 needs a payment method on the Cloudflare account. Young project: the repository was created in September 2026.

Cost on Cloudflare

Likely fits the free plan

D1, R2, the cron trigger and the rate-limit binding all work on Workers Free, and the README says a single-admin instance normally stays within the free plans. On Workers Free a backlog of due posts goes out a post or two per minute, and the cron takes one of the five free cron triggers on the account.

Source

The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.

Where this comes from

Listing history

  • Oct 23, 2026 · CogSend listed
  • Payload admin panel editing a page with live preview

    Headless CMS with an admin panel, where developers define content in code and editors publish, running on Workers with D1 and R2

    Deploy
    One-click
    License
    MIT
    GitHub stars
    45.6k stars
    Last commit
  • EmDash admin Edit Post screen with the rich text editor, featured image and a Publish panel for scheduling

    Open-source Astro CMS from Cloudflare for blogs and marketing sites, with a WordPress-style admin and sandboxed plugins

    Deploy
    One-click
    License
    MIT
    GitHub stars
    14.1k stars
    Last commit
  • microfeed dashboard home with web, RSS and JSON feed URLs and a completed setup checklist

    Self-hosted CMS that publishes podcasts, posts, photos and links as a website, RSS feed and JSON Feed on Cloudflare

    Deploy
    CLI
    License
    AGPL-3.0
    GitHub stars
    4.1k stars
    Last commit