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. From what I’ve seen so far, rhe IndieWeb kind of reminds me of the early world wide web (i.e. a web of interconnected documents; not centralized platforms) with simple 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 IndieWeb 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. From what I’ve seen so far, rhe IndieWeb kind of reminds me of the early world wide web (i.e. a web of interconnected documents; not centralized platforms) with simple 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 IndieWeb 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 IndieWeb website. There are some platforms that are probably great for this, such as good ol' 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 like Hugo. Howeber, I realized if I used these, I’d probably have to depend on external services and JS for WebMentions. I was just about set on rolling-my-own CMS 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. And because it’s a Flask app, I can add whatever custom endpoints I want to app.
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 and get a /webmentions
endpoint. The downside of this is it makes my Publ site stateful. I have to backup my webmentions db,
but that seems like a fair tradeoff to me. 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. The IndieWeb may not be a silver-bullet, but hopefully it will offer some reprieve from the increasingly enshittified Internet.
fluffy