It’s a very autumnal IndieWebCamp in Nuremberg this weekend.
{
"type": "entry",
"author": {
"name": "Paul Robert Lloyd",
"url": "https://paulrobertlloyd.com",
"photo": "https://www.gravatar.com/avatar/ba4d820a739e911306801f252867dea1?s=96&d=https%3A%2F%2Fmicro.blog%2Fimages%2Fblank_avatar.png"
},
"url": "https://paulrobertlloyd.com/2023/302/p1/",
"content": {
"html": "<p>It\u2019s a very autumnal IndieWebCamp in Nuremberg this weekend.</p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fpaulrobertlloyd.com%2Fmedia%2F2023%2F302%2Fp1%2F1.jpg\" alt=\"Red, orange and yellow leaves cut out to resemble the IndieWebCamp logo.\" />",
"text": "It\u2019s a very autumnal IndieWebCamp in Nuremberg this weekend."
},
"published": "2023-10-29T10:15:00+00:00",
"post-type": "note",
"_id": "39309381",
"_source": "7224",
"_is_read": false
}
Looks like some great session topics at IndieWebCamp Nuremberg. I wasn’t organized enough to attend remotely because of the time zone difference… Catching up on the notes and chat now.
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://micro.blog/manton/avatar.jpg"
},
"url": "https://www.manton.org/2023/10/29/looks-like-some.html",
"content": {
"html": "<p>Looks like some great <a href=\"https://indieweb.org/2023/Nuremberg/Schedule\">session topics at IndieWebCamp Nuremberg</a>. I wasn\u2019t organized enough to attend remotely because of the time zone difference\u2026 Catching up on the notes and chat now.</p>",
"text": "Looks like some great session topics at IndieWebCamp Nuremberg. I wasn\u2019t organized enough to attend remotely because of the time zone difference\u2026 Catching up on the notes and chat now."
},
"published": "2023-10-29T11:52:46-05:00",
"post-type": "note",
"_id": "39308253",
"_source": "12",
"_is_read": false
}
This was a test of an entirely new streaming upload architecture for my micropub endpoint now that it uses Netlify Functions V2 (which uses browser Request and Response objects). It’s mixed streams due to how multipart bodies have to be decoded, so I’m surprised that this worked on the first go. You’re seeing it here thanks to a GitHub Actions workflow doing POSSE. #indieweb
{
"type": "entry",
"author": {
"name": "@qubyte",
"url": "https://mastodon.social/@qubyte",
"photo": null
},
"url": "https://mastodon.social/@qubyte/111318336140287820",
"content": {
"html": "<p>This was a test of an entirely new streaming upload architecture for my micropub endpoint now that it uses Netlify Functions V2 (which uses browser Request and Response objects). It\u2019s mixed streams due to how multipart bodies have to be decoded, so I\u2019m surprised that this worked on the first go. You\u2019re seeing it here thanks to a GitHub Actions workflow doing POSSE. <a href=\"https://mastodon.social/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "This was a test of an entirely new streaming upload architecture for my micropub endpoint now that it uses Netlify Functions V2 (which uses browser Request and Response objects). It\u2019s mixed streams due to how multipart bodies have to be decoded, so I\u2019m surprised that this worked on the first go. You\u2019re seeing it here thanks to a GitHub Actions workflow doing POSSE. #indieweb"
},
"published": "2023-10-29T12:36:49+00:00",
"post-type": "note",
"_id": "39306169",
"_source": "7235",
"_is_read": false
}
It’s a very autumnal IndieWebCamp in Nuremberg this weekend.
{
"type": "entry",
"author": {
"name": "Paul Robert Lloyd",
"url": "https://paulrobertlloyd.com",
"photo": null
},
"url": "https://paulrobertlloyd.com/2023/302/p1/",
"published": "2023-10-29T10:15:00+00:00",
"content": {
"html": "<p>It\u2019s a very autumnal IndieWebCamp in Nuremberg this weekend.</p><img src=\"https://paulrobertlloyd.com/media/2023/302/p1/1.jpg\" alt=\"Red, orange and yellow leaves cut out to resemble the IndieWebCamp logo.\" />",
"text": "It\u2019s a very autumnal IndieWebCamp in Nuremberg this weekend."
},
"post-type": "note",
"_id": "39305710",
"_source": "3686",
"_is_read": false
}
Red, orange and yellow leaves cut out to resemble the IndieWebCamp logo.
{
"type": "entry",
"author": {
"name": "@paulrobertlloyd",
"url": "https://mastodon.social/@paulrobertlloyd",
"photo": null
},
"url": "https://mastodon.social/@paulrobertlloyd/111317781191440340",
"content": {
"html": "Red, orange and yellow leaves cut out to resemble the IndieWebCamp logo.",
"text": "Red, orange and yellow leaves cut out to resemble the IndieWebCamp logo."
},
"published": "2023-10-29T10:15:42+00:00",
"post-type": "note",
"_id": "39305512",
"_source": "7235",
"_is_read": false
}
Last week, I sent out the first issue of Own Your Web, my new newsletter about designing, building, creating, and publishing on the Web – and the power of personal sites.
Issue 1 – Your Superpower: https://buttondown.email/ownyourweb/archive/issue-01/
✨ Sign up here if you like: ✨
👇
https://matthiasott.com/newsletter
#newsletter #web #design #webdev #indieweb #openweb #OwnYourWeb
{
"type": "entry",
"author": {
"name": "@matthiasott",
"url": "https://mastodon.social/@matthiasott",
"photo": null
},
"url": "https://mastodon.social/@matthiasott/111317773828941017",
"content": {
"html": "<p>Last week, I sent out the first issue of Own Your Web, my new newsletter about designing, building, creating, and publishing on the Web \u2013 and the power of personal sites.</p><p>Issue 1 \u2013 Your Superpower: <a href=\"https://buttondown.email/ownyourweb/archive/issue-01/\"><span>https://</span><span>buttondown.email/ownyourweb/ar</span><span>chive/issue-01/</span></a> </p><p>\u2728 Sign up here if you like: \u2728<br />\ud83d\udc47<br /><a href=\"https://matthiasott.com/newsletter\"><span>https://</span><span>matthiasott.com/newsletter</span><span></span></a></p><p><a href=\"https://mastodon.social/tags/newsletter\">#<span>newsletter</span></a> <a href=\"https://mastodon.social/tags/web\">#<span>web</span></a> <a href=\"https://mastodon.social/tags/design\">#<span>design</span></a> <a href=\"https://mastodon.social/tags/webdev\">#<span>webdev</span></a> <a href=\"https://mastodon.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://mastodon.social/tags/openweb\">#<span>openweb</span></a> <a href=\"https://mastodon.social/tags/OwnYourWeb\">#<span>OwnYourWeb</span></a></p>",
"text": "Last week, I sent out the first issue of Own Your Web, my new newsletter about designing, building, creating, and publishing on the Web \u2013 and the power of personal sites.Issue 1 \u2013 Your Superpower: https://buttondown.email/ownyourweb/archive/issue-01/ \u2728 Sign up here if you like: \u2728\n\ud83d\udc47\nhttps://matthiasott.com/newsletter#newsletter #web #design #webdev #indieweb #openweb #OwnYourWeb"
},
"published": "2023-10-29T10:13:49+00:00",
"post-type": "note",
"_id": "39305513",
"_source": "7235",
"_is_read": false
}
Vandaag is Global PSC Awareness Day. Ik schreef er een blogpost over, eveneens in het kader van de #Indieweb Carnival.
https://diggingthedigital.com/global-psc-awareness-day-and-selfcare/
{
"type": "entry",
"author": {
"name": "@frank",
"url": "https://indieweb.social/@frank",
"photo": null
},
"url": "https://indieweb.social/@frank/111317698860273554",
"content": {
"html": "<p>Vandaag is Global PSC Awareness Day. Ik schreef er een blogpost over, eveneens in het kader van de <a href=\"https://indieweb.social/tags/Indieweb\">#<span>Indieweb</span></a> Carnival. </p><p><a href=\"https://diggingthedigital.com/global-psc-awareness-day-and-selfcare/\"><span>https://</span><span>diggingthedigital.com/global-p</span><span>sc-awareness-day-and-selfcare/</span></a></p>",
"text": "Vandaag is Global PSC Awareness Day. Ik schreef er een blogpost over, eveneens in het kader van de #Indieweb Carnival. https://diggingthedigital.com/global-psc-awareness-day-and-selfcare/"
},
"published": "2023-10-29T09:54:45+00:00",
"post-type": "note",
"_id": "39305450",
"_source": "7235",
"_is_read": false
}
doing crimes in javascript so i could implement a proper audio player (courtesy of Wimpy Player) on my website
#indieweb #web #neocities #internet
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://ambrosia.moe/notes/9le9ogn3yt",
"content": {
"html": "<p><span>doing crimes in javascript so i could implement a proper audio player (courtesy of Wimpy Player) on my website<br /></span><a href=\"https://ambrosia.moe/tags/indieweb\">#indieweb</a><span> </span><a href=\"https://ambrosia.moe/tags/web\">#web</a><span> </span><a href=\"https://ambrosia.moe/tags/neocities\">#neocities</a><span> </span><a href=\"https://ambrosia.moe/tags/internet\">#internet</a></p>",
"text": "doing crimes in javascript so i could implement a proper audio player (courtesy of Wimpy Player) on my website\n#indieweb #web #neocities #internet"
},
"published": "2023-10-28T23:58:10+00:00",
"post-type": "note",
"_id": "39303174",
"_source": "7235",
"_is_read": false
}
every time I try searching for "serverless" (no, not /that/ serverless), I come up with a blank.
so... you can serve a bunch of static content via HTTP (or indeed, via S3 or #veilid or #torrent)
you can build up nice RSS feeds to pull content
but how do you notify a site owner that you'd like them to read messages on your site?
what's the secure, relatively minimal, relatively RCE-free, indieweb/selfhosted way to do that? e.g., no central server
a tor site with just one webhook spot?
dns records?
DHT search?
social network but over S3 and S3 keys?
social network over HTTP-RSS and email?
minimal vuln / attack surface approach would be good.
like, something you'd be okay running on a laptop
the RSS-FTP-upload thing kinda works because it's a poster you upload (see XKCD / CIA defacement)
as long as you have some kind of method for an inbox.... which is the rub.
maybe an HTTP file server with /one/ CGI script?
minimalism... minimal features... SMTP/HTTP/Tor ugh #cybersecurity #p2p #indieweb
{
"type": "entry",
"author": {
"name": "@risottobias",
"url": "https://tech.lgbt/@risottobias",
"photo": null
},
"url": "https://tech.lgbt/@risottobias/111315156739338848",
"content": {
"html": "<p>every time I try searching for \"serverless\" (no, not /that/ serverless), I come up with a blank.</p><p>so... you can serve a bunch of static content via HTTP (or indeed, via S3 or <a href=\"https://tech.lgbt/tags/veilid\">#<span>veilid</span></a> or <a href=\"https://tech.lgbt/tags/torrent\">#<span>torrent</span></a>) </p><p>you can build up nice RSS feeds to pull content</p><p>but how do you notify a site owner that you'd like them to read messages on your site?</p><p>what's the secure, relatively minimal, relatively RCE-free, indieweb/selfhosted way to do that? e.g., no central server</p><p>a tor site with just one webhook spot?</p><p>dns records?</p><p>DHT search?</p><p>social network but over S3 and S3 keys?</p><p>social network over HTTP-RSS and email?</p><p>minimal vuln / attack surface approach would be good.</p><p>like, something you'd be okay running on a laptop</p><p>the RSS-FTP-upload thing kinda works because it's a poster you upload (see XKCD / CIA defacement)</p><p>as long as you have some kind of method for an inbox.... which is the rub.</p><p>maybe an HTTP file server with /one/ CGI script?</p><p>minimalism... minimal features... SMTP/HTTP/Tor ugh <a href=\"https://tech.lgbt/tags/cybersecurity\">#<span>cybersecurity</span></a> <a href=\"https://tech.lgbt/tags/p2p\">#<span>p2p</span></a> <a href=\"https://tech.lgbt/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "every time I try searching for \"serverless\" (no, not /that/ serverless), I come up with a blank.so... you can serve a bunch of static content via HTTP (or indeed, via S3 or #veilid or #torrent) you can build up nice RSS feeds to pull contentbut how do you notify a site owner that you'd like them to read messages on your site?what's the secure, relatively minimal, relatively RCE-free, indieweb/selfhosted way to do that? e.g., no central servera tor site with just one webhook spot?dns records?DHT search?social network but over S3 and S3 keys?social network over HTTP-RSS and email?minimal vuln / attack surface approach would be good.like, something you'd be okay running on a laptopthe RSS-FTP-upload thing kinda works because it's a poster you upload (see XKCD / CIA defacement)as long as you have some kind of method for an inbox.... which is the rub.maybe an HTTP file server with /one/ CGI script?minimalism... minimal features... SMTP/HTTP/Tor ugh #cybersecurity #p2p #indieweb"
},
"published": "2023-10-28T23:08:16+00:00",
"post-type": "note",
"_id": "39302909",
"_source": "7235",
"_is_read": false
}
GoToSocial
I’ve been playing around the last few days with GoToSocial, which is a federated social media application that implements ActivityPub.
#100DaysofIndieWeb #2023 #activitypub #AtLeast100 #indieweb
https://novakeith.net/2023/10/28/gotosocial/
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://novakeith.net/2023/10/28/gotosocial/",
"content": {
"html": "<p><strong>GoToSocial</strong></p><p>I\u2019ve been playing around the last few days with GoToSocial, which is a federated social media application that implements ActivityPub.</p><p><a class=\"u-tag u-category\" href=\"https://novakeith.net/tag/100daysofindieweb/\">#100DaysofIndieWeb</a> <a class=\"u-tag u-category\" href=\"https://novakeith.net/tag/2023/\">#2023</a> <a class=\"u-tag u-category\" href=\"https://novakeith.net/tag/activitypub/\">#activitypub</a> <a class=\"u-tag u-category\" href=\"https://novakeith.net/tag/atleast100/\">#AtLeast100</a> <a class=\"u-tag u-category\" href=\"https://novakeith.net/tag/indieweb/\">#indieweb</a></p><p><a href=\"https://novakeith.net/2023/10/28/gotosocial/\">https://novakeith.net/2023/10/28/gotosocial/</a></p>",
"text": "GoToSocialI\u2019ve been playing around the last few days with GoToSocial, which is a federated social media application that implements ActivityPub.#100DaysofIndieWeb #2023 #activitypub #AtLeast100 #indiewebhttps://novakeith.net/2023/10/28/gotosocial/"
},
"published": "2023-10-28T20:27:49+00:00",
"post-type": "note",
"_id": "39302075",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-10-28T22:04:00+02:00",
"url": "https://www.jeremycherfas.net/blog/stop-the-linkrot",
"name": "Stop the Linkrot",
"content": {
"text": "We had a session at IndieWebCamp N\u00fcrnberg on linkrot in its many guises. As time goes by, URLs you link to and things that link to your URLs almost inevitably break in different ways. Perhaps a whole domain vanishes or becomes a sleaze-hub. Perhaps someone changes the structure of their website, b...\n\t\t\t There\u2019s more \u27a2",
"html": "<p>We had a session at <a href=\"https://indieweb.org/2023/Nuremberg\">IndieWebCamp N\u00fcrnberg</a> on linkrot in its many guises. As time goes by, URLs you link to and things that link to your URLs almost inevitably break in different ways. Perhaps a whole domain vanishes or becomes a sleaze-hub. Perhaps someone changes the structure of their website, b...</p>\n\t\t\t <span style=\"float:right;font-size:smaller;\"><a href=\"https://www.jeremycherfas.net/blog/stop-the-linkrot\">There\u2019s more \u27a2</a></span>"
},
"author": {
"type": "card",
"name": "Jeremy Cherfas",
"url": "https://jeremycherfas.net",
"photo": "https://www.jeremycherfas.net/user/themes/tailwind/images/zoot.jpg"
},
"post-type": "article",
"_id": "39301908",
"_source": "202",
"_is_read": false
}
So, let's join the Indieweb movement and empower musicians to take control of their online presence, foster authentic connections, and celebrate their artistic freedom. It's about embracing ownership, privacy, community, and sustainability. Together, let's build a decentralized and inclusive musical landscape that puts musicians and their fans at the heart of it all. 🎵🌐❤️
#Indieweb #Privacy #CreativeFreedom #Sustainability
{
"type": "entry",
"author": {
"name": "@beatMage",
"url": "https://ravenation.club/@beatMage",
"photo": null
},
"url": "https://ravenation.club/@beatMage/111314407112151917",
"content": {
"html": "<p>So, let's join the Indieweb movement and empower musicians to take control of their online presence, foster authentic connections, and celebrate their artistic freedom. It's about embracing ownership, privacy, community, and sustainability. Together, let's build a decentralized and inclusive musical landscape that puts musicians and their fans at the heart of it all. \ud83c\udfb5\ud83c\udf10\u2764\ufe0f</p><p><a href=\"https://ravenation.club/tags/Indieweb\">#<span>Indieweb</span></a> <a href=\"https://ravenation.club/tags/Privacy\">#<span>Privacy</span></a> <a href=\"https://ravenation.club/tags/CreativeFreedom\">#<span>CreativeFreedom</span></a> <a href=\"https://ravenation.club/tags/Sustainability\">#<span>Sustainability</span></a></p>",
"text": "So, let's join the Indieweb movement and empower musicians to take control of their online presence, foster authentic connections, and celebrate their artistic freedom. It's about embracing ownership, privacy, community, and sustainability. Together, let's build a decentralized and inclusive musical landscape that puts musicians and their fans at the heart of it all. \ud83c\udfb5\ud83c\udf10\u2764\ufe0f#Indieweb #Privacy #CreativeFreedom #Sustainability"
},
"published": "2023-10-28T19:57:37+00:00",
"post-type": "note",
"_id": "39301848",
"_source": "7235",
"_is_read": false
}
In the spirit of POSSE, I just spent 3 hours trying to get some backfeeds from silos like Instagram and Facebook going… I made it work before, but I can’t remember what I did with my last website that made it work.
It’s a real head scratcher. I guess I’ll need to ensure crossposting is turned on here at StarrWulfe HQ then I won’t have to deal with this foolishness again.
If anyone has some experience with Brid.gy and how to do this effectively, please give me a shout. 🙇🏾♀️
#WebsiteWoes
#Indieweb #WebsiteWoes
https://starrwulfe.xyz/b/AaS
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://starrwulfe.xyz/2023/10/28/13/22/38126/",
"content": {
"html": "<p><strong></strong></p> <p>In the spirit of <a href=\"https://indieweb.org/POSSE\">POSSE</a>, I just spent 3 hours trying to get some <a href=\"https://indieweb.org/backfeed\">backfeeds</a> from silos like Instagram and Facebook going\u2026 I made it work before, but I can\u2019t remember what I did with my last website that made it work.</p> <p>It\u2019s a real head scratcher. I guess I\u2019ll need to ensure crossposting is turned on here at StarrWulfe HQ then I won\u2019t have to deal with this foolishness again. </p><p>If anyone has some experience with Brid.gy and how to do this effectively, please give me a shout. \ud83d\ude47\ud83c\udffe\u200d\u2640\ufe0f</p><p><a class=\"u-tag u-category\" href=\"https://starrwulfe.xyz/tag/websitewoes/\">#WebsiteWoes</a> </p><p><a class=\"u-tag u-category\" href=\"https://starrwulfe.xyz/tag/indieweb/\">#Indieweb</a> <a class=\"u-tag u-category\" href=\"https://starrwulfe.xyz/tag/websitewoes/\">#WebsiteWoes</a></p><p>https://starrwulfe.xyz/b/AaS</p>",
"text": "In the spirit of POSSE, I just spent 3 hours trying to get some backfeeds from silos like Instagram and Facebook going\u2026 I made it work before, but I can\u2019t remember what I did with my last website that made it work. It\u2019s a real head scratcher. I guess I\u2019ll need to ensure crossposting is turned on here at StarrWulfe HQ then I won\u2019t have to deal with this foolishness again. If anyone has some experience with Brid.gy and how to do this effectively, please give me a shout. \ud83d\ude47\ud83c\udffe\u200d\u2640\ufe0f#WebsiteWoes #Indieweb #WebsiteWoeshttps://starrwulfe.xyz/b/AaS"
},
"published": "2023-10-28T17:22:33+00:00",
"post-type": "note",
"_id": "39300918",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://www.ghordano.com/2023/10/28/posse-is-the-right-idea-but/",
"content": {
"html": "<p><a href=\"https://www.ghordano.com/2023/10/28/posse-is-the-right-idea-but/\">https://www.ghordano.com/2023/10/28/posse-is-the-right-idea-but/</a></p><p><a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/activitypub/\">#ActivityPub</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/fediverse/\">#Fediverse</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/indieweb/\">#IndieWeb</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/internet/\">#Internet</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/social-media/\">#SocialMedia</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/writing/\">#Writing</a></p>",
"text": "https://www.ghordano.com/2023/10/28/posse-is-the-right-idea-but/#ActivityPub #Fediverse #IndieWeb #Internet #SocialMedia #Writing"
},
"published": "2023-10-28T15:41:46+00:00",
"post-type": "note",
"_id": "39300134",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://www.ghordano.com/2023/10/28/blogging-is-a-lifeline/",
"content": {
"html": "<p><a href=\"https://www.ghordano.com/2023/10/28/blogging-is-a-lifeline/\">https://www.ghordano.com/2023/10/28/blogging-is-a-lifeline/</a></p><p><a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/blogging/\">#Blogging</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/indieweb/\">#IndieWeb</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/internet/\">#Internet</a></p>",
"text": "https://www.ghordano.com/2023/10/28/blogging-is-a-lifeline/#Blogging #IndieWeb #Internet"
},
"published": "2023-10-28T15:13:53+00:00",
"post-type": "note",
"_id": "39299878",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://www.ghordano.com/2023/10/28/digital-gardens-need-rss/",
"content": {
"html": "<p><a href=\"https://www.ghordano.com/2023/10/28/digital-gardens-need-rss/\">https://www.ghordano.com/2023/10/28/digital-gardens-need-rss/</a></p><p><a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/digital-garden/\">#DigitalGarden</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/indieweb/\">#IndieWeb</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/internet/\">#Internet</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/rss/\">#RSS</a> <a class=\"u-tag u-category\" href=\"https://www.ghordano.com/tag/technology/\">#Technology</a></p>",
"text": "https://www.ghordano.com/2023/10/28/digital-gardens-need-rss/#DigitalGarden #IndieWeb #Internet #RSS #Technology"
},
"published": "2023-10-28T15:09:44+00:00",
"post-type": "note",
"_id": "39299879",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@rubenwardy",
"url": "https://fosstodon.org/@rubenwardy",
"photo": null
},
"url": "https://fosstodon.org/@rubenwardy/111312967344065019",
"content": {
"html": "<p>New blog post: I've switched from <a href=\"https://fosstodon.org/tags/Jekyll\">#<span>Jekyll</span></a> to <a href=\"https://fosstodon.org/tags/Eleventy\">#<span>Eleventy</span></a>: why, how, and my thoughts as a new user</p><p><a href=\"https://blog.rubenwardy.com/2023/10/27/switched-to-eleventy/\"><span>https://</span><span>blog.rubenwardy.com/2023/10/27</span><span>/switched-to-eleventy/</span></a></p><p><a href=\"https://fosstodon.org/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://fosstodon.org/tags/webdev\">#<span>webdev</span></a></p>",
"text": "New blog post: I've switched from #Jekyll to #Eleventy: why, how, and my thoughts as a new userhttps://blog.rubenwardy.com/2023/10/27/switched-to-eleventy/#indieweb #webdev"
},
"published": "2023-10-28T13:51:28+00:00",
"post-type": "note",
"_id": "39299256",
"_source": "7235",
"_is_read": false
}
Publish Own Site, Syndicate Elsewhere (POSSE).
The idea is that you, the poster, should post on a website that you own. Not an app that can go away and take all your posts with it, not a platform with ever-shifting rules and algorithms. Your website.
The Verge writing about the indieweb!
POSSE: a better way to post on social networks, The Verge
https://paulfosterdesign.wordpress.com/2023/10/28/social-network-posse/
#blogging #fediverse #IndieWeb #Mastodon #SocialNetworking #Twitter
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://paulfosterdesign.wordpress.com/2023/10/28/social-network-posse/",
"content": {
"html": "<p>Publish Own Site, Syndicate Elsewhere (POSSE).</p><blockquote><p>The idea is that you, the poster, should post on a website that you own. Not an app that can go away and take all your posts with it, not a platform with ever-shifting rules and algorithms. <em>Your website</em>.</p></blockquote><p>The Verge writing about the indieweb!</p><p><a href=\"https://www.theverge.com/2023/10/23/23928550/posse-posting-activitypub-standard-twitter-tumblr-mastodon\">POSSE: a better way to post on social networks</a>, The Verge</p><p><a href=\"https://paulfosterdesign.wordpress.com/2023/10/28/social-network-posse/\">https://paulfosterdesign.wordpress.com/2023/10/28/social-network-posse/</a></p><p><a class=\"u-tag u-category\" href=\"https://paulfosterdesign.wordpress.com/tag/blogging/\">#blogging</a> <a class=\"u-tag u-category\" href=\"https://paulfosterdesign.wordpress.com/tag/fediverse/\">#fediverse</a> <a class=\"u-tag u-category\" href=\"https://paulfosterdesign.wordpress.com/tag/indieweb/\">#IndieWeb</a> <a class=\"u-tag u-category\" href=\"https://paulfosterdesign.wordpress.com/tag/mastodon/\">#Mastodon</a> <a class=\"u-tag u-category\" href=\"https://paulfosterdesign.wordpress.com/tag/socialnetworking/\">#SocialNetworking</a> <a class=\"u-tag u-category\" href=\"https://paulfosterdesign.wordpress.com/tag/twitter/\">#Twitter</a></p>",
"text": "Publish Own Site, Syndicate Elsewhere (POSSE).The idea is that you, the poster, should post on a website that you own. Not an app that can go away and take all your posts with it, not a platform with ever-shifting rules and algorithms. Your website.The Verge writing about the indieweb!POSSE: a better way to post on social networks, The Vergehttps://paulfosterdesign.wordpress.com/2023/10/28/social-network-posse/#blogging #fediverse #IndieWeb #Mastodon #SocialNetworking #Twitter"
},
"published": "2023-10-28T10:17:20+00:00",
"post-type": "note",
"_id": "39298088",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@hamatti",
"url": "https://mastodon.world/@hamatti",
"photo": null
},
"url": "https://mastodon.world/@hamatti/111311576753431751",
"content": {
"html": "<p>The newest addition to my blog is showing the top 5 most popular blog posts from the past 30 days.</p><p>Here's how I built it with <a href=\"https://mastodon.world/tags/Netlify\">#<span>Netlify</span></a> Analytics API and <a href=\"https://mastodon.world/tags/eleventy\">#<span>eleventy</span></a>.</p><p><a href=\"https://mastodon.world/tags/blogging\">#<span>blogging</span></a> <a href=\"https://mastodon.world/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://mastodon.world/tags/website\">#<span>website</span></a> <a href=\"https://mastodon.world/tags/blogger\">#<span>blogger</span></a> <a href=\"https://mastodon.world/tags/StaticSiteGenerator\">#<span>StaticSiteGenerator</span></a> <a href=\"https://mastodon.world/tags/PersonalWebsite\">#<span>PersonalWebsite</span></a> </p><p><a href=\"https://hamatti.org/posts/showing-most-popular-posts-with-netlify-analytics/\"><span>https://</span><span>hamatti.org/posts/showing-most</span><span>-popular-posts-with-netlify-analytics/</span></a></p>",
"text": "The newest addition to my blog is showing the top 5 most popular blog posts from the past 30 days.Here's how I built it with #Netlify Analytics API and #eleventy.#blogging #IndieWeb #website #blogger #StaticSiteGenerator #PersonalWebsite https://hamatti.org/posts/showing-most-popular-posts-with-netlify-analytics/"
},
"published": "2023-10-28T07:57:49+00:00",
"post-type": "note",
"_id": "39297474",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "Will Norris",
"url": "https://willnorris.com/",
"photo": null
},
"url": "https://willnorris.com/2023/caddy-snippets/",
"published": "2023-10-27T21:20:28-07:00",
"content": {
"html": "<p>I moved my website from WordPress <a href=\"https://willnorris.com/2014/one-step-forward-two-steps-back/\">to a static site generator</a> in 2014,\nand over the next few months, I wrote several posts about how I achieved\ncertain dynamic behavior using custom nginx configurations.\nHowever, I <a href=\"https://github.com/willnorris/willnorris.com/commit/6f2f7445c1242a531d7d9efe60f41e8b0f33a92a\">switched over to Caddy</a> as my web server in 2017,\nbut I never updated how I adapted my server configuration.\nIn basically all cases, I find the Caddy config much simpler and easier to read,\nthough that may be because it\u2019s all I ever use anymore.\nSo here is my long overdue updates to a few old blog posts about adding\nsome custom web server behavior for static sites.</p>\n<h2>Supporting WebFinger</h2>\n<p>I July 2014, I wrote <a href=\"https://willnorris.com/2014/webfinger-with-static-files-nginx/\">Supporting WebFinger with Static Files and Nginx</a>.\nI still use Webfinger, now primarily for my custom Mastodon server and most recently with <a href=\"https://tailscale.com/kb/1240/sso-custom-oidc/\">OpenID Connect for Tailscale</a>.\nMy old nginx config required lua support to be compiled in, which wasn\u2019t awful, but kind of annoying.\nMy Caddy configuration is mostly equivalent, though I didn\u2019t bother to return\nthe proper <code>400</code> and <code>405</code> status codes on an incorrect resource parameter or HTTP method.\nInstead, they just return a <code>404</code> which suits me just fine.</p>\n<p>I define a <a href=\"https://caddyserver.com/docs/caddyfile/matchers#named-matchers\">named matcher</a> that matches on the webfinger well-known URL,\nthe HTTP methods I want to support, and one of several valid resource values.\nThen I rewrite the request to a static file like before and set some response headers.</p>\n<pre><code>@webfinger {\n path /.well-known/webfinger\n method GET HEAD\n query resource=acct:will@willnorris.com\n query resource=mailto:will@willnorris.com\n query resource=https://willnorris.com\n query resource=https://willnorris.com/\n}\nrewrite @webfinger /webfinger.json\nheader @webfinger {\n Content-Type \"application/jrd+json\"\n Access-Control-Allow-Origin \"*\"\n X-Robots-Tag \"noindex\"\n}\n</code></pre><h2>Proxying webmentions</h2>\n<p>In August 2014, I wrote <a href=\"https://willnorris.com/2014/proxying-webmentions-with-nginx/\">Proxying webmentions with nginx</a>.\nI still proxy my webmentions to an external service, though I now use webmention.io.\nThe config requires a tiny bit more work because my URL path didn\u2019t match where I needed to send it,\nbut it is still pretty straightforward.</p>\n<p>Like before, I use a named matcher to match the relevant requests,\nthen use Caddy\u2019s reverse_proxy directive to send them to webmention.io.</p>\n<pre><code>@webmention {\n method POST\n path /api/webmention/\n}\nhandle @webmention {\n uri replace /api/webmention/ /willnorris.com/webmention\n reverse_proxy https://webmention.io {\n header_up Host {upstream_hostport}\n }\n}\n</code></pre><h2>Fetching go packages</h2>\n<p>In February 2015, I wrote <a href=\"https://willnorris.com/2015/go-get-subpackages-nginx/\">Fetching Go Sub-Packages on Static Sites</a>.\nUnsurprisingly, I still use my own domain in the import path of all of my go packages.\nI currently use Hugo to generate my site, so I have a <a href=\"https://github.com/willnorris/willnorris.com/blob/main/layouts/go/single.html\">custom layout</a> for my go package files\nwhich reads relevant metadata from the page front matter and populates the necessary meta tags.</p>\n<p>To serve the right page on <code>go get</code> requests for sub-packages, the Caddy config is quite minimal.\nA named matcher is used to match requests for go sub-packages that include the <code>go-get</code> parameter,\nand then serve the contents of the top-level go package file without the sub-package.</p>\n<pre><code>@gopkg {\n path_regexp gopkg (/go/\\w+/).+\n query go-get=*\n}\nrewrite @gopkg {re.gopkg.1}\n</code></pre><h2>Do more with custom Caddy modules</h2>\n<p>I\u2019ve also done a lot more interesting things with custom Caddy modules\nlike embedding <a href=\"https://willnorris.com/2014/a-self-hosted-alternative-to-jetpacks-photon-service/\">my imageproxy service</a> as well as a Tailscale node directly into the Caddy binary.\nBut that will be a topic for another day.</p>",
"text": "I moved my website from WordPress to a static site generator in 2014,\nand over the next few months, I wrote several posts about how I achieved\ncertain dynamic behavior using custom nginx configurations.\nHowever, I switched over to Caddy as my web server in 2017,\nbut I never updated how I adapted my server configuration.\nIn basically all cases, I find the Caddy config much simpler and easier to read,\nthough that may be because it\u2019s all I ever use anymore.\nSo here is my long overdue updates to a few old blog posts about adding\nsome custom web server behavior for static sites.\nSupporting WebFinger\nI July 2014, I wrote Supporting WebFinger with Static Files and Nginx.\nI still use Webfinger, now primarily for my custom Mastodon server and most recently with OpenID Connect for Tailscale.\nMy old nginx config required lua support to be compiled in, which wasn\u2019t awful, but kind of annoying.\nMy Caddy configuration is mostly equivalent, though I didn\u2019t bother to return\nthe proper 400 and 405 status codes on an incorrect resource parameter or HTTP method.\nInstead, they just return a 404 which suits me just fine.\nI define a named matcher that matches on the webfinger well-known URL,\nthe HTTP methods I want to support, and one of several valid resource values.\nThen I rewrite the request to a static file like before and set some response headers.\n@webfinger {\n path /.well-known/webfinger\n method GET HEAD\n query resource=acct:will@willnorris.com\n query resource=mailto:will@willnorris.com\n query resource=https://willnorris.com\n query resource=https://willnorris.com/\n}\nrewrite @webfinger /webfinger.json\nheader @webfinger {\n Content-Type \"application/jrd+json\"\n Access-Control-Allow-Origin \"*\"\n X-Robots-Tag \"noindex\"\n}\nProxying webmentions\nIn August 2014, I wrote Proxying webmentions with nginx.\nI still proxy my webmentions to an external service, though I now use webmention.io.\nThe config requires a tiny bit more work because my URL path didn\u2019t match where I needed to send it,\nbut it is still pretty straightforward.\nLike before, I use a named matcher to match the relevant requests,\nthen use Caddy\u2019s reverse_proxy directive to send them to webmention.io.\n@webmention {\n method POST\n path /api/webmention/\n}\nhandle @webmention {\n uri replace /api/webmention/ /willnorris.com/webmention\n reverse_proxy https://webmention.io {\n header_up Host {upstream_hostport}\n }\n}\nFetching go packages\nIn February 2015, I wrote Fetching Go Sub-Packages on Static Sites.\nUnsurprisingly, I still use my own domain in the import path of all of my go packages.\nI currently use Hugo to generate my site, so I have a custom layout for my go package files\nwhich reads relevant metadata from the page front matter and populates the necessary meta tags.\nTo serve the right page on go get requests for sub-packages, the Caddy config is quite minimal.\nA named matcher is used to match requests for go sub-packages that include the go-get parameter,\nand then serve the contents of the top-level go package file without the sub-package.\n@gopkg {\n path_regexp gopkg (/go/\\w+/).+\n query go-get=*\n}\nrewrite @gopkg {re.gopkg.1}\nDo more with custom Caddy modules\nI\u2019ve also done a lot more interesting things with custom Caddy modules\nlike embedding my imageproxy service as well as a Tailscale node directly into the Caddy binary.\nBut that will be a topic for another day."
},
"name": "Caddy snippets for static sites",
"post-type": "article",
"_id": "39297157",
"_source": "248",
"_is_read": false
}