← Home

Joining the IndieWeb

The IndieWeb is a set of standards and practices built around a simple premise: you own your content. It lives on your domain. Other platforms — Bluesky, Mastodon, whatever comes next — are distribution channels, not the source of truth.

This site is now part of the IndieWeb. Here is what that means and what it took.

The core idea

Most personal publishing flows the wrong way: you write on a platform, the platform owns the URL, and if the platform dies or changes its terms, your content goes with it. POSSE — Publish on your Own Site, Syndicate Elsewhere — reverses this. The canonical URL is always yours. Copies go out to other networks from there.

IndieWeb doesn’t require a specific stack or service. It’s a collection of small, composable standards that work over plain HTTP. A static Astro site qualifies just as well as a WordPress blog.

rel=me and identity

The first building block is rel=me: a way to declare that two URLs represent the same person. Add it to links pointing at your profiles elsewhere:

<link rel="me" href="https://github.com/adrian-altner" />
<link rel="me" href="https://bsky.app/profile/adrian-altner.de" />
<link rel="me" href="https://www.instagram.com/adrian.altner/" />
<link rel="me" href="https://www.linkedin.com/in/adrian-altner/" />

For the link to count, the other side has to confirm it. GitHub does this by letting you set your website URL in your profile — if https://github.com/adrian-altner links back to adrian-altner.de, the circle closes and the identity is verified.

Bluesky is a special case. The verification doesn’t go through rel=me HTML — it goes through the AT Protocol DNS or HTTPS well-known mechanism. Setting your custom domain as your Bluesky handle (@adrian-altner.de) is the verification. Once that’s in place, the rel=me link to your Bluesky profile is recognised.

h-card: machine-readable identity

rel=me establishes that you own your identity. h-card describes who you are in a format machines can parse. It’s a Microformats2 class pattern applied to existing HTML:

<div class="h-card">
  <img class="u-photo" src="/avatar.jpg" alt="Adrian Altner" />
  <a class="u-url p-name" href="https://adrian-altner.de">Adrian Altner</a>
  <p class="p-note">Key Account Manager IT by day, developer and photographer by hobby.</p>
</div>

The classes encode semantics without adding any visible markup. u-url marks the canonical URL, p-name marks the display name, u-photo marks the avatar, p-note is a short bio. Any MF2 parser — or IndieWeb service — can extract a structured identity from this.

The avatar needs to be at a stable, unprocessed path. Astro hashes processed images, so a copy lives at public/avatar.jpg to guarantee a permanent URL.

Validating it works

indiewebify.me checks all of this. It follows rel=me links, confirms the back-links exist, parses the h-card, and reports on what it finds. All three sections came back green after the first deploy.

The next step is making individual posts machine-readable. That’s what Microformats2 h-entry is for.

← Home