Why We Need Webfeeds
Social media platforms suck vast amounts of profit away from creators. There are many things they could do to help creators—like allowing links in a post (on Insta). But they'll never do this because they have one single goal: keep users scrolling through their ads.
Social media is hostile to mental health.. Likes, algorithms, and publicized follower counts are all all just tricks to keep you addicted with cheap hits of dopamine. Study after study shows the damanging effects of social media.
One company makes all the decisions around how (or if) your content reaches your audience. This is the exact opposite of how the internet is supposed to work.
Platforms are most likely going to collapse anyway. Why? Read up on Platform decay. We might as well build our own Noah's Arks to prepare for what is to come.
How do they work?
Index Files
Webfeeds start with an index file, which is a plain text file on your website named index.txt. The public URL might be http://xyz.com/index.txt. The contents of this file are a list of URLs that point to carousel pages.
/carousels/jan-1-2024/
/carousels/jan-2-2024/
/carousels/jan-3-2024/
https://www.external.com/something-worth-resharing
A Webfeed Reader App
Webfeeds are downloaded and displayed by a Webfeed reader app installed on a user's device, though a reader could be purely web-based as well. Users connect webfeeds to their reader by clicking a button on a website.
See the Webfeed button on GitHub
Once the webfeed is connected to the reader, the reader begins to check it periodically for updates. It does this by issuing a HEAD request to the index file, and scanning the returned ETag, Last-Modified, and Content-Length headers that are sent back for differences. This avoids needless re-downloading of the whole index.
Carousel Pages
The HTML pages referenced in an index file are called Carousels Pages, because that's how they're displayed in the webfeed reader. In HTML, the basic file structure is a top-level <html> tag, which contains a <head> tag, and a <body> tag. Carousel pages are similar, although instead of a top-level <body> tag, there are one or more top-level <section> tags. In order to prevent UX failures in the reader, sections have some simple constraints:
- Visual content can't overflow outside of them.
- There are some HTML tags (?) and CSS properties (?) that aren't allowed.
-
They can have scripts, but this forces the section into a sandbox, which comes with some additional limitations.
See the Webfeed repo on Github