e4dt4n

IndieWeb, Publ, and Webmentions

Tags:

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.

1 response

  1. In reply to: Re: IndieWeb, Publ, and Webmentions

    Nice, I’m really happy to see someone else using Publ! There’s a lot of stuff that I really should do to modernize it, since you may have noticed that it’s stuck on an older version of Python and also that its Markdown engine is kinda… troublesome at this point. I’d also really like to improve the way that footnotes work so that it also supports things like sidebar or inline asides.

    Having built-in support for webmention and such would also be nice; I always run into the limitations of what I can do with webmention.io/webmention.js and I have some big ideas about how to make a better comment system.

    Anyway hopefully I can get back to working on this stuff. My priorities have been elsewhere but I do want to improve things for everyone.