Jayeless.net

IndieWeb

IndieWeb(external link) is a philosophy and movement, the core goal of which is to remain in control of one’s own presence on the Internet. It’s about encouraging people to keep up their own personal websites, and therefore be independent of the whims of the major tech giants. It can be seen as a variant of the Small Web concept.

I first came across the IndieWeb idea in November 2020, and it immediately appealed to me. Here’s what I wrote about it in a journal entry when I first discovered it:

Basically, the concept of the IndieWeb is that you should have ownership of your own content, making its canonical location your own site. However, you can also use modern technologies to syndicate out, to Facebook or Twitter or Instagram or wherever. Basically, post once, with your own website as the first-class citizen, then crosspost to the social media silos where most people actually are these days. Not only that, but with webmentions, you can also backfeed comments and interactions from the silos back to your own site.

In line with that, I use this site as my personal online home. I syndicate my blog posts out to Micro.blog, and I usually crosspost them manually to Mastodon (and occasionally the photo posts to Instagram, because people I know IRL follow me there). If I post something first to Mastodon, or now to my status.lol account(external link), I copy them back here afterwards. I treat my own site as the “canonical” copy that I count on staying online long-term, while I treat social media as fundamentally ephemeral. This is now the primary place I post book reviews, my thoughts on movies and TV shows… basically anything that I used to instead post across an array of different silos. I use the static site generator Hugo to make this site, because it generates plain HTML pages that I can upload anywhere – and nothing can break, no databases can get corrupted – maximising longevity, which is another IndieWeb principle.

Principles

  • Own your data: Whatever you post online, it should remain under your control. This means not only controlling where it is posted (e.g. to your own site) but also maintaining access to it over time. For example, if you decide to switch CMS, your data should be in a format where it can be easily exported and imported to the new CMS without loss. You don’t want to sink your data into a “black box” where you’re beholden to whoever owns or knows how to operate the box.
  • Own your domain, and use it as your primary identity: This is important because a domain name is portable. It means you can change platforms or web host freely, point your existing domain name at the new site, and anyone who knows you will still be able to find you – something that doesn’t work the same way if your primary online presence is Twitter and then you quit, or if it’s Mastodon but your server shuts down and you have to switch to a new one, etc.
  • Syndicate or crosspost: Assuming you want to keep your presence on social media, you’ll probably want to syndicate or crosspost your content to both your own website and the social media silos where your friends or contacts are. The gold standard is POSSE, where you post to your own website first and then syndicate your posts out. An alternative is PESOS, where you post first to social media and then copy the posts back onto your own site. Either way, a strategy of syndication or crossposting means your content can be both in a location you control, and where it can reach people on social media.

A longer list of principles can be found on the IndieWeb wiki(external link), but the above are the main ones for non-programmers who want to take part in the IndieWeb.

Web Standards

  • IndieAuth(external link): Lets you log into sites that support it (which are mostly IndieWeb sites) using your own domain name. Depends on OAuth, which means you need to have an account on a site that’ll act as an OAuth authenticator (for me that’s GitHub), and include a link to your profile on that site on your site’s front page with the attribute rel="me".
  • Webmentions: An open standard for sending “interactions” on others’ posts (like replies, likes, bookmarks, etc.).
  • Micropub: A specification for posting to your IndieWeb blog (or microblog). To use Micropub to post to your site, you need two pieces: a Micropub client, to create and send the posts, and a Micropub server, to receive the posts, translate them into the form your site expects, and save them.
  • WebSub: A protocol for getting real-time notifications of people’s posts; doesn’t seem to be in wide use.
  • Microsub: A proposed standard for a new generation of social readers.
  • Microformats(external link): Broader than just IndieWeb, but this is about adding classes to HTML elements to signify the information they carry (e.g. a <div> containing the body text of your blog post might get the class e-content, while a <span> containing your name might get p-author). Using these correctly is important for things like getting webmentions to send and display as intended.

Ways to Create an IndieWeb-Enabled Site

Firstly, here’s what I’ve done. I’ve used Hugo to create this site, and made my own theme which incorporates the appropriate microformats. I can post to it using the Micropub server Indiekit(external link), but usually I just use Hugo from the command line and manage my source files in the editor TextMate. Webmentions are sent via Webmention.app(external link), which is triggered once an hour (if there’s been a new post) by an IFTTT applet. To receive mentions, I rely on Webmention.io(external link) and display them with the Webmention.js(external link) snippet. I also use Bridgy(external link) to “backfeed” interactions from social media as webmentions to my site.

But that all involved a lot of manual setup and some parts of it are a bit janky (IFTTT I’m looking at you). There are other, easier options out there if you want to join in on the IndieWeb, particularly if you don’t have a lot of technical experience and want something a bit more end-user friendly.

  • Micro.blog(external link): On top of being an excellent IndieWeb-aware blogging platform, this site has a delightful community. It has IndieAuth enabled, you can use Micropub to post to it, it offers in-built POSSEing, and it can send and receive Webmentions but only replies (the actual Webmention standard also includes likes, bookmarks, and suchlike – Micro.blog doesn’t support these). It also offers an in-built Goodreads replacement.
  • Wordpress(external link) with the IndieWeb plugin(external link): If you’re comfortable with self-hosting Wordpress, plugins exist to add pretty much all IndieWeb technologies and this specific plugin has ’em basically all in one.
  • Known(external link): Can be installed on shared hosting (i.e. the same kind of environment as Wordpress) and has IndieWeb features all built into it OOTB, but development has slowed to a serious crawl in the last few years.
  • Pine.blog(external link): A social reader that lets you create your own blog there, or otherwise will integrate with an existing Wordpress blog. As of time of writing the development blog hasn’t been updated since late 2020 though.
  • GoBlog(external link): Software you can install on your own VPS that’ll let you run multiple blogs, has full IndieWeb and ActivityPub (Fediverse) support, and is under active development.
  • Microblog.pub(external link): Similar to GoBlog, with both IndieWeb and ActivityPub support, but perhaps is weighted more to the “social media” side than the “blogging” side. Development on this one has occurred in bursts separated by long periods of inactivity.
  • Streams(external link): An IndieWeb blogging platform I don’t know too much about, but it has a running install at 10Centuries(external link) which has a corresponding social platform at nice.social(external link) (sort of how like Micro.blog has blog hosting and its timeline/social features).

Critiques of the IndieWeb

The main thrust of criticism I’ve seen about the IndieWeb is that it’s hard for people who aren’t already programmers or web developers to implement it fully. I think this is true, to a point. The fundamentals of posting to your own site, in a format you control, under your own domain name, isn’t too bad (imo). What’s trickier is implementing the various IndieWeb standards, like webmentions or (expert mode difficulty this next one) Micropub. That’s unless you use a platform that takes care of all that stuff for you, and I linked to a number of those above. But then those have their own trade-offs, which might include limited theme customisation, limited control over permalinks, limited control over post types, etc.. So if you’re not a programmer who’s capable of implementing everything to your liking, you kind of have to pick and choose what’s most important to you. But certainly I think if you update your site by some mechanism other than Micropub that doesn’t make your site any less “Indie­Web”, haha.

A similar but slightly different vein of commentary I’ve seen is that the IndieWeb community largely consists of affluent tech workers (who are disproportionately Western, white and male) and not necessarily aware of how far “just buy your own domain name” or “just spin up a $5/month VPS” are out of reach for many people in developing countries. This isn’t a “criticism” per se, more of an observation. People who make this point often seem to prefer the Fediverse’s vision of decentralised social media. Honestly I can see both sides on this one. However, it’s worth noting that you can have an IndieWeb site without a VPS, and a subdomain on a site you expect to be long-lived (like Github Pages) can do in a pinch, if you can’t afford your own domain but want your own site. (And I mean, the IndieWeb community doesn’t really have the power to make domain names free.)

Finally, I’ve also seen some criticism of how much IndieWeb effort goes into recreating the features of mainstream social media (timelines, “likes”, short & rapidfire posts ahead of long thoughtful ones, etc.). Some people feel that these features are actively detrimental to mental health, and that the Indie­Web should try to envisage a different way for the social internet to work. Honestly I feel like this one is something of a “different people want different things” kind of situation. Indie­Web sites don’t have to be micro­blogs with features like likes or reposts. If you want a traditional blog, or a digital garden, or whatever, you can make one and it can still be “Indie­Web”.

Did you know? I’ve posted other content tagged ‘IndieWeb’! If you want to see what else I’ve written on this topic, you can do so here.