From 0710d065591ad5d2f4da8537728cb7cfd77def03 Mon Sep 17 00:00:00 2001 From: Devon Campbell Date: Thu, 20 Jun 2024 22:23:02 -0400 Subject: [PATCH] Add Webmentions blog post --- .../implementing-webmentions-is-a-pain.md | 24 +++++++++++++++++++ .../implementing-webmentions-is-a-pain.md | 23 ++++++++++++++++++ src/index.md | 2 +- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/blog/implementing-webmentions-is-a-pain.md create mode 100644 src/feed/implementing-webmentions-is-a-pain.md diff --git a/src/blog/implementing-webmentions-is-a-pain.md b/src/blog/implementing-webmentions-is-a-pain.md new file mode 100644 index 0000000..f0a5787 --- /dev/null +++ b/src/blog/implementing-webmentions-is-a-pain.md @@ -0,0 +1,24 @@ +--- +title: Implementing webmentions is a pain +layout: article.njk +date: git Last Modified +tags: post +excerpt: Facebook, Twitter, and the others have taken control of the web by making it easy for regular people to interact online. Our answer for interactions people can own is Webmentions, but they have an Achilles' heel… +--- + +I just finished implementing [Webmentions](https://indieweb.org/Webmention) on this blog! At least, I think it's done. It may not be perfect, but I'll refine it as I go. + +I've read lots of posts about people implementing it. Many of them talk about how it's actually very easy. That wasn't my experience implementing it. + +If you want to see what it took, check out the commits in the repo. First, I [added necessary microformats and set up sending of Webmentions](https://codeberg.org/RadDevon/devon.lol/commit/ad55411e21a64c469290a39858e11bcbf8287403). Then, I [added a domain author card](https://codeberg.org/RadDevon/devon.lol/commit/df998d54c2db45bc814ef47af8312393cbdb83e1). After that, I made the site [receive Webmentions](https://codeberg.org/RadDevon/devon.lol/commit/f46436578a00b77417415e1eff4c0f4349531f15) and [fetch incoming webmentions](https://codeberg.org/RadDevon/devon.lol/commit/30350030aa9d6d4be660a80fd24a94b96ad4d9db). The last step was [displaying the Webmentions](https://codeberg.org/RadDevon/devon.lol/commit/91326c03fc83070a0b048730be6a6e2e419cd21a). I could have done this in fewer commits, but that's not really the way I do things. 😅 + +I worked as a web developer for almost 10 years. Admittedly, I was never a spectacular one, but I was good enough to get paid for it for the better part of a decade. Even so, this was a tricky implementation. I'm glad I had some help from better developers than me: + +- [Stefano Verna's Webmentions implementation](https://squeaki.sh/p/the-dumb-guide-to-join-the-indieweb) was the most complete and easiest to follow. I made some changes to the microformats to better mesh with my existing markup. I wanted to change as little as possible because those changes mean CSS changes too. The checks all passed though, so it seems to still be OK. +- I found [Robb Knight's post on implementing Webmentions in Eleventy](https://rknight.me/blog/adding-webmentions-to-your-site/) helpful, particularly for the URL filter and their Webmentions Nunjucks template which served as an inspiration for mine. + +I'm not whining for the sake of whining, but knowing how difficult it is to implement, I'm concerned that it's not going to be very useful since I doubt many other people have gone to the trouble. That seems like a problem. + +We lost the web to Facebook, Twitter, and the rest because making things on the web was hard and they came in giving people an easy on-ramp. Now here we are in 2024 trying to take it back, and our answer is that, if you want to interact with other web sites, just complete these 13 simple steps, sign up for multiple services, integrate with APIs, build a UI… what are we doing here? + +But now I have it and, as long as neither of the services I used in my implementation close up shop or make breaking changes, I have it. I own my implementation. It's a lot of trouble, but I think it's worth it. Now, we just need to make it achievable for people who want their identities but can't overcome the barriers on their own. diff --git a/src/feed/implementing-webmentions-is-a-pain.md b/src/feed/implementing-webmentions-is-a-pain.md new file mode 100644 index 0000000..541aff3 --- /dev/null +++ b/src/feed/implementing-webmentions-is-a-pain.md @@ -0,0 +1,23 @@ +--- +title: Implementing webmentions is a pain +relativeUrl: /blog/implementing-webmentions-is-a-pain +date: git Created +tags: feed +--- + +I just finished implementing [Webmentions](https://indieweb.org/Webmention) on this blog! At least, I think it's done. It may not be perfect, but I'll refine it as I go. + +I've read lots of posts about people implementing it. Many of them talk about how it's actually very easy. That wasn't my experience implementing it. + +If you want to see what it took, check out the commits in the repo. First, I [added necessary microformats and set up sending of Webmentions](https://codeberg.org/RadDevon/devon.lol/commit/ad55411e21a64c469290a39858e11bcbf8287403). Then, I [added a domain author card](https://codeberg.org/RadDevon/devon.lol/commit/df998d54c2db45bc814ef47af8312393cbdb83e1). After that, I made the site [receive Webmentions](https://codeberg.org/RadDevon/devon.lol/commit/f46436578a00b77417415e1eff4c0f4349531f15) and [fetch incoming webmentions](https://codeberg.org/RadDevon/devon.lol/commit/30350030aa9d6d4be660a80fd24a94b96ad4d9db). The last step was [displaying the Webmentions](https://codeberg.org/RadDevon/devon.lol/commit/91326c03fc83070a0b048730be6a6e2e419cd21a). I could have done this in fewer commits, but that's not really the way I do things. 😅 + +I worked as a web developer for almost 10 years. Admittedly, I was never a spectacular one, but I was good enough to get paid for it for the better part of a decade. Even so, this was a tricky implementation. I'm glad I had some help from better developers than me: + +- [Stefano Verna's Webmentions implementation](https://squeaki.sh/p/the-dumb-guide-to-join-the-indieweb) was the most complete and easiest to follow. I made some changes to the microformats to better mesh with my existing markup. I wanted to change as little as possible because those changes mean CSS changes too. The checks all passed though, so it seems to still be OK. +- I found [Robb Knight's post on implementing Webmentions in Eleventy](https://rknight.me/blog/adding-webmentions-to-your-site/) helpful, particularly for the URL filter and their Webmentions Nunjucks template which served as an inspiration for mine. + +I'm not whining for the sake of whining, but knowing how difficult it is to implement, I'm concerned that it's not going to be very useful since I doubt many other people have gone to the trouble. That seems like a problem. + +We lost the web to Facebook, Twitter, and the rest because making things on the web was hard and they came in giving people an easy on-ramp. Now here we are in 2024 trying to take it back, and our answer is that, if you want to interact with other web sites, just complete these 13 simple steps, sign up for multiple services, integrate with APIs, build a UI… what are we doing here? + +But now I have it and, as long as neither of the services I used in my implementation close up shop or make breaking changes, I have it. I own my implementation. It's a lot of trouble, but I think it's worth it. Now, we just need to make it achievable for people who want their identities but can't overcome the barriers on their own. diff --git a/src/index.md b/src/index.md index 3c1c3d0..30e8d7c 100644 --- a/src/index.md +++ b/src/index.md @@ -7,6 +7,6 @@ date: git Last Modified **Last updated {{ page.date | formatDatetimeForHumans }}** -This site now both sends and receives WebMentions! +This site now both [sends and receives WebMentions](/blog/implementing-webmentions-is-a-pain)! The Arc browser scares me. All the AI features and their insistence on referring to users as "members" just makes me feel like they're poised to make changes I couldn't live with. I decided to get ahead of them and [find an alternative browser](/blog/web-browser-review-06-2024).