Implementing IndieWeb on your personal Drupal site, part 1

Laying the foundations for POSSE

Troglodytes troglodytes in Lego print with reduced color palette.

This is my version of the steps you need to take to make your site part of the indie web community. Swentel helped me getting it all setup on this here Drupal site using his indieweb module. It’s all a bit complicated still, so this is mostly me trying to retroactively understand what’s going on.

As it says on the site, the IndieWeb is a people-focused alternative to the corporate web. Its main tenets:

  1. Ownership – your content is yours, it should not belong to a corporation.
  2. Connection – starting from your own site you can share your content to all other services.
  3. Control – post what you want, in the format you prefer, using your own URLs that you keep permanent.

While 1 and 3 are essential and relatively easy to achieve (use your own domain and post your content there), it’s number 2 that is the most alluring.

Owning your stuff and being able to share it across multiple platforms combines ownershop with reach. This is what “POSSE” is all about: Publish (on your) Own Site, Syndicate Elsewhere. Drupal lead Dries Buytaert has written several posts outlining his POSSE plan.

Getting started

This “Connection” part of indieweb publishing is also the most complicated. There are quite a few moving parts to getting it all up and running.

For Drupal sites, the setup for the community/sharing/syndication parts of indieweb publishing has gotten much more accessible with the release of the IndieWeb module created by swentel. It doesn’t necessarily reduce the number of things to set up, but it provides a centralized UI for all of them: Webmentions, Microformats, Feeds, Micropub, IndieAuth and Microsub.

Before going over the details of configuring the indieweb module itself, we have to take care of some basics first.

Introduce yourself (right on)

To own your content on the web, you have to establish that you are in fact, you. That’s why IndieWeb starts with having your own domain and posting some initial content there. Important part of this initial content is a specific bit of HTML that establishes you as the author and owner of things published on this particular domain:

<a class="h-card" href="http://www.yoroy.com"><img src="/photo.png" alt="This is me" /> Roy Scholten</a>

The specific part here is that “h-card” class added to the anchor tag. This “h-card” is one of a collection of so-called microformats. With microformats you give more structure and semantics to information presented in HTML. In this case, h-card is the microformat to use for publishing information about people or organisations. We’ll need to add other microformats to (blog) posts you publish on the site, but that’s for later.

To do in Drupal

The indieweb module does not (yet?) handle adding this information to your site. Add your version of the HTML snippet above to a (new or existing) Drupal block. Place that block to be visible on your homepage. The site footer or maybe a sidebar are obvious places you can put it. Mine’s in the footer below.

You can check if all is fine with https://indiewebify.me/validate-h-card/. Enter your domain name there and it will report back with what it found and suggest additional elements you could add to enhance your h-card.

Even without posting any other content to your own site, you now have your own space on the indie web and setup your identity in a way that you own and control.

Next: add links to your existing social media accounts

You’ve seen those signup forms that let you create an account by using your existing Google, Facebook or Twitter account details. In this step, you configure your own domain to be your IndieAuth identity. This lets you use your own domain to sign in to other sites and services.

There are not many sites outside the indieweb circles itself that offer this, I think. It’s still useful to do this though. You’ll likely want to use some of these indieweb services, especially to automatically share (links to) your content on other platforms like Twitter or Facebook.

To do in Drupal

Detailed instructions are here. In short:

Add links to your other profiles and add the rel="me" attribute. Might as well add this to that h-card block you created in the first step. For example:

<a href-"https://www.twitter.com/royscholten" rel="me">@royscholten on Twitter</a>

If you have a Github account, that’s also a good one to add.

To do on the external sites you link to

Link back to your homepage from your profile page on these services. The indieweb wiki has direct links to edit your Twitter and Github profile.

Then, try logging in to indieweb.org to see if it all works.

So far, so good,

So what? By establishing your identity on your own domain you stake out your own spot on the internet that you control. With this set up, you have created an environment for publishing on your own site and syndicating elsewhere.

Next time: configuring the indieweb module to start sending and receiving webmentions, the indieweb catch-all term for comments, likes, reposts and the like.