IndieWeb, Publ, and Webmentions
Well… I fell down a rabbit hole a couple weeks ago. I stumbled upon the IndieWeb while I was looking for possible solutions to the enshittification of platforms, search, and seemingly everything. The IndieWeb seems to build off of the early visions for what the world wide web should be (i.e. a web of interconnected documents; not centralized platforms) with simple-ish standards to semantically markup documents and enable a higher degree of site-to-site interactivity. For instance, it’s entirely possible to compose a, more-or-less, ad-hoc decentralized micro-blogging (à la Mastodon) network by just building off of these standards and protocols. Manton Reece’s personal site is a good example of using the IndieWeb in this manner.
When logic and proportion have fallen sloppy dead
Well… I fell down a rabbit hole a couple weeks ago. I stumbled upon the IndieWeb while I was looking for possible solutions to the enshittification of platforms, search, and seemingly everything. The IndieWeb seems to build off of the early visions for what the world wide web should be (i.e. a web of interconnected documents; not centralized platforms) with simple-ish standards to semantically markup documents and enable a higher degree of site-to-site interactivity. For instance, it’s entirely possible to compose a, more-or-less, ad-hoc decentralized micro-blogging (à la Mastodon) network by just building off of these standards and protocols. Manton Reece’s personal site is a good example of using the IndieWeb in this manner.
Publ
After reading about the IndieWeb, I decided to make my own personal website that uses some of its features. There are some platforms that look great for this, such as WordPress.com and micro.blog, but I wanted more control. I’ve been on a minimilism/back-to-basics bent lately, so I started looking at static site generators such as Hugo. I realized if I used these, I’d probably have to depend on external services and JS for WebMentions. So, I was just about set on rolling-my-own CMS and IndieWeb support with Flask and Flask-FlatPages, when I found Fluffy’s Publ.
Publ implements pretty much everything I wanted. It’s a Flask app that allows you to author content in Markdown or HTML. This allows for a very light setup, because you can just author in a text editor and commit your content into a git repo. Most importantly for my purposes, because it’s a Flask app, I can add custom endpoints to handle whatever I want.
Webmentions
Publ’s documentation/blog project uses the webmention.io service to recieve webmentions. Fluffy’s webmention.js library is then used to dynamically retrieve and display them. But, as I established earlier, I was looking to minimize reliance on external services and JS. Luckly, there’s a great Python library for webmention handling with Flask support: Fabio Manganiello’s webmentions.
The blacklight/webmentions library allows me to bind a WebmentionsHandler to my Publ/Flask app to enable it to
recieve webmentions. The downside of this is it makes my Publ site stateful. I have to backup my webmentions db,
but that’s a fair tradeoff for my purposes. The webmentions library also comes with webmention rendering functions and
overridable templates. I don’t really like inline CSS, so with keeping with my current minimilist inclinations, I
overrode them. TDB if what I did actually works…
Feed your head
This was a fun rabbit hole to fall down. I look forward to participating in and exploring more of the IndieWeb community. It may not be a silver-bullet, but hopefully it will offer some reprieve from the increasingly enshittified Internet.