Leveraging IndieWeb to Avoid Storing Others' Data
Owning your own data is great. I’ve been using this website as the central IndieWeb point of my online life for over five years, and I love it. However, the joy of owning your own website comes bundled with great responsibility: as the website owner, I am responsible for what’s on my site and for what’s stored “under the hood” to make this website work.
It’s not a huge issue as long as I only post my own content on my site, but the cool thing about the IndieWeb — as opposed to “regular” Web — is its social aspect, the ability to interact with other people running other websites. To do that I usually need to put some of the data that belongs to other people onto my website. And that always makes me uncomfortable.
Let’s say I wanted to mention Aaron Parecki1, one of the prominent IndieWeb leaders, on my site. Of course, I could simply make a link to his website, mark it up as a person mention and call it a day, but it would look incredibly dull. If it was on a social network like Twitter or Facebook, there would be a popup with Aaron’s profile picture and some information from his profile. I want my mention of Aaron to look fancy, too. OK, I don’t know how to make a fancy popup card (yet), but I could at least have a picture of him near his name, the way it’s done when a user is mentioned on the IndieWeb wiki.
I could parse the representative h-card Aaron has on his website and get the necessary information and the link to his profile picture, and link to it directly (like IndieWeb wiki does), but that would break if Aaron were to change his profile picture URL in the future. To avoid this I’d have to copy the picture itself to my website, but then it wouldn’t update if Aaron updated the picture on his site. Obviously, if I wanted to show any other information from his profile I’d have to save that information somewhere on my site, and it wouldn’t get updated when Aaron updates his profile.
There are legal considerations, too. It looks like every jurisdiction on the planet has some law describing what the personal data is and how it is supposed to be stored. I don’t want to break any law if I can help it, but I can’t realistically attempt to wrap my head around all that legislation and make sure I do nothing wrong. After all, I simply don’t want to store Aaron’s data on my website, that’s what his website is for!
All it takes is a simple script
and the IndieWeb-glue proxy server I put up3. You’re welcome to use it, too, if you want to. It doesn’t do much yet, but it is, of course, open-source, the code is available on GitHub, and everybody who feels like joining in on development is extremely welcome. And, by the way, I need to thank Ruxton for calling me on some mistakes I did early in the development process.
Yay! That mention of Ruxton shows up with a photo, too! That’s definitely a nice start.
One day I’ll be showing webmentions in the same manner…
Aaron, I hope you don’t mind I chose you for this example. If you do, I’m sincerely sorry and will re-write this post to mention someone else instead. ↩︎
There used to be a link to the Telegram group (where it all took place) here, but it is bridged to a Matrix room now. Since Matrix is better than Telegram (if only because you can have a peek without registering an account), that’s where the link is pointing now. ↩︎
It was running on Heroku for two years, but in 2022 Heroku decided to scrap the free tier, so I moved it to the same VPS I host this website on. ↩︎