Sam Wilson's Website

T14: indieweb

Wikidata logo. Wikidata item Q18216860: IndieWebmovement to self-host, customise, and self-test web content and software
instance of
  • website
  • virtual community
  • online encyclopedia
official website URL
IRC channel URL
significant event
  • IndieWebCamp
Commons category
  • IndieWebCamp
  • Property type 'commonsMedia' not supported yet.
founded by
  • Tantek Çelik
Mastodon instance URL

The indieweb is that part of the web that is built by hackers and enthusiasts, which doesn’t always work perfectly but which is upholding ideals of openness and sharing. It’s what the web felt like in the early 2000s, and it’s only gotten better since then. I’ve always done stuff with the indieweb, but only in about 2018 did I become more aware of the modern movement (and the name). In about 2020 I started building Twyne, which is my personal portal to the indieweb.

This tag name is lowercase, because I like the idea of it being a casual non-proper description rather than some authoritative protocol.

RSS feed icon. RSS feed for the "indieweb" tag

Authority Control:
— Quora topic ID: IndieWeb — GitHub username: IndieWeb — Freebase ID: /m/011dz5tk — Library of Congress Control Number (LCCN) (bibliographic): lcwaN0027574

  1. I seem to be borking around with my website. That’s the point of having a website though, isn’t it?

  2. The indieweb gift calendar is happening again now. It’s an annual thing in which people working on indieweb stuff (software, documentation, whatever) get something done on a day in December, and put it on the calendar for others to enjoy. The definitely of ‘done’ is pretty flexible.

    I’m going to try to get the new location-estimation feature of Twyne done and dusted. It needs a bit more work, including better documentation, and then a bit more testing. But hopefully before xmas I’ll get there.

  3. There’s an interesting indieweb discovery tool called, from Andreas Gohr (of Dokuwiki fame):

    I spent the weekend scratching another personal itch and released it as a mini project at

    A recent post on hackernews asked users to share their personal sites with the world and the response was huge. Despite what people say, personal homepages and blogs are not dead.

    In fact there seems to be a certain fatigue with the big social media sites and kind of a renaissance of small scale, self hosted websites.

    With the website I want to collect those sites and make them discoverable using good old randomness.

  4. I’ve been trying to get some work done on how my website does Posse, because I want to be able to pushto other sites as easily as possible. I’ve had it working well with Wikimedia Commons for ages, and find it much quicker than othet means to get my photos uploaded there. Now I’m trying to get it sorted for Flickr, and (probably easier) for Twitter.

    The general process is to a) edit a post to satisfaction; b) open it in one of the Posse forms and change any metadata as appropriate (this doesn’t get saved locally); c) send the post to the remote site. This will upload the post and also create a local syndication record pointing to its remote URL.

    So far so good, but it’s really a post-by-post operation — I wonder if its worth figuring out a bulk cross-posting system?

    The other part of the Flickr Posse feature will be to do a bit more work on PhpFlickr hopefully including releasin a new major version (with all the deprecated code removed at last).

  5. It’s Tuesday morning after a long weekend and I’m back at my desk. It was a long long weekend for me, because I got to go to Rottnest on Thursday and Friday. Such a relaxing place! There is some great calmness in the small rolling grassy hills, and it feels amazing that one can be sitting on Vlamingh lookout within an hour of leaving home, and have a 360° view of that lovely little island.

    I’ve been trying to update the OSM map of Rottnest (as usual) and it’s getting closer and closer to some sort of ‘done’. Not that it ever will be of course, because things change, and the usual thing with OpenStreetMap is that the more you map the more you see needs to be mapped. But at least things like the walking trail relations are getting closer. There’s also some contention with some features: someone is adding features from 1941, and marking them as current. For example, way 1004828012 is an oval marked landuse=military, but that’s not correct. Actually, it could barely be called an oval any more (it’s a reasonably flat area of sand dunes now, mostly re-vegetated with grasses). I’ll keep reaching out to the editor and talking about the best way to sort it out.

    Rottnest is a great place to walk, and my new tracking map (which soon will have ten years of my walking on it) is slowly filling up with blue dots. I feel slightly silly for putting lots of coding effort into tracking myself while at the same time objecting strongly to Google’s products that want to do the same, but at least the philosophical stance makes sense to me and it is rather fun seeing the map. The indieweb ideal is that one owns one’s own data, and in my case that means I also own a bespoke and slightly wonky system of storing it.

  6. There’s an item on Hacker News today about Slack (and the discussion is generally about how bloody annoying it is and how much of a blackhole for information). Someone asks^1 if anyone’s used WordPress’ P2 theme, which is something I tried many years ago and quite enjoyed.

    But I’ve always wondering what the Indieweb version of that would be like: the distributed, RSS-based, Webmention-updated news feed of what people are working on. Replies and all. I guess it’s a bit too clunky, because the idea seems pretty obvious.

  7. I think the indieweb is a bit like (what I imagine about) ham radio: to get into it, you have to first build your rig. A personal website is a thing to be tinkered with and built over time, but there’s a definite watershed point at which it becomes a usable tool to talk on the indieweb. (My own site is not quite there yet!) I’m hopeful to reach the goal of being able to both read posts from others and reply to them, all without leaving my own site. This seems like it’ll follow something like the following process (if wanting to write about a given topic such as ‘indieweb’):

    • I write a post on my website and add a syndication to some aggregator, e.g. .
    • Adding the syndication triggers a webmention to be sent (webmentions will also be sent for any URLs in the post, but the syndication is important because it’s what the aggregator will look for).
    • The aggregator will receive a webmention about the post, and add the post to its feed. This give the post its own URL within the aggregator, which then needs to be used to update the syndication on the post.
    • I follow various feeds within my website, such as this aggregator, and so I can see my post appear there after some amount of time.
    • If I see a (different) post that I want to repost or reply to, it is first copied into my website (with all its own metadata). This creates a new syndication of that post, and I’m not really sure how one tells that post about it (I guess a webmention, but how’s it know that it’s a mention of itself?).
    • This post is then also included in my own outgoing feed, but it only ever shows its original URL so no one should ever end up reading it on my site (unless they’re actually on my site). This means that the same post can show up in different feeds, but that’s the point.
    • A reply or repost is a new post on my site, with its own new URL and other metadata, and in other ways operates exactly like any other post.
    • If someone replies or reposts elsewhere, that post will be picked up in the same way (i.e. it will be in some feed, and so can be copied to my site as before).

    There are lots of parts of this that I don’t really know yet, but it feels like there’s a functioning system in there somewhere. The major issue I see is the one of copying other posts into my site — this feels a bit rude in some ways, and doesn’t handle edits at all, and doesn’t have a solid way of dealing with embedded posts such as images. The former I think can be solved by very prominently linking to the original and not showing the full text, and the latter by also importing images as their own posts.

  8. Everyone says you should’ve build your own blogging platform, because then all you’ll ever write about is the platform itself and no one wants to read that. It’s a fairly accurate idea, unfortunately. In my defence, I’m actually finding that having my own blogging (and photo) platform is saving me lots of time on things like copying photos to Commons and finding duplicates — so even if no one reads any of this, it’s still been worth making this thing.

    Anyway, one of the reasons I’ve always avoided building my own platform is that I’ve been worried about security. I’m feeling a bit better on that front now, because of using a bunch of common Symfony patterns and libraries, and also now because I’ve added two-factor authentication to it.

    This means that, after registering a new account and logging in, users are not able to view any page on the site until they’ve set up 2FA. Instead, they’re presented with a QR code, which they scan with a phone app such as Google Authenticator, and that app gives them a six-digit code that is entered in a text box under the QR code. This info is saved against their user account (and for simplicity, it’s only possible to have one such pairing at the moment), and next time they log in they need to provide three pieces of information: their username, password, and a six-digit code from the app.

    There are plenty of issues with my implementation: it forces 2FA; doesn’t have backup codes; doesn’t allow multiple devices; can’t easily be reset; and the login flow is likely quite confusing. I’m happy enough at the moment because none of these are security issues, and I’ll slowly work my way through fixing them. Primarily, I wanted to make the site more secure, and as all the users are either me or people I know personally, I can handle any usability issues.

    I think this is one of the great things about indieweb development: you build what you need, as you need it, and you don’t have to cater to some unknown simplified user. I do try to build everything here as general and reusable as possible (such that it should be possible for someone to set up their own Twyne-powered site, although I dare say that’s reasonably unlikely), but I no longer think it’s worth compromising on features that I actually want.

  9. I’ve been ignoring Twitter for a long time now, but I sometimes wonder if I should be cross-posting from my own site.

  10. I’ve recently added support to my website for linking posts’ tags to Wikidata entities. This means that each tag (which has it’s own URL at where nn is the tag ID) can be linked to a Wikidata ID, and have a little table of facts displayed. This means that tags are no longer just strings, but are firmly linked to a meaningful concept — a tag such as ‘York’ is definitely the town in Western Australia and not the one in Yorkshire. No two tags are allowed to be linked to the same Wikidata item.

    The other part of this work was adding a lookup widget to the tag entry form field. Before, it was just a text box and tags had to be entered with semicolons separating them. Now, you start typing and a dropdown appears with suggestions firstly from existing tags on the site and then below them with labels and descriptions of Wikidata items. It makes entering new tags much easier.

    It’s great fun going back through my archives and linking all the tags, although it’s also highlighting the fact that I often create duplicate tags (e.g. misspellings, or Fremantle Railway Station vs Fremantle Train Station). To add a tag-merging system I first need to add a system of tracking and redirecting old URLs (something I should’ve added ages ago when I added the ability to delete duplicate posts).