Can we recreate Cohost in a decentralized environment?
It's been great to see so many people planning to keep the Cohost community alive by sharing links to their own blogs following one another through RSS. In theory, something like Cohost should be entirely possible to recreate through decentralized networks — even as we move to different blogging platforms or create our own websites, we can use RSS to follow one another and stay in touch. The barrier of entry is incredibly low: platforms like WordPress and Tumblr already offer RSS feeds, and tools like the excellent RuSSHDown even let you create an RSS feed all on their own!
But there's still something missing... Or, well, there's plenty missing, but one thing in particular stuck out to me: reblogging. Sharing and reblogging content is a huge part of any Cohost-like system... is it possible to recreate it without relying on a centralized server?

The above is a reblog button that I've created that's intended to work on as many different systems and platforms as possible. I have a widget for creating one on the main page at rssr.bluetinge.dev, which doubles as a tool to reblog any RSS feed on the internet, and a sample page of what the results could look like here, but if you don't mind, I'd like to explain a bit about how it works first and make a case for why people should give it a try! And if you
don't have an RSS feed or blog yet, scroll to the bottom where I have a tutorial on how to get started!
Okay, so, what is this thing?
RSS-Reblog— as I'm currently calling it, though admittedly it would be nice to have a catchier name — is basically just a link that you can embed at the bottom of your posts to let people reblog it (whether to another platform or your personal website of choice). You use rssr.bluetinge.dev to generate the link/button for your posts, or even to reblog other people's posts who don't have the link. (It keeps the original author data and links back to their original post and feed).
When you reblog a post — whether that's from the above webpage or by clicking on the reblog button — it brings you to the webpage below where you provide your own RSS feed, adjust how your display name and icon are presented, and (optionally) add your own text (in HTML or markdown), adjust tags (the reblog tag is provided automatically), and/or provide a link you want associated with the post:

Once you hit generate, you're able to view a preview of the post. As we can see here, it's added a couple headers around the original post (replacing any pre-existing headers it's able to find), and same with a footer with a new Reblog button. Here, you have some options for what to do next depending on your personal preference.
-
If you maintain your blog purely through your RSS feed — maybe you use RuSSHDown to make new posts, and use RSS2HTML to generate your blog webpage (if you even decide to have one!), then all you need to do next is download the new rss.xml with the new post item added to it. If you want to double-check the results or make any edits, you can take a look at the generated RSS file instead, and copy it to the clipboard when you're done. And if you're reblogging several posts at once, you can always save the file to local storage to reuse, so that you only need to download it once at the end (this feature should be live in a couple hours — I'll edit this post when it is).
-
Already have your own blog site? No problem! For example, maybe you have a Neocities site where you have a blog you've worked super hard on to get custom styling you like. All you need to do is copy the newly generated HTML or markdown and put it as a new post in your blog, making any edits you'd like to make first. If you don't autogenerate your RSS feed, you should download the rss.xml as well, since the reblog button doesn't work unless it can find the post to be reblogged on your feed. You can always host this file as a separate rss feed specifically for reblogging posts, if you're nervous about overwriting the old one with something autogenerated or just want to keep things separate. If you do autogenerate your feed, well, see #3 below.
-
Host your blog on WordPress, Tumblr, etc. and use that to generate your RSS feed? That's totally fine! In this case, you can just copy the markdown or HTML to make a new post, same as you would make any other post, and presto! There is one caveat — the reblog button at the bottom of your new post only works if you either A. Provide a link to your reblog of the new post now, which might not always be possible if the new link is autogenerated, or B. Download and host this rss.xml separately from your main one. In other words, you'll keep using your main, autogenerated RSS feed for everything else — it's the canonical feed that you give people to follow you, etc. — but for the reblog button specifically, it will find your posts from this separate feed in order to make sure the reblog button always works. (Hosting it is free and super simple — see how-to-get-started below).
I'll add that if you don't like the default style of what's been generated — the button, the colors, the fonts, whatever — the generated HTML has CSS classes you can use to format it to your heart's content! Keep in mind that feed readers will strip a lot of custom styling, so the generated code includes some basic inline styles to fall back on. See a guide to using the CSS hooks here.
Cool, but is it secure? Private? Does it have bugs that'll mess up my feed? Let me see the source!
(Snipped — Moved to my blog to make this post a more manageable size!)
Okay, but, how do I know when someone reblogs my post? And what about likes? Comments? Notes?
Yes, that's absolutely important! On a blogging site like Cohost, you receive notifications when someone reblogs your post. That's totally doable using a decentralized distributed network, and so are likes, comments, tumblr-style notes, etc. I'd argue it's actually very important for forming a community — you want to know when people reblog your posts, you want to interact with others through comments, you want to like others' posts without reblogging, you want to discover new people through tags... Unfortunately, this is all beyond the scope of where I'm at right now. I would really love to implement all of this, though, and I do have some ideas. Feel free to follow me at bluetinge.dev/rss.xml to get updated when I update this project, and you can always feel free to contact me on Discord if you'd like to chat or collaborate directly (I'm @BlueTinge).
Here's a shortlist of planned updates and what I'd like to do: (Snipped — moved to my blog to make this post a more normal size)
That's great but how do I do get started please tell me already
Yeah, okay! Here's a simple guide to getting started with RSS (using GitHub). If you already have your own blog (tumblr, your own site, whatever) and want to keep using that, you totally can: just follow the below steps to make an RSS feed that you can use to reblog other people's posts.
- Make a new RSS feed: You can use RuSSHDown for this! It's pretty self-explanatory: the only special note I'll make is, if you don't have a website yet, just put down "Link" or something for the website link and we'll edit it later.
- Host the feed: Make an account and new repository on GitHub. Once you've created the new repository, upload your rss.xml file to it get the "raw" link to the file. You can find this by clicking on the file, and clicking on the "raw" button in the upper-righthand corner (its behind the three-dots button on mobile). As an example, the link might look something like this: https://raw.githubusercontent.com/bluetinge/bluetinge.dev/refs/heads/main/rss.xml.
- Edit your rss.xml to have the correct link: Find the line that looks like this:
<atom:link href="Link/rss.xml" rel="self" type="application/rss+xml"/>and change Link/rss.xml to the link you copied. If you are not planning to host a website, you can replace Link/rss.xml in the<link>tag with the raw github link as well — and you are done! Just use that raw link as the link to your feed (or, you know, make a bit.ly pointing to it or something). - Host your site via github pages (optional): You can use rss2html to easily turn your RSS feed into an actual blog webpage — just follow the directions on the rss2html website, and embed it in an html page! I have an example of what this html page could look like here. I'm planning to update the style on this to make it look more like cohost, but hey, make it look like whatever you want!
And that's it! Please let me know if you think it's neat, or you have any questions comments or concerns! And again if you want to keep up with updates you can find me at bluetinge.dev/blog, or follow me at bluetinge.dev/rss. Thanks for reading!!