Skip to content

Latest commit

 

History

51 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CogSend

CogSend

Self-hosted social scheduler for Mastodon, Bluesky, LinkedIn, Threads and X.
Write a draft, customize it per platform, then publish it now or schedule it.

Install · Documentation · API · Contributing

Checks Release Node 22.12 or newer Cloudflare Workers MIT license

cogsend-trailer.mp4

Why CogSend

Hosted schedulers usually charge per channel and keep your posts and tokens on their servers. CogSend runs on your own Cloudflare account instead: your data stays in your own D1 database and R2 bucket, posts go out through your own API credentials, and there is no subscription to keep paying.

Features

  • Thread editor: one card per post, images with alt text, and a tab per platform for tailored versions
  • Auto-split: paste a long draft and it becomes a thread that fits every platform you picked
  • Publish or schedule: see results per account, then cancel, reschedule or retry from Posts
  • Automatic retries: temporary failures retry on their own, up to five attempts
  • Insights: published against failed over 7, 30 or 90 days, and why posts failed
  • Link previews: cards for URLs in a post
  • Secure by default: encrypted credentials and 2FA on the admin account
  • API access: a personal key for scripts and Shortcuts

What it costs

A single-admin instance normally stays within Cloudflare's free plans, though R2 needs a payment method on file. The Workers free plan allows five cron triggers per account, shared with every Worker you run; if none are left, an external pinger drives the schedule instead (Scheduling). On the free plan a backlog of due posts drains a post or two a minute, and a paid Workers plan publishes everything due at once.

Install

Needs Node 22.12+ and a Cloudflare account with Workers, D1 and R2 available.

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

setup creates the Cloudflare resources, your admin account and the secrets, deploys, and prints your URL. Sign in there, scan the QR with an authenticator app and save the backup codes. It is safe to re-run; docs/deploy.md lists every step and flag.

Next, connect your accounts. Mastodon and Bluesky work straight away; LinkedIn, Threads and X need an OAuth app first.

Updating

git pull && npm ci && npm run deploy:release

deploy:release runs the tests, applies migrations, builds and deploys. Your data is in D1 and R2, not in the checkout, so a pull cannot touch it. Settings → Instance and npm run doctor both report the running version and say when a newer release is out; docs/deploy.md → Updating covers release tags and rolling back.

Documentation

Also published, with search, at cogsend.com/docs.

Get started

  • Deploying: the install and its flags, checking it worked, updating and rolling back
  • OAuth apps: LinkedIn, Threads and X app setup, and what each platform allows
  • Connecting accounts: connecting, reconnecting and disconnecting accounts

Use it

  • Writing and publishing: threads, per-platform overrides, images and alt text, scheduling
  • Posts and Insights: the queue, what each post can do, and the delivery stats
  • API: personal API keys and worked examples (the full reference is in-app at /api)

Run it

  • Configuration: secrets, the instance name, APP_URL, the login and recovery
  • Scheduling: the cron trigger, the free-plan trigger limit, external pingers, failure emails
  • Domains and URLs: the workers.dev URL, a custom domain, changing the hostname
  • Cloudflare Access: putting an extra gate in front of an instance
  • Backups: D1 Time Travel, exporting the database, copying the bucket
  • Troubleshooting: the errors people actually hit, and what fixes each
  • Development: local setup, the checks that must pass, code expectations

Stack

SvelteKit 2 and Svelte 5 on Cloudflare Workers with Static Assets, D1 (SQLite) via Drizzle, and R2 for media.

Contributing

docs/development.md has local setup and the checks that must pass; CONTRIBUTING.md has the pull-request rules. Report security issues privately, as SECURITY.md describes.

If CogSend is useful to you, sponsoring supports my time maintaining it.

License

MIT, see LICENSE. Third-party notices are in THIRD-PARTY-NOTICES.md.

About

Self-hosted social media scheduler. Write once, publish to any connected platform. Runs on your own Cloudflare account.

Topics

Resources

Contributing

Security policy

Stars

135 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Contributors

Languages