Building CogSend: A Self-Hosted Social Media Scheduler

I have been using Typefully for a long time and it is genuinely great, but it supports a fixed set of platforms and I wanted to decide that for myself. So I built my own. Say hello to CogSend, a self-hosted social media scheduler.

CogSend is open source under the MIT license and it runs on your own free Cloudflare account. There is no monthly fee and no account with me, and your platform credentials stay in your infrastructure. It currently supports Mastodon, Bluesky, LinkedIn, Threads and X with more platform support coming soon.

What it can do

The main idea is, you write a post once, then customize it per platform if you want. There is a Global tab plus a tab for each platform you override, so the X version can stay short while the LinkedIn version says the same thing at length. If you paste a long draft, it splits into a thread that fits the tightest platform you selected, counted the way that platform counts.

Compose screenshot from CogSend app

How to install

You need Node and a Cloudflare account with Workers access, D1 and R2 available. And the whole install process is just two commands:

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

The setup does everything – creates the database and the bucket, generates the secrets, applies the migrations, deploys the Worker, and then signs in once against the live site to prove it works. At the end just open the final URL it prints, scan the QR with an authenticator app, save the backup codes, and start connecting your social accounts.

The Cloudflare free plan is enough for a personal instance. By the way, R2 does ask for a payment method on file even on the free tier, but the first 10 GB each month are free.

I think, it's more than enough for a single user, no?

Why I built it

Every new post and note I published went out through a small script to the same two platforms. It worked, but I wanted per-post control over where things go, and room to add the platforms I actually use. That is the part CogSend fixes, and now the accounts and the scheduling are mine to change.

I already self-host a few other things, like this website running from a Raspberry Pi, so putting the scheduler on infrastructure I control felt natural, and the best thing is I loved the process of building it.

What's next

First, I will be fixing the documentation and I want the setup to be clear enough that nobody has to read the repo to understand it. And I will record a few short videos for the parts that are easier to show than to write.

After that, will focus on adding more platforms – Instagram, TikTok and YouTube are the ones I am thinking about. Along with these, I'm thinking about more integration options as well.

These are early thoughts though, not the final roadmap.

The code is on GitHub and the site is cogsend.com. It is MIT licensed, so fork it and change whatever you want, and send PR as well.

That's it.

Some links here are affiliate or referral links. Buying through them supports this site at no extra cost to you, and it doesn't affect my opinions.