I'm toying with the idea of splitting my #IndieWeb notes off my main site/repository and hosting them separately on a subdomain.
Has anybody else taken this approach? Is it worth the up-front overhead of copying/basically building a second site to house them?
{
"type": "entry",
"author": {
"name": "@keithjgrant",
"url": "https://front-end.social/@keithjgrant",
"photo": null
},
"url": "https://front-end.social/@keithjgrant/110193169281170101",
"content": {
"html": "<p>I'm toying with the idea of splitting my <a href=\"https://front-end.social/tags/IndieWeb\">#<span>IndieWeb</span></a> notes off my main site/repository and hosting them separately on a subdomain.</p><p>Has anybody else taken this approach? Is it worth the up-front overhead of copying/basically building a second site to house them?</p>",
"text": "I'm toying with the idea of splitting my #IndieWeb notes off my main site/repository and hosting them separately on a subdomain.Has anybody else taken this approach? Is it worth the up-front overhead of copying/basically building a second site to house them?"
},
"published": "2023-04-13T19:32:06+00:00",
"post-type": "note",
"_id": "36530133",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@jackie",
"url": "https://social.linux.pizza/@jackie",
"photo": null
},
"url": "https://social.linux.pizza/@jackie/110189741022792586",
"content": {
"html": "<p>New Blog Post! Resources to find cool indie sites <a href=\"https://social.linux.pizza/tags/indieweb\">#<span>indieweb</span></a> </p><p><a href=\"https://jackie.technologists.cloud/posts/cool-indie-sites/\"><span>https://</span><span>jackie.technologists.cloud/pos</span><span>ts/cool-indie-sites/</span></a></p>",
"text": "New Blog Post! Resources to find cool indie sites #indieweb https://jackie.technologists.cloud/posts/cool-indie-sites/"
},
"published": "2023-04-13T05:00:15+00:00",
"post-type": "note",
"_id": "36512479",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-04-12T22:21:26-0400",
"url": "https://martymcgui.re/2023/04/12/indieweb-dev-note-microsub-isnt-a-general-purpose-storage-api/",
"category": [
"IndieWeb",
"micropub",
"Microsub",
"YouTube",
"feed",
"RSS"
],
"name": "IndieWeb dev note: Microsub isn't a general-purpose storage API",
"content": {
"text": "This is probably relevant only to very few people and likely only for myself the next time I think up an idea along these lines.\n\n Obligatory background\n \n\nI'm a heavy daily user of IndieWeb-style social readers. For my setup, I run my own copy of Aaron Parecki's Aperture, a backend service which manages my subscriptions, fetches feeds, and organizes everything into \"channels\". On my reading devices, I use an app like Aaron Parecki's Monocle, which talks to Aperture to fetch and display my channels and the entries for each, mark things as read, and more.\nThese tools speak a protocol called Microsub, which defines a simple HTTP protocol for all those things Monocle does. It specifies how a client can ask a server for channels, list entries in a channel, mark things as read, delete things, add new subscriptions, and so on.\nOne bonus feature that Aperture has, but that is not part of the Microsub (with an \"s\") spec, is that in addition to subscribing to feeds, you can also push content into channels, using a different protocol called Micropub, Though they are off by one letter, they do very different things! Micropub (with a \"p\") is a specification for authoring tools to help you make posts to your personal site, with extensions that also allow for searching posts, updating content, and much more. In Aperture's case, Micropub support is quite minimal - it can be used to push a new entry into a channel, and that's it. It's designed for systems that might not have a public feed, or that create events in real time.\nOkay but what's the problem?\nI use Aperture to follow some YouTube channels, so I don't have to visit the distraction-heavy YouTube app to see when my favorite channels update. This is possible because every YouTube channel has an RSS feed! What matters is that a good feed reader can take the URL for a YouTube channel (like the one for IndieWebCamp on YouTube) and parse the page to find its feed (in this case, https://www.youtube.com/feeds/videos.xml?channel_id=UCco4TTt7ikz9xnB35HrD5gQ).\n\n YouTube also provides feeds for playlists, and maybe more! It's a fun way to pull content, and they even support \n push notifications for these feeds via a standard called WebSub\n .\n\nBut! (of course there's a but!) YouTube's feeds encode some useful information, like the URL for a video's thumbnail image, and the description for the video, using an extension of RSS called Media RSS. This isn't recognized by Aperture, and it also isn't recognized by my go-to feed munging service Granary. As a result, while I can see when a new video is posted by the channels I follow, they... don't look like much!\nScreenshot of feed reader Monocle showing YouTube videos. Each entry includes the title and URL of the channel, the title of the video, and when it was posted. And that's it.All I can see is that a given channel posted a video, and the title of the video.\nOkay can we get to the point?\nI'd like to fix this, and my first (wrong) thought was: since Aperture already has these not-very-good entries, maybe I can make an automated system that:\nacts like a Microsub client to fetch each entry from my YouTube Subscriptions channel\n look at each to see if it's missing information like the thumbnail\n for each entry with missing info, look up that info directly from YouTube, maybe via their API\n somehow update the entry with this info.\nAgain, this is ... the wrong mental model. But why? The docs for Aperture, the Microsub backend, gives us a hint when it covers how to write Microsub clients.\n\n Aperture has implemented the following actions in the Microsub spec:\n \nGET action=timeline - retrieve the list of items in a channel\n \nPOST action=timeline - mark entries as read, or remove an entry from a channel\n \nPOST action=search - search for a new feed to add\n \nGET action=preview - preview a feed before following it\n \nGET action=follow - retrieve the list of feeds followed in a channel\n \nPOST action=follow - follow a new feed in a channel\n \nPOST action=unfollow - unfollow a feed in a channel (existing items from that feed are left in the channel, like IRC/Slack)\n \nGET action=channels - retrieve the list of channels for a user\n \nPOST action=channels - create, update, and delete channels, or set the order of the channels\n \n\n Nowhere in that list is the ability to update or even create entries. Those things are outside the scope of the spec. The spec is intentionally narrow in describing how clients can manage channels, subscriptions, and mark read or delete entries pulled from those subscriptions. That's it! And that's good!\n \n \n\n\nRemembering that the \"write API\" I was thinking of was actually Micropub (with a \"p\"), I took a look at the source for Aperture that handles Micropub requests and it does refreshingly few things. It allows creating new entries from a Micropub payload, and it supports uploading media that would go along with a payload. That's it. And that's good!\nAt this point, I thought I could still continue down my wrong-idea road. The automated system would:\nact as a Microsub (with an \"s\") client to fetch each entry from my YouTube Subscriptions channel\n look at each to see if it's missing information like the thumbnail\n for each entry with missing info, look up that info directly from YouTube, maybe via their API\n use Microsub to delete the original entry\n use Micropub (with a \"p\") to create a new entry with all the new details\nThis approach... should work! However, it certainly felt like I was working against the grain.\nI brought this up in the IndieWeb dev chat, where Aaron and Ryan cleared things up. Microsub is intentionally simple, and adding general operations to let clients treat the server like a general data store is way out of scope. Similarly, while Aperture supports some of Micropub, that's a choice specific to Aperture.\nHave we learned anything?\nThe general consensus was that entries should get into a Microsub server like Aperture via feeds. And if the feeds I'm looking at don't have the content I want, I should make a feed that does! I should be able to make a proxy service that:\naccepts a URL for a YouTube channel or playlist feed,\n fetches the feed,\n extracts everything I want from each entry, including thumbnails, and maybe even uses the YouTube API to get info like video length,\n rewrites that in a feed format that Aperture likes better. Probably just HTML with microformats2 to make an h-feed\n\nFor each of my YouTube subscriptions, I'll swap out the YouTube RSS for the new proxied feed - something that the Microsub API is intended to let me automate.\nOne thing I mentioned in the chat discussion I linked above: I default to thinking of feed services like this proxy as \"public infrastructure\" by default - something that has to be on the public web, with all the maintenance and security issues that go along with that.\nHowever, as I self-host my own Aperture instance, I can set up this proxy on the same server and ensure that it only accepts local requests. Fewer public endpoints, fewer problems.\n\n Anyway, maybe I'll get that done and posted about in the near future, but today I just wanted to get these thoughts out of my head and close some tabs!",
"html": "<p>This is probably relevant only to very few people and likely only for myself the next time I think up an idea along these lines.</p>\n<h2>\n Obligatory background\n <br /></h2>\n<p>I'm a heavy daily user of IndieWeb-style <a href=\"https://indieweb.org/social_reader\">social readers</a>. For my setup, I run my own copy of <a href=\"https://indieweb.org/Aperture\">Aaron Parecki's Aperture</a>, a backend service which manages my subscriptions, fetches feeds, and organizes everything into \"channels\". On my reading devices, I use an app like <a href=\"https://indieweb.org/Monocle\">Aaron Parecki's Monocle</a>, which talks to Aperture to fetch and display my channels and the entries for each, mark things as read, and more.</p>\n<p>These tools speak a protocol called <a href=\"https://indieweb.org/Microsub-spec\">Microsub</a>, which defines a simple HTTP protocol for all those things Monocle does. It specifies how a client can ask a server for channels, list entries in a channel, mark things as read, delete things, add new subscriptions, and so on.</p>\n<p>One bonus feature that Aperture has, but that is not part of the Microsub (with an \"s\") spec, is that in addition to subscribing to feeds, you can also <i>push</i> content into channels, using a different protocol called <a href=\"https://indieweb.org/Micropub\">Micropub</a>, Though they are off by one letter, they do very different things! Micropub (with a \"p\") is a specification for <i>authoring tools</i> to help you make posts to your personal site, with extensions that also allow for searching posts, updating content, and much more. In Aperture's case, Micro<i>pub</i> support is quite minimal - it can be used to push a new entry into a channel, and that's it. It's designed for systems that might not have a public feed, or that create events in real time.</p>\n<h2>Okay but what's the problem?</h2>\n<p>I use Aperture to follow some YouTube channels, so I don't have to visit the distraction-heavy YouTube app to see when my favorite channels update. This is possible because every YouTube channel has an RSS feed! What matters is that a good feed reader can take the URL for a YouTube channel (like the one for <a href=\"https://www.youtube.com/@Indiewebcamp\">IndieWebCamp on YouTube</a>) and parse the page to find its feed (in this case, https://www.youtube.com/feeds/videos.xml?channel_id=UCco4TTt7ikz9xnB35HrD5gQ).</p>\n<p>\n YouTube also provides feeds for playlists, and maybe more! It's a fun way to pull content, and they even support \n <a href=\"https://developers.google.com/youtube/v3/guides/push_notifications\"><i>push notifications</i> for these feeds via a standard called WebSub</a>\n .\n</p>\n<p>But! (of course there's a but!) YouTube's feeds encode some useful information, like the URL for a video's thumbnail image, and the description for the video, using an extension of RSS called <a href=\"https://www.rssboard.org/media-rss\">Media RSS</a>. This isn't recognized by Aperture, and it also isn't recognized by my go-to feed munging service <a href=\"https://granary.io/\">Granary</a>. As a result, while I can see when a new video is posted by the channels I follow, they... don't look like much!</p>\n<img src=\"https://media.martymcgui.re/57/47/6a/6d/f300474512cbeebf97a287d55e09310ceba47822479ef15c6f7a3f49.png\" alt=\"\" />Screenshot of feed reader Monocle showing YouTube videos. Each entry includes the title and URL of the channel, the title of the video, and when it was posted. And that's it.<p>All I can see is that a given channel posted a video, and the title of the video.</p>\n<h2>Okay can we get to the point?</h2>\n<p>I'd like to fix this, and my first (wrong) thought was: since Aperture already has these not-very-good entries, maybe I can make an automated system that:</p>\n<ul><li>acts like a Microsub client to fetch each entry from my YouTube Subscriptions channel</li>\n <li>look at each to see if it's missing information like the thumbnail</li>\n <li>for each entry with missing info, look up that info directly from YouTube, maybe via their API</li>\n <li>somehow update the entry with this info.</li>\n</ul><p>Again, this is ... the wrong mental model. But why? The <a href=\"https://aperture.p3k.io/docs\">docs for Aperture,</a> the Microsub backend, gives us a hint when it covers how to write Microsub clients.</p>\n<blockquote>\n <p>Aperture has implemented the following actions in the <a href=\"https://indieweb.org/Microsub-spec\">Microsub spec</a>:</p>\n <ul><li>\n<a href=\"https://indieweb.org/Microsub-spec#Timelines\">GET action=timeline</a> - retrieve the list of items in a channel</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Timelines\">POST action=timeline</a> - mark entries as read, or remove an entry from a channel</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Search\">POST action=search</a> - search for a new feed to add</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Preview\">GET action=preview</a> - preview a feed before following it</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Following\">GET action=follow</a> - retrieve the list of feeds followed in a channel</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Following\">POST action=follow</a> - follow a new feed in a channel</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Unfollowing\">POST action=unfollow</a> - unfollow a feed in a channel (existing items from that feed are left in the channel, like IRC/Slack)</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Channels_2\">GET action=channels</a> - retrieve the list of channels for a user</li>\n <li>\n<a href=\"https://indieweb.org/Microsub-spec#Channels_2\">POST action=channels</a> - create, update, and delete channels, or set the order of the channels</li>\n </ul></blockquote>\n<p>\n Nowhere in that list is the ability to update or even create entries. <i>Those things are outside the scope of the spec.</i> The spec is intentionally narrow in describing how clients can manage channels, subscriptions, and mark read or delete entries pulled from those subscriptions. That's it! And that's good!\n <i>\n <br /></i>\n</p>\n<p>Remembering that the \"write API\" I was thinking of was actually Micro<i>pub</i> (with a \"p\"), I took a look at <a href=\"https://github.com/aaronpk/Aperture/blob/main/aperture/app/Http/Controllers/MicropubController.php\">the source for Aperture that handles Micropub requests</a> and it does refreshingly few things. It allows creating new entries from a Micropub payload, and it supports uploading media that would go along with a payload. <i>That's it. </i>And that's good!</p>\n<p>At this point, I thought I could still continue down my wrong-idea road. The automated system would:</p>\n<ul><li>act as a Microsub (with an \"s\") client to fetch each entry from my YouTube Subscriptions channel</li>\n <li>look at each to see if it's missing information like the thumbnail</li>\n <li>for each entry with missing info, look up that info directly from YouTube, maybe via their API</li>\n <li>use Microsub to delete the original entry</li>\n <li>use Micro<i>pub</i> (with a \"p\") to create a new entry with all the new details</li>\n</ul><p>This approach... should work! However, it certainly felt like I was working against the grain.</p>\n<p><a href=\"https://chat.indieweb.org/dev/2023-04-12#t1681333082265400\">I brought this up in the IndieWeb dev chat</a>, where <a href=\"https://aaronparecki.com/\">Aaron</a> and <a href=\"https://snarfed.org/\">Ryan</a> cleared things up. Microsub is intentionally simple, and adding general operations to let clients treat the server like a general data store is way out of scope. Similarly, while Aperture supports some of Micro<i>pub</i>, that's a choice specific to Aperture.</p>\n<h2>Have we learned anything?</h2>\n<p>The general consensus was that entries should get into a Microsub server like Aperture via feeds. And if the feeds I'm looking at don't have the content I want, I should make a feed that does! I should be able to make a proxy service that:</p>\n<ul><li>accepts a URL for a YouTube channel or playlist feed,</li>\n <li>fetches the feed,</li>\n <li>extracts everything I want from each entry, including thumbnails, and maybe even uses the YouTube API to get info like video length,</li>\n <li>rewrites that in a feed format that Aperture likes better. Probably just HTML with microformats2 to make an <a href=\"https://indieweb.org/h-feed\">h-feed</a>\n</li>\n</ul><p>For each of my YouTube subscriptions, I'll swap out the YouTube RSS for the new proxied feed - something that the Microsub API <i>is</i> intended to let me automate.</p>\n<p>One thing I mentioned in the chat discussion I linked above: I default to thinking of feed services like this proxy as \"public infrastructure\" by default - something that has to be on the public web, with all the maintenance and security issues that go along with that.</p>\n<p>However, as I self-host my own Aperture instance, I can set up this proxy on the same server and ensure that it only accepts local requests. Fewer public endpoints, fewer problems.</p>\n<p>\n Anyway, maybe I'll get that done and posted about in the near future, but today I just wanted to get these thoughts out of my head and close some tabs!\n <br /></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "article",
"_id": "36512207",
"_source": "175",
"_is_read": false
}
Every couple of days, Youtube serves up an ad that starts with "what if you could control the web with your mind?" I never fail to respond with "do you know... the #IndieWeb?"
{
"type": "entry",
"author": {
"name": "@zinzy",
"url": "https://tech.lgbt/@zinzy",
"photo": null
},
"url": "https://tech.lgbt/@zinzy/110186675888769047",
"content": {
"html": "<p>Every couple of days, Youtube serves up an ad that starts with \"what if you could control the web with your mind?\" I never fail to respond with \"do you know... the <a href=\"https://tech.lgbt/tags/IndieWeb\">#<span>IndieWeb</span></a>?\"</p>",
"text": "Every couple of days, Youtube serves up an ad that starts with \"what if you could control the web with your mind?\" I never fail to respond with \"do you know... the #IndieWeb?\""
},
"published": "2023-04-12T16:00:44+00:00",
"post-type": "note",
"_id": "36499677",
"_source": "7235",
"_is_read": true
}
Tweets are not available on Timehop. How sad. š I am still cleaning up my Twitter archive to be reposted on my microblog. #Timehop #Twitter #IndieWeb
{
"type": "entry",
"author": {
"name": "@fredc",
"url": "https://mastodon.online/@fredc",
"photo": null
},
"url": "https://mastodon.online/@fredc/110186181282366803",
"content": {
"html": "<p>Tweets are not available on Timehop. How sad. \ud83d\ude14 I am still cleaning up my Twitter archive to be reposted on my microblog. <a href=\"https://mastodon.online/tags/Timehop\">#<span>Timehop</span></a> <a href=\"https://mastodon.online/tags/Twitter\">#<span>Twitter</span></a> <a href=\"https://mastodon.online/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "Tweets are not available on Timehop. How sad. \ud83d\ude14 I am still cleaning up my Twitter archive to be reposted on my microblog. #Timehop #Twitter #IndieWeb"
},
"published": "2023-04-12T13:54:57+00:00",
"post-type": "note",
"_id": "36497081",
"_source": "7235",
"_is_read": true
}
Timehop is having issues with Instagram againālogin issues. Good thing I already backed up my Instagram posts on Google Photos, which is still accessible by Timehop. And, of course, I also reposted it on my microblog. #Timehop #Instagram #GooglePhotos #IndieWeb
{
"type": "entry",
"author": {
"name": "@fredc",
"url": "https://mastodon.online/@fredc",
"photo": null
},
"url": "https://mastodon.online/@fredc/110186059528420862",
"content": {
"html": "<p>Timehop is having issues with Instagram again\u2014login issues. Good thing I already backed up my Instagram posts on Google Photos, which is still accessible by Timehop. And, of course, I also reposted it on my microblog. <a href=\"https://mastodon.online/tags/Timehop\">#<span>Timehop</span></a> <a href=\"https://mastodon.online/tags/Instagram\">#<span>Instagram</span></a> <a href=\"https://mastodon.online/tags/GooglePhotos\">#<span>GooglePhotos</span></a> <a href=\"https://mastodon.online/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "Timehop is having issues with Instagram again\u2014login issues. Good thing I already backed up my Instagram posts on Google Photos, which is still accessible by Timehop. And, of course, I also reposted it on my microblog. #Timehop #Instagram #GooglePhotos #IndieWeb"
},
"published": "2023-04-12T13:23:59+00:00",
"post-type": "note",
"_id": "36497082",
"_source": "7235",
"_is_read": true
}
'Your blog doesnāt have to be big and fancy. It doesnāt have to outrank everyone on Google, make money or āconvert leadsā to be important. It can be something that exists for its own sake, as your place to express yourself in whatever manner you please.'
Felt inspired to talk about the small web and personal websites again, so my latest blog post is something of a brain dump on the subject.
#indieweb #blogging #writing
https://mikegrindle.com/posts/personal-blogging
{
"type": "entry",
"author": {
"name": "@mikegrindle",
"url": "https://indieweb.social/@mikegrindle",
"photo": null
},
"url": "https://indieweb.social/@mikegrindle/110185549400794164",
"content": {
"html": "<p>'Your blog doesn\u2019t have to be big and fancy. It doesn\u2019t have to outrank everyone on Google, make money or \u201cconvert leads\u201d to be important. It can be something that exists for its own sake, as your place to express yourself in whatever manner you please.'</p><p>Felt inspired to talk about the small web and personal websites again, so my latest blog post is something of a brain dump on the subject.</p><p><a href=\"https://indieweb.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://indieweb.social/tags/blogging\">#<span>blogging</span></a> <a href=\"https://indieweb.social/tags/writing\">#<span>writing</span></a> </p><p><a href=\"https://mikegrindle.com/posts/personal-blogging\"><span>https://</span><span>mikegrindle.com/posts/personal</span><span>-blogging</span></a></p>",
"text": "'Your blog doesn\u2019t have to be big and fancy. It doesn\u2019t have to outrank everyone on Google, make money or \u201cconvert leads\u201d to be important. It can be something that exists for its own sake, as your place to express yourself in whatever manner you please.'Felt inspired to talk about the small web and personal websites again, so my latest blog post is something of a brain dump on the subject.#indieweb #blogging #writing https://mikegrindle.com/posts/personal-blogging"
},
"published": "2023-04-12T11:14:16+00:00",
"post-type": "note",
"_id": "36493646",
"_source": "7235",
"_is_read": true
}
By the time a few more tech places (just saw the Substack news) add 'notes' and other Indieweb capabilities (of course better if people do it for themselves on their own sites) CorpTech will find itself being dismantled on an ever increasing scale. #indieweb #notes (https://www.axiomeval.me/posts/20230412-notes-help-dismantle-corptech.html)
{
"type": "entry",
"author": {
"name": "@ross",
"url": "https://axiomeval.social/@ross",
"photo": null
},
"url": "https://axiomeval.social/@ross/110184732505391623",
"content": {
"html": "<p>By the time a few more tech places (just saw the Substack news) add 'notes' and other Indieweb capabilities (of course better if people do it for themselves on their own sites) CorpTech will find itself being dismantled on an ever increasing scale. <a href=\"https://axiomeval.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://axiomeval.social/tags/notes\">#<span>notes</span></a> (<a href=\"https://www.axiomeval.me/posts/20230412-notes-help-dismantle-corptech.html\"><span>https://www.</span><span>axiomeval.me/posts/20230412-no</span><span>tes-help-dismantle-corptech.html</span></a>)</p>",
"text": "By the time a few more tech places (just saw the Substack news) add 'notes' and other Indieweb capabilities (of course better if people do it for themselves on their own sites) CorpTech will find itself being dismantled on an ever increasing scale. #indieweb #notes (https://www.axiomeval.me/posts/20230412-notes-help-dismantle-corptech.html)"
},
"published": "2023-04-12T07:46:31+00:00",
"post-type": "note",
"_id": "36491011",
"_source": "7235",
"_is_read": true
}
@netdivermag good to hear from you!
https://indieweb.org/ (@indiewebcamp) has kept the independent torch lit.
We remember independentsday(.)org: https://indieweb.org/Independents_Day
Let's chat https://chat.indieweb.org/ via Slack, Matrix, or IRC rather than this silo
{
"type": "entry",
"published": "2023-04-11 16:53-0700",
"url": "http://tantek.com/2023/101/t1/",
"in-reply-to": [
"https://twitter.com/netdivermag/status/1645782306618060801"
],
"content": {
"text": "@netdivermag good to hear from you!\n\nhttps://indieweb.org/ (@indiewebcamp) has kept the independent torch lit.\n\nWe remember independentsday(.)org: https://indieweb.org/Independents_Day\n\nLet's chat https://chat.indieweb.org/ via Slack, Matrix, or IRC rather than this silo",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/netdivermag\">@netdivermag</a> good to hear from you!<br /><br /><a href=\"https://indieweb.org/\">https://indieweb.org/</a> (<a class=\"h-cassis-username\" href=\"https://twitter.com/indiewebcamp\">@indiewebcamp</a>) has kept the independent torch lit.<br /><br />We remember independentsday(.)org: <a href=\"https://indieweb.org/Independents_Day\">https://indieweb.org/Independents_Day</a><br /><br />Let's chat <a href=\"https://chat.indieweb.org/\">https://chat.indieweb.org/</a> via Slack, Matrix, or IRC rather than this silo"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"https://twitter.com/netdivermag/status/1645782306618060801": {
"type": "entry",
"url": "https://twitter.com/netdivermag/status/1645782306618060801",
"name": "@netdivermag\u2019s tweet",
"post-type": "article"
}
},
"_id": "36486824",
"_source": "1",
"_is_read": true
}
micro blogging friends, my followers on #mastodon lacks a CSV download link, does anyone know how to download followers? ā¤ļøšš¼ #activitypub #indieweb #rss
{
"type": "entry",
"author": {
"name": "@brianjesse",
"url": "https://mastodon.social/@brianjesse",
"photo": null
},
"url": "https://mastodon.social/@brianjesse/110182258390508204",
"content": {
"html": "<p>micro blogging friends, my followers on <a href=\"https://mastodon.social/tags/mastodon\">#<span>mastodon</span></a> lacks a CSV download link, does anyone know how to download followers? \u2764\ufe0f\ud83d\ude4f\ud83c\udffc <a href=\"https://mastodon.social/tags/activitypub\">#<span>activitypub</span></a> <a href=\"https://mastodon.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://mastodon.social/tags/rss\">#<span>rss</span></a></p>",
"text": "micro blogging friends, my followers on #mastodon lacks a CSV download link, does anyone know how to download followers? \u2764\ufe0f\ud83d\ude4f\ud83c\udffc #activitypub #indieweb #rss"
},
"published": "2023-04-11T21:17:19+00:00",
"post-type": "note",
"_id": "36482967",
"_source": "7235",
"_is_read": true
}
Changed my microblog page (https://abnv.me/mb) to point the post links to https://elk.zone instead of the default #Mastodon UI because of superior threading UI on @elk.
#indieweb
{
"type": "entry",
"author": {
"name": "@abnv",
"url": "https://fantastic.earth/@abnv",
"photo": null
},
"url": "https://fantastic.earth/@abnv/110181556649525307",
"content": {
"html": "<p>Changed my microblog page (<a href=\"https://abnv.me/mb\"><span>https://</span><span>abnv.me/mb</span><span></span></a>) to point the post links to <a href=\"https://elk.zone\"><span>https://</span><span>elk.zone</span><span></span></a> instead of the default <a href=\"https://fantastic.earth/tags/Mastodon\">#<span>Mastodon</span></a> UI because of superior threading UI on <span class=\"h-card\"><a class=\"u-url\" href=\"https://m.webtoo.ls/@elk\">@<span>elk</span></a></span>.<br /><a href=\"https://fantastic.earth/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "Changed my microblog page (https://abnv.me/mb) to point the post links to https://elk.zone instead of the default #Mastodon UI because of superior threading UI on @elk.\n#indieweb"
},
"published": "2023-04-11T18:18:51+00:00",
"post-type": "note",
"_id": "36479743",
"_source": "7235",
"_is_read": true
}
Anyone else every swipe a domain name out from some body? Curious to hear why you did it, and if there was any outcome.
#WebDev #SysAdmin #IndieWeb
{
"type": "entry",
"author": {
"name": "@ApisNecros",
"url": "https://ioc.exchange/@ApisNecros",
"photo": null
},
"url": "https://ioc.exchange/@ApisNecros/110181374845568460",
"content": {
"html": "<p>Anyone else every swipe a domain name out from some body? Curious to hear why you did it, and if there was any outcome.</p><p><a href=\"https://ioc.exchange/tags/WebDev\">#<span>WebDev</span></a> <a href=\"https://ioc.exchange/tags/SysAdmin\">#<span>SysAdmin</span></a> <a href=\"https://ioc.exchange/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "Anyone else every swipe a domain name out from some body? Curious to hear why you did it, and if there was any outcome.#WebDev #SysAdmin #IndieWeb"
},
"published": "2023-04-11T17:32:37+00:00",
"post-type": "note",
"_id": "36479045",
"_source": "7235",
"_is_read": true
}
When you look at these #indieweb standards it is so clear why the #Fediverse and the Indieweb movement are such close allies and technological "cousins."
https://indieweb.org/friendly#How
{
"type": "entry",
"author": {
"name": "@tchambers",
"url": "https://indieweb.social/@tchambers",
"photo": null
},
"url": "https://indieweb.social/@tchambers/110180781343905044",
"content": {
"html": "<p>When you look at these <a href=\"https://indieweb.social/tags/indieweb\">#<span>indieweb</span></a> standards it is so clear why the <a href=\"https://indieweb.social/tags/Fediverse\">#<span>Fediverse</span></a> and the Indieweb movement are such close allies and technological \"cousins.\"</p><p><a href=\"https://indieweb.org/friendly#How\"><span>https://</span><span>indieweb.org/friendly#How</span><span></span></a></p>",
"text": "When you look at these #indieweb standards it is so clear why the #Fediverse and the Indieweb movement are such close allies and technological \"cousins.\"https://indieweb.org/friendly#How"
},
"published": "2023-04-11T15:01:41+00:00",
"post-type": "note",
"_id": "36475317",
"_source": "7235",
"_is_read": true
}
If I could stop you from your scrolling for a second, I have a favour to ask...
Could you all please send me your favourite personal websites?
I wanna see all your cool quirky heartfelt creative shit!
Oh! and don't forget to boost this so we've all got lots of great sites to look at š
#WebDev #IndieWeb #PersonalSite
{
"type": "entry",
"author": {
"name": "@elly",
"url": "https://front-end.social/@elly",
"photo": null
},
"url": "https://front-end.social/@elly/110180249958157305",
"content": {
"html": "<p>If I could stop you from your scrolling for a second, I have a favour to ask...</p><p>Could you all please send me your favourite personal websites?</p><p>I wanna see all your cool quirky heartfelt creative shit!</p><p>Oh! and don't forget to boost this so we've all got lots of great sites to look at \ud83c\udf89</p><p> <a href=\"https://front-end.social/tags/WebDev\">#<span>WebDev</span></a> <a href=\"https://front-end.social/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://front-end.social/tags/PersonalSite\">#<span>PersonalSite</span></a></p>",
"text": "If I could stop you from your scrolling for a second, I have a favour to ask...Could you all please send me your favourite personal websites?I wanna see all your cool quirky heartfelt creative shit!Oh! and don't forget to boost this so we've all got lots of great sites to look at \ud83c\udf89 #WebDev #IndieWeb #PersonalSite"
},
"published": "2023-04-11T12:46:32+00:00",
"post-type": "note",
"_id": "36471932",
"_source": "7235",
"_is_read": true
}
#Substackās financials areā¦ suspect. Plus, the platform doesnāt seem interested in an open #IndieWeb future. So, Iām building a life raft. Read about how in todayās newsletter.
https://justincox.com/blog/2023/04/we-have-to-talk-about-substack/
{
"type": "entry",
"author": {
"name": "@justin",
"url": "https://beige.party/@justin",
"photo": null
},
"url": "https://beige.party/@justin/110179926915017830",
"content": {
"html": "<p><a href=\"https://beige.party/tags/Substack\">#<span>Substack</span></a>\u2019s financials are\u2026 suspect. Plus, the platform doesn\u2019t seem interested in an open <a href=\"https://beige.party/tags/IndieWeb\">#<span>IndieWeb</span></a> future. So, I\u2019m building a life raft. Read about how in today\u2019s newsletter. </p><p><a href=\"https://justincox.com/blog/2023/04/we-have-to-talk-about-substack/\"><span>https://</span><span>justincox.com/blog/2023/04/we-</span><span>have-to-talk-about-substack/</span></a></p>",
"text": "#Substack\u2019s financials are\u2026 suspect. Plus, the platform doesn\u2019t seem interested in an open #IndieWeb future. So, I\u2019m building a life raft. Read about how in today\u2019s newsletter. https://justincox.com/blog/2023/04/we-have-to-talk-about-substack/"
},
"published": "2023-04-11T11:24:23+00:00",
"post-type": "note",
"_id": "36470904",
"_source": "7235",
"_is_read": true
}
New blog post up, where I talk about how I discovered the indie web and how it makes me feel.
Inspired by a podcast and an article. For the link to the latter, thank you to @lostletters@social.yesterweb.org!
#IndieWeb #PersonalWebsite #neocities #DigitalGardens #PersonalBlog
https://theresmiling.neocities.org/blog/2023/04/jungles-and-gardens
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://calckey.social/notes/9dfnp6dyom",
"content": {
"html": "<p><span>New blog post up, where I talk about how I discovered the indie web and how it makes me feel.<br />Inspired by a podcast and an article. For the link to the latter, thank you to </span><a class=\"u-url\" href=\"https://social.yesterweb.org/@lostletters\">@lostletters@social.yesterweb.org</a><span>!<br /><br /></span><a href=\"https://calckey.social/tags/IndieWeb\">#IndieWeb</a><span> </span><a href=\"https://calckey.social/tags/PersonalWebsite\">#PersonalWebsite</a><span> </span><a href=\"https://calckey.social/tags/neocities\">#neocities</a><span> </span><a href=\"https://calckey.social/tags/DigitalGardens\">#DigitalGardens</a><span> </span><a href=\"https://calckey.social/tags/PersonalBlog\">#PersonalBlog</a><span><br /><br /></span><a href=\"https://theresmiling.neocities.org/blog/2023/04/jungles-and-gardens\">https://theresmiling.neocities.org/blog/2023/04/jungles-and-gardens</a></p>",
"text": "New blog post up, where I talk about how I discovered the indie web and how it makes me feel.\nInspired by a podcast and an article. For the link to the latter, thank you to @lostletters@social.yesterweb.org!\n\n#IndieWeb #PersonalWebsite #neocities #DigitalGardens #PersonalBlog\n\nhttps://theresmiling.neocities.org/blog/2023/04/jungles-and-gardens"
},
"published": "2023-04-11T10:00:45+00:00",
"post-type": "note",
"_id": "36469461",
"_source": "7235",
"_is_read": true
}
About three weeks ago I got auto-linked hashtags working on my posts.
The biggest challenge was picking a tag space to link my hashtags.
The second biggest challenge was figuring out how to get my linked hashtags to work when my posts were federated into Mastodon instances, and have them rewrite those links into instance-local tag page links. We need a term for such locally rewritten linked hashtags, perhaps āfederated hashtagsā.
While typical personal sites link a hashtag to a tag page that only displays personal posts, I wanted to link to something more like a tag aggregation page that also displayed similar posts from others.
The tag pages on Mastodon instances do a good job of this, showing tagged posts from any user on that instance, and tagged posts from any user followed by any user on that instance.
I reviewed my hashtags since the start of 2023, checked their pages on indieweb.social and found that the posts displayed were all on topic, and surprisingly free of tag spam (perhaps for now).
I chose https://indieweb.social/tags/ for my tag space (which is a 404 if you click it, where it really should display a tags page listing popular or recent tags or a tag cloud).
Combining a hashtag like #100DaysOfIndieWeb with a tag space produces a link to a tag page like: https://indieweb.social/tags/100DaysOfIndieWeb.
The other interesting thing about hashtag links is how theyāre rewritten when a post is displayed on another Mastodon instance, to link to the tag page local to that instance.
This linked-hashtag-portability is underspecified unfortunately (it could probably use its own portable markup specification, or at least a best practice for h-entry publishing).
How it works in Mastodon is non-obvious enough that thereās a 4+ year old Bridgy Fed issue on the subject!
* https://github.com/snarfed/bridgy-fed/issues/45
With a bunch of research and experiment contributions from several folks in the issue, @snarfed.org (@schnarfed) did eventually figure out how to get Bridgy Fed to federate hashtags in posts into Mastodon instances so they would rewrite hashtag links into instance-local hashtag pages:
* https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400
Thus even though Iām using the indieweb.social tag space on the hashtag links in my original post, if you are reading this post on Mastodon, you should see a hashtag like #IndieWeb link to your local instanceās tag page for IndieWeb, and my post should show up on that page.
From testing a few other instances tag pages, this is now working, e.g. these tag pages:
* https://indieweb.social/tags/100DaysofIndieWeb (as expected)
* https://xoxo.zone/tags/100DaysOfIndieWeb
* https://mozilla.social/tags/100DaysofIndieWeb
display the #MozFest postĀ¹ I published right after implementing linked hashtags (and any subsequent 100DaysofIndieWeb posts).
I did go back and send Webmentions to BridgyFed to send ActivityPub updates for all my past #100DaysofIndieWeb posts, however only a few of them showed up in those tag pages. Itās unclear why a few did and most didnāt, or why there are inconsistencies across instances. More to explore and debug.
Federated hashtags definitely need their own specification, because currently they barely interoperate when published, and even then require Mastodon-implementation-specific knowledge to function.
The good news is that several of us now have linked hashtags on our personal sites display and link as expected when our posts are federated across Mastodon instances, using a variety of different pieces of software to make it all work.
This is day 36 of #100DaysOfIndieWeb #100Days
ā Day 35: https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb
ā š®
Glossary
h-entry
Ā https://microformats.org/wiki/h-entry
hashtag
Ā https://indieweb.org/hashtags
tag aggregation
Ā https://indieweb.org/tag_aggregation
tag page
Ā https://indieweb.org/tag_page
tags page
Ā https://indieweb.org/tags_page
Ā
References
Ā¹ https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://fed.brid.gy/r/https://tantek.com/2023/100/t1/auto-linked-hashtags-federated",
"content": {
"html": "About three weeks ago I got auto-linked hashtags working on my posts.<br /><br />The biggest challenge was picking a tag space to link my hashtags. <br /><br />The second biggest challenge was figuring out how to get my linked hashtags to work when my posts were federated into Mastodon instances, and have them rewrite those links into instance-local tag page links. We need a term for such locally rewritten linked hashtags, perhaps \u201cfederated hashtags\u201d.<br /><br />While typical personal sites link a hashtag to a tag page that only displays personal posts, I wanted to link to something more like a tag aggregation page that also displayed similar posts from others.<br /><br />The tag pages on Mastodon instances do a good job of this, showing tagged posts from any user on that instance, and tagged posts from any user followed by any user on that instance.<br /><br />I reviewed my hashtags since the start of 2023, checked their pages on <a href=\"http://indieweb.social\">indieweb.social</a> and found that the posts displayed were all on topic, and surprisingly free of tag spam (perhaps for now).<br /><br />I chose <a href=\"https://indieweb.social/tags/\">https://indieweb.social/tags/</a> for my tag space (which is a 404 if you click it, where it really should display a tags page listing popular or recent tags or a tag cloud). <br /><br />Combining a hashtag like <a href=\"https://indieweb.social/tags/100DaysOfIndieWeb\">#<span class=\"p-category\">100DaysOfIndieWeb</span></a> with a tag space produces a link to a tag page like: <a href=\"https://indieweb.social/tags/100DaysOfIndieWeb\">https://indieweb.social/tags/100DaysOfIndieWeb</a>.<br /><br />The other interesting thing about hashtag links is how they\u2019re rewritten when a post is displayed on another Mastodon instance, to link to the tag page local to that instance. <br /><br />This linked-hashtag-portability is underspecified unfortunately (it could probably use its own portable markup specification, or at least a best practice for h-entry publishing).<br /><br />How it works in Mastodon is non-obvious enough that there\u2019s a 4+ year old Bridgy Fed issue on the subject!<br />* <a href=\"https://github.com/snarfed/bridgy-fed/issues/45\">https://github.com/snarfed/bridgy-fed/issues/45</a><br /><br />With a bunch of research and experiment contributions from several folks in the issue, <a href=\"https://snarfed.org\">@snarfed.org</a> (<a class=\"h-cassis-username\" href=\"https://twitter.com/schnarfed\">@schnarfed</a>) did eventually figure out how to get Bridgy Fed to federate hashtags in posts into Mastodon instances so they would rewrite hashtag links into instance-local hashtag pages:<br />* <a href=\"https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400\">https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400</a><br /><br />Thus even though I\u2019m using the <a href=\"http://indieweb.social\">indieweb.social</a> tag space on the hashtag links in my original post, if you are reading this post on Mastodon, you should see a hashtag like <a href=\"https://indieweb.social/tags/IndieWeb\">#<span class=\"p-category\">IndieWeb</span></a> link to your local instance\u2019s tag page for IndieWeb, and my post should show up on that page.<br /><br />From testing a few other instances tag pages, this is now working, e.g. these tag pages:<br />* <a href=\"https://indieweb.social/tags/100DaysofIndieWeb\">https://indieweb.social/tags/100DaysofIndieWeb</a> (as expected)<br />* <a href=\"https://xoxo.zone/tags/100DaysOfIndieWeb\">https://xoxo.zone/tags/100DaysOfIndieWeb</a><br />* <a href=\"https://mozilla.social/tags/100DaysofIndieWeb\">https://mozilla.social/tags/100DaysofIndieWeb</a><br />display the <a href=\"https://indieweb.social/tags/MozFest\">#<span class=\"p-category\">MozFest</span></a> post\u00b9 I published right after implementing linked hashtags (and any subsequent 100DaysofIndieWeb posts).<br /><br />I did go back and send Webmentions to BridgyFed to send ActivityPub updates for all my past <a href=\"https://indieweb.social/tags/100DaysofIndieWeb\">#<span class=\"p-category\">100DaysofIndieWeb</span></a> posts, however only a few of them showed up in those tag pages. It\u2019s unclear why a few did and most didn\u2019t, or why there are inconsistencies across instances. More to explore and debug.<br /><br />Federated hashtags definitely need their own specification, because currently they barely interoperate when published, and even then require Mastodon-implementation-specific knowledge to function.<br /><br />The good news is that several of us now have linked hashtags on our personal sites display and link as expected when our posts are federated across Mastodon instances, using a variety of different pieces of software to make it all work.<br /><br /><br />This is day 36 of <a href=\"https://indieweb.social/tags/100DaysOfIndieWeb\">#<span class=\"p-category\">100DaysOfIndieWeb</span></a> <a href=\"https://indieweb.social/tags/100Days\">#<span class=\"p-category\">100Days</span></a><br /><br />\u2190 Day 35: <a href=\"https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb\">https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb</a><br />\u2192 \ud83d\udd2e<br /><br /><br />Glossary<br /><br />h-entry<br />\u00a0<a href=\"https://microformats.org/wiki/h-entry\">https://microformats.org/wiki/h-entry</a><br />hashtag<br />\u00a0<a href=\"https://indieweb.org/hashtags\">https://indieweb.org/hashtags</a><br />tag aggregation<br />\u00a0<a href=\"https://indieweb.org/tag_aggregation\">https://indieweb.org/tag_aggregation</a><br />tag page<br />\u00a0<a href=\"https://indieweb.org/tag_page\">https://indieweb.org/tag_page</a><br />tags page<br />\u00a0<a href=\"https://indieweb.org/tags_page\">https://indieweb.org/tags_page</a><br />\u00a0<br />References<br /><br />\u00b9 <a href=\"https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb\">https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb</a>",
"text": "About three weeks ago I got auto-linked hashtags working on my posts.\n\nThe biggest challenge was picking a tag space to link my hashtags. \n\nThe second biggest challenge was figuring out how to get my linked hashtags to work when my posts were federated into Mastodon instances, and have them rewrite those links into instance-local tag page links. We need a term for such locally rewritten linked hashtags, perhaps \u201cfederated hashtags\u201d.\n\nWhile typical personal sites link a hashtag to a tag page that only displays personal posts, I wanted to link to something more like a tag aggregation page that also displayed similar posts from others.\n\nThe tag pages on Mastodon instances do a good job of this, showing tagged posts from any user on that instance, and tagged posts from any user followed by any user on that instance.\n\nI reviewed my hashtags since the start of 2023, checked their pages on indieweb.social and found that the posts displayed were all on topic, and surprisingly free of tag spam (perhaps for now).\n\nI chose https://indieweb.social/tags/ for my tag space (which is a 404 if you click it, where it really should display a tags page listing popular or recent tags or a tag cloud). \n\nCombining a hashtag like #100DaysOfIndieWeb with a tag space produces a link to a tag page like: https://indieweb.social/tags/100DaysOfIndieWeb.\n\nThe other interesting thing about hashtag links is how they\u2019re rewritten when a post is displayed on another Mastodon instance, to link to the tag page local to that instance. \n\nThis linked-hashtag-portability is underspecified unfortunately (it could probably use its own portable markup specification, or at least a best practice for h-entry publishing).\n\nHow it works in Mastodon is non-obvious enough that there\u2019s a 4+ year old Bridgy Fed issue on the subject!\n* https://github.com/snarfed/bridgy-fed/issues/45\n\nWith a bunch of research and experiment contributions from several folks in the issue, @snarfed.org (@schnarfed) did eventually figure out how to get Bridgy Fed to federate hashtags in posts into Mastodon instances so they would rewrite hashtag links into instance-local hashtag pages:\n* https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400\n\nThus even though I\u2019m using the indieweb.social tag space on the hashtag links in my original post, if you are reading this post on Mastodon, you should see a hashtag like #IndieWeb link to your local instance\u2019s tag page for IndieWeb, and my post should show up on that page.\n\nFrom testing a few other instances tag pages, this is now working, e.g. these tag pages:\n* https://indieweb.social/tags/100DaysofIndieWeb (as expected)\n* https://xoxo.zone/tags/100DaysOfIndieWeb\n* https://mozilla.social/tags/100DaysofIndieWeb\ndisplay the #MozFest post\u00b9 I published right after implementing linked hashtags (and any subsequent 100DaysofIndieWeb posts).\n\nI did go back and send Webmentions to BridgyFed to send ActivityPub updates for all my past #100DaysofIndieWeb posts, however only a few of them showed up in those tag pages. It\u2019s unclear why a few did and most didn\u2019t, or why there are inconsistencies across instances. More to explore and debug.\n\nFederated hashtags definitely need their own specification, because currently they barely interoperate when published, and even then require Mastodon-implementation-specific knowledge to function.\n\nThe good news is that several of us now have linked hashtags on our personal sites display and link as expected when our posts are federated across Mastodon instances, using a variety of different pieces of software to make it all work.\n\n\nThis is day 36 of #100DaysOfIndieWeb #100Days\n\n\u2190 Day 35: https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb\n\u2192 \ud83d\udd2e\n\n\nGlossary\n\nh-entry\n\u00a0https://microformats.org/wiki/h-entry\nhashtag\n\u00a0https://indieweb.org/hashtags\ntag aggregation\n\u00a0https://indieweb.org/tag_aggregation\ntag page\n\u00a0https://indieweb.org/tag_page\ntags page\n\u00a0https://indieweb.org/tags_page\n\u00a0\nReferences\n\n\u00b9 https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb"
},
"published": "2023-04-11T06:25:00+00:00",
"post-type": "note",
"_id": "36467782",
"_source": "7235",
"_is_read": true
}
About three weeks ago I got auto-linked hashtags working on my posts.
The biggest challenge was picking a tag space to link my hashtags.
The second biggest challenge was figuring out how to get my linked hashtags to work when my posts were federated into Mastodon instances, and have them rewrite those links into instance-local tag page links. We need a term for such locally rewritten linked hashtags, perhaps āfederated hashtagsā.
While typical personal sites link a hashtag to a tag page that only displays personal posts, I wanted to link to something more like a tag aggregation page that also displayed similar posts from others.
The tag pages on Mastodon instances do a good job of this, showing tagged posts from any user on that instance, and tagged posts from any user followed by any user on that instance.
I reviewed my hashtags since the start of 2023, checked their pages indieweb.social and found that the posts displayed were all on topic, and surprisingly free of tag spam (perhaps for now).
I chose https://indieweb.social/tags/ for my tag space (which is a 404 if you click it, where it really should display a list of tags page). When combined with a hashtag like #100DaysOfIndieWeb, it links to https://indieweb.social/tags/100DaysOfIndieWeb.
The other interesting thing about hashtag links is how theyāre rewritten when a post is displayed on another Mastodon instance, to link to the tag page local to that instance.
This linked-hashtag-portability is underspecified unfortunately (it could probably use its own portable markup specification, or at least a best practice for h-entry publishing).
How it works in Mastodon is non-obvious enough that thereās a 4+ year old Bridgy Fed issue on the subject!
* https://github.com/snarfed/bridgy-fed/issues/45
With a bunch of research and experiment contributions from several folks in the issue, @snarfed.org (@schnarfed) did eventually figure out how to make hashtags in posts federate into Mastodon so it would rewrite their links into instance-local hashtag pages:
* https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400
Thus even though Iām using the indieweb.social tag space on the hashtag links in my original post, if you are reading this post on Mastodon, you should see a hashtag like #IndieWeb link to your local instanceās tag page for IndieWeb, and my post should show up on that page.
From testing a few other instances tag pages, this is now working, e.g. these tag pages:
* https://indieweb.social/tags/100DaysofIndieWeb (as expected)
* https://xoxo.zone/tags/100DaysOfIndieWeb
* https://mozilla.social/tags/100DaysofIndieWeb
displays the #MozFest post I published right after implementing linked hashtags (as well as this post by the time you see this).
I did go back and send Webmentions to BridgyFed send ActivityPub updates for all my past #100DaysofIndieWeb posts, however only a few of them showed up in those tag pages. Itās not why a few did and most didnāt, nor why there were inconsistencies across instances. More to explore and debug.
Federated hashtags definitely need their own specification, because currently they barely interoperate when published, and even then require Mastodon-implementation-specific knowledge to function.
This is day 36 of #100DaysOfIndieWeb #100Days
ā Day 35: https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb
ā š®
Glossary
h-entry
Ā https://microformats.org/wiki/h-entry
hashtag
Ā https://indieweb.org/hashtags
tag aggregation
Ā https://indieweb.org/tag_aggregation
tag page
Ā https://indieweb.org/tag_page
tags page
Ā https://indieweb.org/tags_page
{
"type": "entry",
"published": "2023-04-10 23:25-0700",
"url": "http://tantek.com/2023/100/t1/auto-linked-hashtags-federated",
"category": [
"100DaysOfIndieWeb",
"IndieWeb",
"MozFest",
"100DaysofIndieWeb",
"100Days"
],
"content": {
"text": "About three weeks ago I got auto-linked hashtags working on my posts.\n\nThe biggest challenge was picking a tag space to link my hashtags. \n\nThe second biggest challenge was figuring out how to get my linked hashtags to work when my posts were federated into Mastodon instances, and have them rewrite those links into instance-local tag page links. We need a term for such locally rewritten linked hashtags, perhaps \u201cfederated hashtags\u201d.\n\nWhile typical personal sites link a hashtag to a tag page that only displays personal posts, I wanted to link to something more like a tag aggregation page that also displayed similar posts from others.\n\nThe tag pages on Mastodon instances do a good job of this, showing tagged posts from any user on that instance, and tagged posts from any user followed by any user on that instance.\n\nI reviewed my hashtags since the start of 2023, checked their pages indieweb.social and found that the posts displayed were all on topic, and surprisingly free of tag spam (perhaps for now).\n\nI chose https://indieweb.social/tags/ for my tag space (which is a 404 if you click it, where it really should display a list of tags page). When combined with a hashtag like #100DaysOfIndieWeb, it links to https://indieweb.social/tags/100DaysOfIndieWeb.\n\nThe other interesting thing about hashtag links is how they\u2019re rewritten when a post is displayed on another Mastodon instance, to link to the tag page local to that instance. \n\nThis linked-hashtag-portability is underspecified unfortunately (it could probably use its own portable markup specification, or at least a best practice for h-entry publishing).\n\nHow it works in Mastodon is non-obvious enough that there\u2019s a 4+ year old Bridgy Fed issue on the subject!\n* https://github.com/snarfed/bridgy-fed/issues/45\n\nWith a bunch of research and experiment contributions from several folks in the issue, @snarfed.org (@schnarfed) did eventually figure out how to make hashtags in posts federate into Mastodon so it would rewrite their links into instance-local hashtag pages:\n* https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400\n\nThus even though I\u2019m using the indieweb.social tag space on the hashtag links in my original post, if you are reading this post on Mastodon, you should see a hashtag like #IndieWeb link to your local instance\u2019s tag page for IndieWeb, and my post should show up on that page.\n\nFrom testing a few other instances tag pages, this is now working, e.g. these tag pages:\n* https://indieweb.social/tags/100DaysofIndieWeb (as expected)\n* https://xoxo.zone/tags/100DaysOfIndieWeb\n* https://mozilla.social/tags/100DaysofIndieWeb\ndisplays the #MozFest post I published right after implementing linked hashtags (as well as this post by the time you see this).\n\nI did go back and send Webmentions to BridgyFed send ActivityPub updates for all my past #100DaysofIndieWeb posts, however only a few of them showed up in those tag pages. It\u2019s not why a few did and most didn\u2019t, nor why there were inconsistencies across instances. More to explore and debug.\n\nFederated hashtags definitely need their own specification, because currently they barely interoperate when published, and even then require Mastodon-implementation-specific knowledge to function.\n\n\nThis is day 36 of #100DaysOfIndieWeb #100Days\n\n\u2190 Day 35: https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb\n\u2192 \ud83d\udd2e\n\n\nGlossary\n\nh-entry\n\u00a0https://microformats.org/wiki/h-entry\nhashtag\n\u00a0https://indieweb.org/hashtags\ntag aggregation\n\u00a0https://indieweb.org/tag_aggregation\ntag page\n\u00a0https://indieweb.org/tag_page\ntags page\n\u00a0https://indieweb.org/tags_page",
"html": "About three weeks ago I got auto-linked hashtags working on my posts.<br /><br />The biggest challenge was picking a tag space to link my hashtags. <br /><br />The second biggest challenge was figuring out how to get my linked hashtags to work when my posts were federated into Mastodon instances, and have them rewrite those links into instance-local tag page links. We need a term for such locally rewritten linked hashtags, perhaps \u201cfederated hashtags\u201d.<br /><br />While typical personal sites link a hashtag to a tag page that only displays personal posts, I wanted to link to something more like a tag aggregation page that also displayed similar posts from others.<br /><br />The tag pages on Mastodon instances do a good job of this, showing tagged posts from any user on that instance, and tagged posts from any user followed by any user on that instance.<br /><br />I reviewed my hashtags since the start of 2023, checked their pages <a href=\"http://indieweb.social\">indieweb.social</a> and found that the posts displayed were all on topic, and surprisingly free of tag spam (perhaps for now).<br /><br />I chose <a href=\"https://indieweb.social/tags/\">https://indieweb.social/tags/</a> for my tag space (which is a 404 if you click it, where it really should display a list of tags page). When combined with a hashtag like #<span class=\"p-category\">100DaysOfIndieWeb</span>, it links to <a href=\"https://indieweb.social/tags/100DaysOfIndieWeb\">https://indieweb.social/tags/100DaysOfIndieWeb</a>.<br /><br />The other interesting thing about hashtag links is how they\u2019re rewritten when a post is displayed on another Mastodon instance, to link to the tag page local to that instance. <br /><br />This linked-hashtag-portability is underspecified unfortunately (it could probably use its own portable markup specification, or at least a best practice for h-entry publishing).<br /><br />How it works in Mastodon is non-obvious enough that there\u2019s a 4+ year old Bridgy Fed issue on the subject!<br />* <a href=\"https://github.com/snarfed/bridgy-fed/issues/45\">https://github.com/snarfed/bridgy-fed/issues/45</a><br /><br />With a bunch of research and experiment contributions from several folks in the issue, <a href=\"https://snarfed.org\">@snarfed.org</a> (<a class=\"h-cassis-username\" href=\"https://twitter.com/schnarfed\">@schnarfed</a>) did eventually figure out how to make hashtags in posts federate into Mastodon so it would rewrite their links into instance-local hashtag pages:<br />* <a href=\"https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400\">https://github.com/snarfed/bridgy-fed/issues/45#issuecomment-1468962400</a><br /><br />Thus even though I\u2019m using the <a href=\"http://indieweb.social\">indieweb.social</a> tag space on the hashtag links in my original post, if you are reading this post on Mastodon, you should see a hashtag like #<span class=\"p-category\">IndieWeb</span> link to your local instance\u2019s tag page for IndieWeb, and my post should show up on that page.<br /><br />From testing a few other instances tag pages, this is now working, e.g. these tag pages:<br />* <a href=\"https://indieweb.social/tags/100DaysofIndieWeb\">https://indieweb.social/tags/100DaysofIndieWeb</a> (as expected)<br />* <a href=\"https://xoxo.zone/tags/100DaysOfIndieWeb\">https://xoxo.zone/tags/100DaysOfIndieWeb</a><br />* <a href=\"https://mozilla.social/tags/100DaysofIndieWeb\">https://mozilla.social/tags/100DaysofIndieWeb</a><br />displays the #<span class=\"p-category\">MozFest</span> post I published right after implementing linked hashtags (as well as this post by the time you see this).<br /><br />I did go back and send Webmentions to BridgyFed send ActivityPub updates for all my past #<span class=\"p-category\">100DaysofIndieWeb</span> posts, however only a few of them showed up in those tag pages. It\u2019s not why a few did and most didn\u2019t, nor why there were inconsistencies across instances. More to explore and debug.<br /><br />Federated hashtags definitely need their own specification, because currently they barely interoperate when published, and even then require Mastodon-implementation-specific knowledge to function.<br /><br /><br />This is day 36 of #<span class=\"p-category\">100DaysOfIndieWeb</span> #<span class=\"p-category\">100Days</span><br /><br />\u2190 Day 35: <a href=\"https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb\">https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb</a><br />\u2192 \ud83d\udd2e<br /><br /><br />Glossary<br /><br />h-entry<br />\u00a0<a href=\"https://microformats.org/wiki/h-entry\">https://microformats.org/wiki/h-entry</a><br />hashtag<br />\u00a0<a href=\"https://indieweb.org/hashtags\">https://indieweb.org/hashtags</a><br />tag aggregation<br />\u00a0<a href=\"https://indieweb.org/tag_aggregation\">https://indieweb.org/tag_aggregation</a><br />tag page<br />\u00a0<a href=\"https://indieweb.org/tag_page\">https://indieweb.org/tag_page</a><br />tags page<br />\u00a0<a href=\"https://indieweb.org/tags_page\">https://indieweb.org/tags_page</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "36467172",
"_source": "1",
"_is_read": true
}
{
"type": "entry",
"published": "2023-04-10 23:07-0700",
"url": "http://tantek.com/2023/100/b1/",
"in-reply-to": [
"https://github.com/capjamesg/indieweb-etherpad-archiver/issues"
],
"name": "Warn if event or Etherpad link already archived",
"content": {
"text": "If someone in chat issues a !archive command on an event or Etherpad URL (per \nissue 4), \nand it has already been archived (the destination wiki URL already exists), the bot should return with a warning that the event has already been archived, and provide the full wiki URL for the chat user to inspect, and manually make any improvements if necessary.\n\nRequested originally in IndieWeb meta chat, earlier today.",
"html": "<p>\nIf someone in chat issues a !archive command on an event or Etherpad URL (per \n<a href=\"https://github.com/capjamesg/indieweb-etherpad-archiver/issues/4\">issue 4</a>), \nand it has already been archived (the destination wiki URL already exists), the bot should return with a warning that the event has already been archived, and provide the full wiki URL for the chat user to inspect, and manually make any improvements if necessary.\n\nRequested originally in IndieWeb meta chat, <a href=\"https://chat.indieweb.org/meta/2023-04-10#t1681162290848100\">earlier today</a>.\n</p>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"https://github.com/capjamesg/indieweb-etherpad-archiver/issues": {
"type": "entry",
"url": "https://github.com/capjamesg/indieweb-etherpad-archiver/issues",
"name": "GitHub project \u201cindieweb-etherpad-archiver\u201d",
"post-type": "article"
}
},
"_id": "36467173",
"_source": "1",
"_is_read": true
}
@koss love this #Indieweb and #fediverse statement š„
{
"type": "entry",
"author": {
"name": "@tchambers",
"url": "https://indieweb.social/@tchambers",
"photo": null
},
"url": "https://indieweb.social/@tchambers/110177906494385066",
"content": {
"html": "<p><span class=\"h-card\"><a class=\"u-url\" href=\"https://nocorp.net/@koss\">@<span>koss</span></a></span> love this <a href=\"https://indieweb.social/tags/Indieweb\">#<span>Indieweb</span></a> and <a href=\"https://indieweb.social/tags/fediverse\">#<span>fediverse</span></a> statement \ud83d\udd25</p>",
"text": "@koss love this #Indieweb and #fediverse statement \ud83d\udd25"
},
"published": "2023-04-11T02:50:34+00:00",
"post-type": "note",
"_id": "36465355",
"_source": "7235",
"_is_read": true
}