I have been remaking my website lately!
It is squarely situated within the retro web or indie web subculture. Only semantic XHTML and CSS, with link lists, blinkies, tons of gifs, playful designs, shrines, blog posts... Like on #Geocities in the far-gone past! Should be accessible too.
It still ought to be filled with content, but we're getting there.
Here you go:
https://libre.town
#xhtml #css #retroweb #indieweb #showcase #blog #internet #yesterweb #reclaimtheweb #oled #website
{
"type": "entry",
"author": {
"name": "@dazego",
"url": "https://social.tchncs.de/@dazego",
"photo": null
},
"url": "https://social.tchncs.de/@dazego/109566383941801353",
"content": {
"html": "<p>I have been remaking my website lately!</p><p>It is squarely situated within the retro web or indie web subculture. Only semantic XHTML and CSS, with link lists, blinkies, tons of gifs, playful designs, shrines, blog posts... Like on <a href=\"https://social.tchncs.de/tags/Geocities\">#<span>Geocities</span></a> in the far-gone past! Should be accessible too.</p><p>It still ought to be filled with content, but we're getting there.</p><p>Here you go:<br /><a href=\"https://libre.town\"><span>https://</span><span>libre.town</span><span></span></a></p><p><a href=\"https://social.tchncs.de/tags/xhtml\">#<span>xhtml</span></a> <a href=\"https://social.tchncs.de/tags/css\">#<span>css</span></a> <a href=\"https://social.tchncs.de/tags/retroweb\">#<span>retroweb</span></a> <a href=\"https://social.tchncs.de/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://social.tchncs.de/tags/showcase\">#<span>showcase</span></a> <a href=\"https://social.tchncs.de/tags/blog\">#<span>blog</span></a> <a href=\"https://social.tchncs.de/tags/internet\">#<span>internet</span></a> <a href=\"https://social.tchncs.de/tags/yesterweb\">#<span>yesterweb</span></a> <a href=\"https://social.tchncs.de/tags/reclaimtheweb\">#<span>reclaimtheweb</span></a> <a href=\"https://social.tchncs.de/tags/oled\">#<span>oled</span></a> <a href=\"https://social.tchncs.de/tags/website\">#<span>website</span></a></p>",
"text": "I have been remaking my website lately!It is squarely situated within the retro web or indie web subculture. Only semantic XHTML and CSS, with link lists, blinkies, tons of gifs, playful designs, shrines, blog posts... Like on #Geocities in the far-gone past! Should be accessible too.It still ought to be filled with content, but we're getting there.Here you go:\nhttps://libre.town#xhtml #css #retroweb #indieweb #showcase #blog #internet #yesterweb #reclaimtheweb #oled #website"
},
"published": "2022-12-24T02:52:20+00:00",
"post-type": "note",
"_id": "33944666",
"_source": "7235",
"_is_read": true
}
I want to be free from the confines of this hyper-capitalist world we are living in.
I want to see the Internet that I never got to see — an open, free ecosystem run by enthusiasts from their closets.
I wonder what would be of it in our current highspeed era if it were not killed by corporations and silos.
Perhaps we would have something absolutely beautiful on our hands. Perhaps...we could still have it?
{
"type": "entry",
"published": "2022-12-24T02:57:23.219771207+03:00",
"url": "https://fireburn.ru/posts/apzzGSz",
"category": [
"indieweb",
"philosophy"
],
"content": {
"text": "I want to be free from the confines of this hyper-capitalist world we are living in.\n\nI want to see the Internet that I never got to see \u2014 an open, free ecosystem run by enthusiasts from their closets.\n\nI wonder what would be of it in our current highspeed era if it were not killed by corporations and silos.\n\nPerhaps we would have something absolutely beautiful on our hands. Perhaps...we could still have it?",
"html": "<p>I want to be free from the confines of this hyper-capitalist world we are living in.</p>\n\n<p>I want to see the Internet that I never got to see \u2014 an open, free ecosystem run by enthusiasts from their closets.</p>\n\n<p>I wonder what would be of it in our current highspeed era if it were not killed by corporations and silos.</p>\n\n<p>Perhaps we would have something absolutely beautiful on our hands. Perhaps...we could still have it?</p>"
},
"author": {
"type": "card",
"name": "Vika",
"url": "https://fireburn.ru/",
"photo": "https://fireburn.ru/.kittybox/media/uploads/f1/5a/fb/9b/081efafb97b4ad59f5025cf2fd0678b8f3e20e4c292489107d52be09"
},
"post-type": "note",
"_id": "33943830",
"_source": "1371",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://herestomwiththeweather.com/",
"photo": null
},
"url": "https://herestomwiththeweather.com/2022/12/22/indieweb-and-mastodon/",
"published": "2022-12-22T20:06:15+00:00",
"content": {
"html": "<p>Thanks to <a href=\"https://effaustin.org/\">EFF-Austin</a> for the opportunity to talk along with <a href=\"https://www.weblogsky.com/\">Jon Lebkowsky</a> about the relationship between <a href=\"https://indieweb.org/\">Indieweb</a> and the <a href=\"https://en.wikipedia.org/wiki/Fediverse\">Fediverse</a>. (<a href=\"https://herestomwiththeweather.com/effaustin/indieweb_mastodon\">Slides</a> and <a href=\"https://www.youtube.com/watch?v=VRu3i9u9I5Q\">video</a>)</p>\n\n<p>The meetup <a href=\"https://www.meetup.com/EFF-Austin/events/nltdcrydcqbrb/\">Indieweb and Mastodon: The Time is Now</a> was coincidentally in the same room as <a href=\"https://indieweb.org/2020/Austin\">IndieWebCamp Austin 2020</a>.</p>",
"text": "Thanks to EFF-Austin for the opportunity to talk along with Jon Lebkowsky about the relationship between Indieweb and the Fediverse. (Slides and video)\n\nThe meetup Indieweb and Mastodon: The Time is Now was coincidentally in the same room as IndieWebCamp Austin 2020."
},
"name": "IndieWeb and Mastodon",
"post-type": "article",
"_id": "33939170",
"_source": "246",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://herestomwiththeweather.com/",
"photo": null
},
"url": "https://herestomwiththeweather.com/2022/11/15/mastodon-discovery/",
"published": "2022-11-15T16:42:33+00:00",
"content": {
"html": "<p>Making notes is helpful when reading and running unfamiliar code for the first time. I usually start with happy paths. Here\u2019s some notes I made while learning about Mastodon account search and discovery. It\u2019s really cool to poke around the code that so many people are using every day to find each other.</p>\n\n<p>When you search on an account identifier on Mastodon, your browser makes a request to your Mastodon instance:</p>\n\n<blockquote>\n <p>/api/v2/search?q=%40herestomwiththeweather%40mastodon.social&resolve=true&limit=5</p>\n</blockquote>\n\n<p>The resolve=true parameter tells your Mastodon instance to make a webfinger request to the target Mastodon instance if necessary. The search controller <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/controllers/api/v2/search_controller.rb#L32\">makes a call to the SearchService</a></p>\n\n<pre><code> def search_results\n SearchService.new.call(\n params[:q],\n current_account,\n limit_param(RESULTS_LIMIT),\n search_params.merge(resolve: truthy_param?(:resolve), exclude_unreviewed: truthy_param?(:exclude_unreviewed))\n )\n end\n</code></pre>\n\n\n<p>and since resolve=true, SearchService <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/services/account_search_service.rb#L36\">makes a call to the ResolveAccountService</a></p>\n\n<pre><code> if options[:resolve]\n ResolveAccountService.new.call(query)\n</code></pre>\n\n\n<p>The purpose of ResolveAccountService is to \u201cFind or create an account record for a remote user\u201d and return an account object to the search controller. It includes <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/helpers/webfinger_helper.rb\">WebfingerHelper</a> which is a trivial module with just one one-line method named webfinger!()</p>\n\n<pre><code>module WebfingerHelper\n def webfinger!(uri)\n Webfinger.new(uri).perform\n end\nend\n</code></pre>\n\n\n<p>This method returns a webfinger object. Rather than call it directly, ResolveAccountService <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/services/resolve_account_service.rb#L34\">invokes process_webfinger!</a> which <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/services/resolve_account_service.rb#L86\">invokes it</a> and then asks the returned webfinger object\u2019s subject method for its username and domain and makes them instance variables of the service object.</p>\n\n<pre><code> def process_webfinger!(uri)\n @webfinger = webfinger!(\"acct:#{uri}\")\n confirmed_username, confirmed_domain = split_acct(@webfinger.subject)\n\n if confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?\n @username = confirmed_username\n @domain = confirmed_domain\n return\n end\n</code></pre>\n\n\n<p>If the Mastodon instance does not already know about this account, ResolveAccountService <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/services/resolve_account_service.rb#L55\">invokes fetch_account!</a> which <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/services/resolve_account_service.rb#L114\">calls the ActivityPub::FetchRemoteAccountService</a> which inherits from <a href=\"https://github.com/herestomwiththeweather/mastodon/blob/main/app/services/activitypub/fetch_remote_actor_service.rb\">ActivityPub::FetchRemoteActorService</a></p>\n\n<pre><code> @account = ActivityPub::FetchRemoteAccountService.new.call(actor_url, suppress_errors: @options[:suppress_errors])\n</code></pre>\n\n\n<p>The actor_url will look something like</p>\n\n<blockquote>\n <p>https://mastodon.social/users/herestomwiththeweather</p>\n</blockquote>\n\n<p>The ActivityPub::FetchRemoteActorService <a href=\"https://github.com/mastodon/mastodon/blob/main/app/services/activitypub/fetch_remote_actor_service.rb#L19\">passes the actor_url parameter to fetch_resource</a> to receive a json response for the remote account.</p>\n\n<pre><code> @json = begin\n if prefetched_body.nil?\n fetch_resource(uri, id)\n else\n\n</code></pre>\n\n\n<p>The response includes a lot of information including name, summary, publicKey, images and urls to fetch more information like followers and following.</p>\n\n<p>Finally, the ActivityPub::FetchRemoteActorService <a href=\"https://github.com/mastodon/mastodon/blob/main/app/services/activitypub/fetch_remote_actor_service.rb#L38\">calls the ActivityPub::ProcessAccountService</a>, passing it the json response.</p>\n\n<pre><code> ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key)\n</code></pre>\n\n\n<p>If the Mastodon instance does not know about the account, ActivityPub::ProcessAccountService <a href=\"https://github.com/mastodon/mastodon/blob/main/app/services/activitypub/process_account_service.rb#L28\">invokes create_account and update_account</a> to save the username, domain and all the associated urls from the json response to a new account record in the database.</p>\n\n<pre><code> create_account if @account.nil?\n update_account\n</code></pre>\n\n\n<p>I have several questions about how following others works and will probably look at that soon. I may start out by reading <a href=\"https://tinysubversions.com/notes/reading-activitypub/\">A highly opinionated guide to learning about ActivityPub</a> which I bookmarked a while ago.</p>",
"text": "Making notes is helpful when reading and running unfamiliar code for the first time. I usually start with happy paths. Here\u2019s some notes I made while learning about Mastodon account search and discovery. It\u2019s really cool to poke around the code that so many people are using every day to find each other.\n\nWhen you search on an account identifier on Mastodon, your browser makes a request to your Mastodon instance:\n\n\n /api/v2/search?q=%40herestomwiththeweather%40mastodon.social&resolve=true&limit=5\n\n\nThe resolve=true parameter tells your Mastodon instance to make a webfinger request to the target Mastodon instance if necessary. The search controller makes a call to the SearchService\n\n def search_results\n SearchService.new.call(\n params[:q],\n current_account,\n limit_param(RESULTS_LIMIT),\n search_params.merge(resolve: truthy_param?(:resolve), exclude_unreviewed: truthy_param?(:exclude_unreviewed))\n )\n end\n\n\n\nand since resolve=true, SearchService makes a call to the ResolveAccountService\n\n if options[:resolve]\n ResolveAccountService.new.call(query)\n\n\n\nThe purpose of ResolveAccountService is to \u201cFind or create an account record for a remote user\u201d and return an account object to the search controller. It includes WebfingerHelper which is a trivial module with just one one-line method named webfinger!()\n\nmodule WebfingerHelper\n def webfinger!(uri)\n Webfinger.new(uri).perform\n end\nend\n\n\n\nThis method returns a webfinger object. Rather than call it directly, ResolveAccountService invokes process_webfinger! which invokes it and then asks the returned webfinger object\u2019s subject method for its username and domain and makes them instance variables of the service object.\n\n def process_webfinger!(uri)\n @webfinger = webfinger!(\"acct:#{uri}\")\n confirmed_username, confirmed_domain = split_acct(@webfinger.subject)\n\n if confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?\n @username = confirmed_username\n @domain = confirmed_domain\n return\n end\n\n\n\nIf the Mastodon instance does not already know about this account, ResolveAccountService invokes fetch_account! which calls the ActivityPub::FetchRemoteAccountService which inherits from ActivityPub::FetchRemoteActorService\n\n @account = ActivityPub::FetchRemoteAccountService.new.call(actor_url, suppress_errors: @options[:suppress_errors])\n\n\n\nThe actor_url will look something like\n\n\n https://mastodon.social/users/herestomwiththeweather\n\n\nThe ActivityPub::FetchRemoteActorService passes the actor_url parameter to fetch_resource to receive a json response for the remote account.\n\n @json = begin\n if prefetched_body.nil?\n fetch_resource(uri, id)\n else\n\n\n\n\nThe response includes a lot of information including name, summary, publicKey, images and urls to fetch more information like followers and following.\n\nFinally, the ActivityPub::FetchRemoteActorService calls the ActivityPub::ProcessAccountService, passing it the json response.\n\n ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key)\n\n\n\nIf the Mastodon instance does not know about the account, ActivityPub::ProcessAccountService invokes create_account and update_account to save the username, domain and all the associated urls from the json response to a new account record in the database.\n\n create_account if @account.nil?\n update_account\n\n\n\nI have several questions about how following others works and will probably look at that soon. I may start out by reading A highly opinionated guide to learning about ActivityPub which I bookmarked a while ago."
},
"name": "Mastodon Discovery",
"post-type": "article",
"_id": "33939172",
"_source": "246",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://herestomwiththeweather.com/",
"photo": null
},
"url": "https://herestomwiththeweather.com/2022/10/25/indieauth-login-history/",
"published": "2022-10-25T16:51:16+00:00",
"content": {
"html": "<p>In my last post, I mentioned that I planned to add login history to <a href=\"https://github.com/herestomwiththeweather/irwin\">Irwin</a>. As I was testing my code, I logged into <a href=\"https://indieweb.org/\">indieweb.org</a> and noticed that I needed to update my code to support <a href=\"https://indieauth.spec.indieweb.org/#profile-url-response\">5.3.2 Profile URL Response</a> of the IndieAuth spec as this IndieAuth client does not need an access token. Here\u2019s what the history looks like on my IndieAuth server:</p>\n\n<p><img src=\"https://coffeebucks.s3.amazonaws.com/images/image/jekyll/indieauth_login_history.png\" alt=\"IndieAuth login history\" /></p>\n\n<p>If I click on a login timestamp, I have the option to revoke the access token associated with the login if it exists and has not already expired. My next step is to test some other <a href=\"https://indieweb.org/Micropub/Servers\">micropub servers</a> than the one I use to see what interoperability updates I may need to make.</p>",
"text": "In my last post, I mentioned that I planned to add login history to Irwin. As I was testing my code, I logged into indieweb.org and noticed that I needed to update my code to support 5.3.2 Profile URL Response of the IndieAuth spec as this IndieAuth client does not need an access token. Here\u2019s what the history looks like on my IndieAuth server:\n\n\n\nIf I click on a login timestamp, I have the option to revoke the access token associated with the login if it exists and has not already expired. My next step is to test some other micropub servers than the one I use to see what interoperability updates I may need to make."
},
"name": "IndieAuth login history",
"post-type": "article",
"_id": "33939174",
"_source": "246",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://herestomwiththeweather.com/",
"photo": null
},
"url": "https://herestomwiththeweather.com/2022/10/09/minimum-viable-indieauth-server/",
"published": "2022-10-09T20:38:46+00:00",
"content": {
"html": "<p>One of the building blocks of the <a href=\"https://indieweb.org/\">Indieweb</a> is <a href=\"https://indieweb.org/IndieAuth\">IndieAuth</a>. Like many others, I bootstrapped my experience with <a href=\"https://indieauth.com/\">indieauth.com</a> but as <a href=\"https://martymcgui.re/2022/07/31/switching-costs-for-an-indieauth-server/\">Marty McGuire explains</a>, there are good reasons to switch and even consider building your own. Because I wanted a server as simple to understand as possible but also wanted to be able to add features that are usually not available, I created a rails project called <a href=\"https://github.com/herestomwiththeweather/irwin\">Irwin</a> and <a href=\"https://github.com/herestomwiththeweather/herestomwiththeweather.github.io/commit/554dbaad13250a97c2b26c034fbce3dd6908c273\">recently configured my blog to use it</a>.</p>\n\n<p>This is not production ready code. While I know that <a href=\"https://github.com/voxpelli/webpage-micropub-to-github\">the micropub server I use</a> works with it, I expect others may not. Also, there is no support for refresh tokens and other things in the spec that I didn\u2019t consider high priority. It does support <a href=\"https://indieweb.org/PKCE\">PKCE</a> but not the less useful \u201cplain\u201d method.</p>\n\n<p>All of <a href=\"https://aaronparecki.com/2020/12/03/1/indieauth-2020\">IndieAuth Spec Updates 2020</a> was very clear and helpful. In one case, I made the server probably too strict (as an easy way to curtail spam registrations). It requires that the hosts for a blog\u2019s authorization endpoint and token endpoint match the host of the IndieAuth server before a user can register an account on the indieauth server.</p>\n\n<p>I plan to add an option for a user to keep a history of logins to indieauth clients soon. Please let me know if you have any questions or suggestions.</p>",
"text": "One of the building blocks of the Indieweb is IndieAuth. Like many others, I bootstrapped my experience with indieauth.com but as Marty McGuire explains, there are good reasons to switch and even consider building your own. Because I wanted a server as simple to understand as possible but also wanted to be able to add features that are usually not available, I created a rails project called Irwin and recently configured my blog to use it.\n\nThis is not production ready code. While I know that the micropub server I use works with it, I expect others may not. Also, there is no support for refresh tokens and other things in the spec that I didn\u2019t consider high priority. It does support PKCE but not the less useful \u201cplain\u201d method.\n\nAll of IndieAuth Spec Updates 2020 was very clear and helpful. In one case, I made the server probably too strict (as an easy way to curtail spam registrations). It requires that the hosts for a blog\u2019s authorization endpoint and token endpoint match the host of the IndieAuth server before a user can register an account on the indieauth server.\n\nI plan to add an option for a user to keep a history of logins to indieauth clients soon. Please let me know if you have any questions or suggestions."
},
"name": "Minimum Viable IndieAuth Server",
"post-type": "article",
"_id": "33939175",
"_source": "246",
"_is_read": true
}
#lazyWeb #indieWeb #webdev folks: what is the best practice for building an #RSS reader (think of a barebones stripped down Feedly), considering RSS feed files could be very large in size?
Set up a chron job to index the feed contents, store to DB, and serve (get/read) from DB instead of fetching & reading from the feed URL directly?
And/or any tutorials or sample repo?
Thanks!
{
"type": "entry",
"author": {
"name": "@ekafyi",
"url": "https://indieweb.social/@ekafyi",
"photo": null
},
"url": "https://indieweb.social/@ekafyi/109563873763535513",
"content": {
"html": "<p><a href=\"https://indieweb.social/tags/lazyWeb\">#<span>lazyWeb</span></a> <a href=\"https://indieweb.social/tags/indieWeb\">#<span>indieWeb</span></a> <a href=\"https://indieweb.social/tags/webdev\">#<span>webdev</span></a> folks: what is the best practice for building an <a href=\"https://indieweb.social/tags/RSS\">#<span>RSS</span></a> reader (think of a barebones stripped down Feedly), considering RSS feed files could be very large in size?</p><p>Set up a chron job to index the feed contents, store to DB, and serve (get/read) from DB instead of fetching & reading from the feed URL directly?</p><p>And/or any tutorials or sample repo?</p><p>Thanks!</p>",
"text": "#lazyWeb #indieWeb #webdev folks: what is the best practice for building an #RSS reader (think of a barebones stripped down Feedly), considering RSS feed files could be very large in size?Set up a chron job to index the feed contents, store to DB, and serve (get/read) from DB instead of fetching & reading from the feed URL directly?And/or any tutorials or sample repo?Thanks!"
},
"published": "2022-12-23T16:13:58+00:00",
"post-type": "note",
"_id": "33931549",
"_source": "7235",
"_is_read": true
}
The more I research the #fediverse, #indieweb, #SmallWeb and other related things, the more I see how #Mastodon is not really the ideal end goal I would like it to be, but it's a dam huge step in the right direction.
It feels like a fresh gust of hope.
{
"type": "entry",
"author": {
"name": "@alexito4",
"url": "https://mastodon.social/@alexito4",
"photo": null
},
"url": "https://mastodon.social/@alexito4/109563690798462394",
"content": {
"html": "<p>The more I research the <a href=\"https://mastodon.social/tags/fediverse\">#<span>fediverse</span></a>, <a href=\"https://mastodon.social/tags/indieweb\">#<span>indieweb</span></a>, <a href=\"https://mastodon.social/tags/SmallWeb\">#<span>SmallWeb</span></a> and other related things, the more I see how <a href=\"https://mastodon.social/tags/Mastodon\">#<span>Mastodon</span></a> is not really the ideal end goal I would like it to be, but it's a dam huge step in the right direction.<br />It feels like a fresh gust of hope.</p>",
"text": "The more I research the #fediverse, #indieweb, #SmallWeb and other related things, the more I see how #Mastodon is not really the ideal end goal I would like it to be, but it's a dam huge step in the right direction.\nIt feels like a fresh gust of hope."
},
"published": "2022-12-23T15:27:26+00:00",
"post-type": "note",
"_id": "33931550",
"_source": "7235",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "@jrsstorytime",
"url": "https://social.yesterweb.org/@jrsstorytime",
"photo": null
},
"url": "https://social.yesterweb.org/@jrsstorytime/109561151685033288",
"content": {
"html": "<p><a href=\"https://social.yesterweb.org/tags/introduction\">#<span>introduction</span></a></p><p>\ud83d\udc4b</p><p>I am JR. I am <a href=\"https://social.yesterweb.org/tags/Latine\">#<span>Latine</span></a> and <a href=\"https://social.yesterweb.org/tags/asian\">#<span>asian</span></a> <a href=\"https://social.yesterweb.org/tags/heritage\">#<span>heritage</span></a> / <a href=\"https://social.yesterweb.org/tags/diaspora\">#<span>diaspora</span></a>. <a href=\"https://social.yesterweb.org/tags/chronicallyill\">#<span>chronicallyill</span></a> and <a href=\"https://social.yesterweb.org/tags/nonbinary\">#<span>nonbinary</span></a>. </p><p>I like and post about:<br /><a href=\"https://social.yesterweb.org/tags/audiobooks\">#<span>audiobooks</span></a><br /><a href=\"https://social.yesterweb.org/tags/books\">#<span>books</span></a><br /><a href=\"https://social.yesterweb.org/tags/nonfiction\">#<span>nonfiction</span></a> <a href=\"https://social.yesterweb.org/tags/sff\">#<span>sff</span></a> <a href=\"https://social.yesterweb.org/tags/graphicnovel\">#<span>graphicnovel</span></a> <a href=\"https://social.yesterweb.org/tags/memoir\">#<span>memoir</span></a> <a href=\"https://social.yesterweb.org/tags/artbook\">#<span>artbook</span></a> <br /><a href=\"https://social.yesterweb.org/tags/podcasts\">#<span>podcasts</span></a><br /><a href=\"https://social.yesterweb.org/tags/shortfilm\">#<span>shortfilm</span></a><br /><a href=\"https://social.yesterweb.org/tags/secularwitchcraft\">#<span>secularwitchcraft</span></a> <br /><a href=\"https://social.yesterweb.org/tags/indieweb\">#<span>indieweb</span></a><br /><a href=\"https://social.yesterweb.org/tags/caturday\">#<span>caturday</span></a></p><p>I try to be nice and post/boost nice things. Nice to meet you.</p>",
"text": "#introduction\ud83d\udc4bI am JR. I am #Latine and #asian #heritage / #diaspora. #chronicallyill and #nonbinary. I like and post about:\n#audiobooks\n#books\n#nonfiction #sff #graphicnovel #memoir #artbook \n#podcasts\n#shortfilm\n#secularwitchcraft \n#indieweb\n#caturdayI try to be nice and post/boost nice things. Nice to meet you."
},
"published": "2022-12-23T04:41:43+00:00",
"post-type": "note",
"_id": "33922185",
"_source": "7235",
"_is_read": true
}
#indieweb anyone know a micropub client that can EDIT existing posts, available on Linux or Android?
{
"type": "entry",
"author": {
"name": "@rossk",
"url": "https://hachyderm.io/@rossk",
"photo": null
},
"url": "https://hachyderm.io/@rossk/109560599245542131",
"content": {
"html": "<p><a href=\"https://hachyderm.io/tags/indieweb\">#<span>indieweb</span></a> anyone know a micropub client that can EDIT existing posts, available on Linux or Android?</p>",
"text": "#indieweb anyone know a micropub client that can EDIT existing posts, available on Linux or Android?"
},
"published": "2022-12-23T02:21:13+00:00",
"post-type": "note",
"_id": "33919201",
"_source": "7235",
"_is_read": true
}
Anybody have advice on good bookkeeping software for a small #indieweb business? Is QuickBooks really the best game in town?
{
"type": "entry",
"author": {
"name": "@trey",
"url": "https://indieweb.social/@trey",
"photo": null
},
"url": "https://indieweb.social/@trey/109560094462065174",
"content": {
"html": "<p>Anybody have advice on good bookkeeping software for a small <a href=\"https://indieweb.social/tags/indieweb\">#<span>indieweb</span></a> business? Is QuickBooks really the best game in town?</p>",
"text": "Anybody have advice on good bookkeeping software for a small #indieweb business? Is QuickBooks really the best game in town?"
},
"published": "2022-12-23T00:12:51+00:00",
"post-type": "note",
"_id": "33917266",
"_source": "7235",
"_is_read": true
}
This PWA is getting better! #indieweb
{
"type": "entry",
"author": {
"name": "@mehulkar",
"url": "https://indieweb.social/@mehulkar",
"photo": null
},
"url": "https://indieweb.social/@mehulkar/109559776064680994",
"content": {
"html": "<p>This PWA is getting better! <a href=\"https://indieweb.social/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "This PWA is getting better! #indieweb"
},
"published": "2022-12-22T22:51:52+00:00",
"post-type": "note",
"_id": "33916158",
"_source": "7235",
"_is_read": true
}
In 2023, I plan to advocate more for client apps to embrace the larger IndieWeb and fediverse. Mastodon going mainstream is a great step forward, but we don’t want a monoculture. A key IndieWeb principle is plurality: multiple apps with different codebases that can interoperate.
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://manton.org",
"photo": "https://avatars.micro.blog/avatars/2022/3.jpg"
},
"url": "https://www.manton.org/2022/12/22/in-i-plan.html",
"content": {
"html": "<p>In 2023, I plan to advocate more for client apps to embrace the larger IndieWeb and fediverse. Mastodon going mainstream is a great step forward, but we don\u2019t want a monoculture. A key IndieWeb principle is <a href=\"https://indieweb.org/plurality\">plurality</a>: multiple apps with different codebases that can interoperate.</p>",
"text": "In 2023, I plan to advocate more for client apps to embrace the larger IndieWeb and fediverse. Mastodon going mainstream is a great step forward, but we don\u2019t want a monoculture. A key IndieWeb principle is plurality: multiple apps with different codebases that can interoperate."
},
"published": "2022-12-22T15:34:30+00:00",
"post-type": "note",
"_id": "33915185",
"_source": "7224",
"_is_read": true
}
Go figure in the course of fixing Pixelfed yesterday, I made a cowboy-headed decision to "just quickly" update BookWyrm as well.
Of course that means that while Pixelfed is working, BookWyrm is slightly borked 
So I guess that's tonight's project! #BookWyrm #Pixelfed #IndieWeb #SelfHosting
{
"type": "entry",
"author": {
"name": "@josh",
"url": "https://josh.tel/@josh",
"photo": null
},
"url": "https://josh.tel/@josh/109559625414006463",
"content": {
"html": "<p>Go figure in the course of fixing Pixelfed yesterday, I made a cowboy-headed decision to \"just quickly\" update BookWyrm as well.</p><p>Of course that means that while Pixelfed is working, BookWyrm is slightly borked <img alt=\":blobcat_thisisfine:\" height=\"16\" src=\"https://files.mastodon.social/cache/custom_emojis/images/000/446/987/original/380fe8d5d7a580bd.png\" title=\":blobcat_thisisfine:\" width=\"16\" /></p><p>So I guess that's tonight's project! <a href=\"https://josh.tel/tags/BookWyrm\">#<span>BookWyrm</span></a> <a href=\"https://josh.tel/tags/Pixelfed\">#<span>Pixelfed</span></a> <a href=\"https://josh.tel/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://josh.tel/tags/SelfHosting\">#<span>SelfHosting</span></a></p>",
"text": "Go figure in the course of fixing Pixelfed yesterday, I made a cowboy-headed decision to \"just quickly\" update BookWyrm as well.Of course that means that while Pixelfed is working, BookWyrm is slightly borked So I guess that's tonight's project! #BookWyrm #Pixelfed #IndieWeb #SelfHosting"
},
"published": "2022-12-22T22:13:33+00:00",
"post-type": "note",
"_id": "33914983",
"_source": "7235",
"_is_read": true
}
Just felt like saying this.
I love my instance and its people 🫶.
#IndieWeb
{
"type": "entry",
"author": {
"name": "@Suzie97",
"url": "https://indieweb.social/@Suzie97",
"photo": null
},
"url": "https://indieweb.social/@Suzie97/109559612454546881",
"content": {
"html": "<p>Just felt like saying this.</p><p>I love my instance and its people \ud83e\udef6.</p><p><a href=\"https://indieweb.social/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "Just felt like saying this.I love my instance and its people \ud83e\udef6.#IndieWeb"
},
"published": "2022-12-22T22:10:16+00:00",
"post-type": "note",
"_id": "33914984",
"_source": "7235",
"_is_read": true
}
A meme
- Ok ima fight webmentions
- [resting] damn webmentions got hands
{
"type": "entry",
"author": {
"name": "@spacebuffer",
"url": "https://fosstodon.org/@spacebuffer",
"photo": null
},
"url": "https://fosstodon.org/@spacebuffer/109559562478881642",
"content": {
"html": "A meme<br /><br />\n- Ok ima fight webmentions<br />\n- [resting] damn webmentions got hands",
"text": "A meme\n\n\n- Ok ima fight webmentions\n\n- [resting] damn webmentions got hands"
},
"published": "2022-12-22T21:57:33+00:00",
"post-type": "note",
"_id": "33914985",
"_source": "7235",
"_is_read": true
}
In 2023, I plan to advocate more for client apps to embrace the larger IndieWeb and fediverse. Mastodon going mainstream is a great step forward, but we don’t want a monoculture. A key IndieWeb principle is plurality: multiple apps with different codebases that can interoperate.
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://micro.blog/manton/avatar.jpg"
},
"url": "https://www.manton.org/2022/12/22/in-i-plan.html",
"content": {
"html": "<p>In 2023, I plan to advocate more for client apps to embrace the larger IndieWeb and fediverse. Mastodon going mainstream is a great step forward, but we don\u2019t want a monoculture. A key IndieWeb principle is <a href=\"https://indieweb.org/plurality\">plurality</a>: multiple apps with different codebases that can interoperate.</p>",
"text": "In 2023, I plan to advocate more for client apps to embrace the larger IndieWeb and fediverse. Mastodon going mainstream is a great step forward, but we don\u2019t want a monoculture. A key IndieWeb principle is plurality: multiple apps with different codebases that can interoperate."
},
"published": "2022-12-22T09:34:30-06:00",
"post-type": "note",
"_id": "33906531",
"_source": "12",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "@remkus",
"url": "https://set.wordperf.com/@remkus",
"photo": null
},
"url": "https://set.wordperf.com/@remkus/109557516214553684",
"content": {
"html": "<p>New blog post: <a href=\"https://set.wordperf.com/tags/WordPress\">#<span>WordPress</span></a>, Your Hub in a Decentralized World</p><p><a href=\"https://remkus.devries.frl/wordpress-your-hub-in-a-decentralized-world/\"><span>https://</span><span>remkus.devries.frl/wordpress-y</span><span>our-hub-in-a-decentralized-world/</span></a></p><p>Spoiler alert: featuring <a href=\"https://set.wordperf.com/tags/ActivityPub\">#<span>ActivityPub</span></a> and <a href=\"https://set.wordperf.com/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "New blog post: #WordPress, Your Hub in a Decentralized Worldhttps://remkus.devries.frl/wordpress-your-hub-in-a-decentralized-world/Spoiler alert: featuring #ActivityPub and #IndieWeb"
},
"published": "2022-12-22T13:17:10+00:00",
"post-type": "note",
"_id": "33905754",
"_source": "7235",
"_is_read": true
}
Importing Tweets to WordPress
I joined Twitter in April of 2008. I have participated mostly as a lurker but have contributed 3,589 tweets. Since I have been introduced to the IndieWeb concept, one of my goals has been to find a way to import my tweets into WordPress.
DsgnWrks Twitter Importer Plugin
I found a plugin, DsgnWrks Twitter Importer, which was not tested w
https://tmichellemoore.com/blog/importing-tweets-to-wordpress/
#IndieWeb #Import #IndieWeb #Twitter #WordPress
{
"type": "entry",
"author": {
"name": "@tmichellemoore",
"url": "https://mastodon.social/@tmichellemoore",
"photo": null
},
"url": "https://mastodon.social/@tmichellemoore/109557854802170958",
"content": {
"html": "<p>Importing Tweets to WordPress</p><p>I joined Twitter in April of 2008. I have participated mostly as a lurker but have contributed 3,589 tweets. Since I have been introduced to the IndieWeb concept, one of my goals has been to find a way to import my tweets into WordPress. </p><p>DsgnWrks Twitter Importer Plugin</p><p>I found a plugin, DsgnWrks Twitter Importer, which was not tested w</p><p><a href=\"https://tmichellemoore.com/blog/importing-tweets-to-wordpress/\"><span>https://</span><span>tmichellemoore.com/blog/import</span><span>ing-tweets-to-wordpress/</span></a></p><p><a href=\"https://mastodon.social/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://mastodon.social/tags/Import\">#<span>Import</span></a> <a href=\"https://mastodon.social/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://mastodon.social/tags/Twitter\">#<span>Twitter</span></a> <a href=\"https://mastodon.social/tags/WordPress\">#<span>WordPress</span></a></p>",
"text": "Importing Tweets to WordPressI joined Twitter in April of 2008. I have participated mostly as a lurker but have contributed 3,589 tweets. Since I have been introduced to the IndieWeb concept, one of my goals has been to find a way to import my tweets into WordPress. DsgnWrks Twitter Importer PluginI found a plugin, DsgnWrks Twitter Importer, which was not tested whttps://tmichellemoore.com/blog/importing-tweets-to-wordpress/#IndieWeb #Import #IndieWeb #Twitter #WordPress"
},
"published": "2022-12-22T14:43:16+00:00",
"post-type": "note",
"_id": "33904051",
"_source": "7235",
"_is_read": true
}
@tchambers could use a boost to let folk know about this neat #IndieWeb technique (riffing on the shoulders of giants):
https://indieweb.social/@charlesroper/109557660270425428
{
"type": "entry",
"author": {
"name": "@charlesroper",
"url": "https://indieweb.social/@charlesroper",
"photo": null
},
"url": "https://indieweb.social/@charlesroper/109557750904589505",
"content": {
"html": "<p><span class=\"h-card\"><a class=\"u-url\" href=\"https://indieweb.social/@tchambers\">@<span>tchambers</span></a></span> could use a boost to let folk know about this neat <a href=\"https://indieweb.social/tags/IndieWeb\">#<span>IndieWeb</span></a> technique (riffing on the shoulders of giants):</p><p><a href=\"https://indieweb.social/@charlesroper/109557660270425428\"><span>https://</span><span>indieweb.social/@charlesroper/</span><span>109557660270425428</span></a></p>",
"text": "@tchambers could use a boost to let folk know about this neat #IndieWeb technique (riffing on the shoulders of giants):https://indieweb.social/@charlesroper/109557660270425428"
},
"published": "2022-12-22T14:16:51+00:00",
"post-type": "note",
"_id": "33903580",
"_source": "7235",
"_is_read": true
}