IndieWeb Summit in Portland is obviously cancelled, but never fear! We’re organizing an online IndieWebCamp instead! Come join an amazing group of people to share ideas, create and improve personal websites!
June 27-28
https://events.indieweb.org/2020/06/indiewebcamp-west-2020-ZB8zoAAu6sdN
{
"type": "entry",
"published": "2020-06-18T19:01:09-07:00",
"url": "https://aaronparecki.com/2020/06/18/18/indieweb",
"category": [
"indiewebcamp"
],
"syndication": [
"https://twitter.com/aaronpk/status/1273797954382393345"
],
"content": {
"text": "IndieWeb Summit in Portland is obviously cancelled, but never fear! We\u2019re organizing an online IndieWebCamp instead! Come join an amazing group of people to share ideas, create and improve personal websites! \n\nJune 27-28 \n\nhttps://events.indieweb.org/2020/06/indiewebcamp-west-2020-ZB8zoAAu6sdN",
"html": "IndieWeb Summit in Portland is obviously cancelled, but never fear! We\u2019re organizing an online IndieWebCamp instead! Come join an amazing group of people to share ideas, create and improve personal websites! <br /><br />June 27-28 <br /><br /><a href=\"https://events.indieweb.org/2020/06/indiewebcamp-west-2020-ZB8zoAAu6sdN\"><span>https://</span>events.indieweb.org/2020/06/indiewebcamp-west-2020-ZB8zoAAu6sdN</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "note",
"_id": "12543266",
"_source": "16",
"_is_read": true
}
{
"type": "entry",
"published": "2020-06-17 18:30-0700",
"rsvp": "yes",
"url": "https://gregorlove.com/2020/06/im-attending-indiewebcamp-west-2020/",
"in-reply-to": [
"https://events.indieweb.org/2020/06/indiewebcamp-west-2020-ZB8zoAAu6sdN"
],
"content": {
"text": "I\u2019m attendingIndieWebCamp West 2020.",
"html": "<p>I\u2019m attending<a class=\"u-in-reply-to\" href=\"https://events.indieweb.org/2020/06/indiewebcamp-west-2020-ZB8zoAAu6sdN\">IndieWebCamp West 2020</a>.</p>"
},
"post-type": "rsvp",
"_id": "12516275",
"_source": "95",
"_is_read": true
}
I do think that the IndieWeb community should be moving to make more services/tools that we can point to demonstrate the power of the community. A few people have been stepping up to this but it’s mostly from either a semi proof of concept thing or just to externalize and share functionality from their sites.
{
"type": "entry",
"published": "2020-06-17T16:43:47.19209-07:00",
"url": "https://v2.jacky.wtf/post/b45b864a-46e6-43df-b2e1-906cfa9f8df4",
"content": {
"text": "I do think that the IndieWeb community should be moving to make more services/tools that we can point to demonstrate the power of the community. A few people have been stepping up to this but it\u2019s mostly from either a semi proof of concept thing or just to externalize and share functionality from their sites.",
"html": "<p>I do think that the IndieWeb community should be moving to make more services/tools that we can point to demonstrate the power of the community. A few people have been stepping up to this but it\u2019s mostly from either a semi proof of concept thing or just to externalize and share functionality from their sites.</p>"
},
"author": {
"type": "card",
"name": "",
"url": "https://v2.jacky.wtf",
"photo": null
},
"post-type": "note",
"_id": "12514563",
"_source": "1886",
"_is_read": true
}
{
"type": "entry",
"published": "2020-06-17 14:59:04",
"url": "http://monkinetic.blog/2020/06/17/webmentions-in-goldfrog",
"category": [
"goldfrog",
"webmention"
],
"name": "Webmentions in Goldfrog",
"content": {
"text": "I might be hitting the wall on my Jekyll-inspired storage system for #goldfrog. GoldFrog uses Jekyll-style markdown posts as the \u201csystem of record\u201d, but read into SQLite for serving/searching content. #webmention activity add a new type of data that I haven\u2019t figured out how to store yet.",
"html": "<p>I might be hitting the wall on my Jekyll-inspired storage system for <a href=\"http://monkinetic.blog/tag/goldfrog\">#goldfrog</a>. GoldFrog uses Jekyll-style markdown posts as the \u201csystem of record\u201d, but read into SQLite for serving/searching content. <a href=\"http://monkinetic.blog/tag/webmention\">#webmention</a> activity add a new type of data that I haven\u2019t figured out how to store yet.</p>"
},
"author": {
"type": "card",
"name": "Steve Ivy",
"url": "http://monkinetic.blog",
"photo": null
},
"post-type": "article",
"_id": "12502206",
"_source": "4486",
"_is_read": true
}
Steve Ivy
Back to a nerd topic: implemented some of the #webmention server in my blog software this evening, and rearchitected the storage layer with an interface to make testing easier. #golang
~ #
05:09
~
{
"type": "entry",
"published": "2020-06-17 05:09:51",
"url": "http://monkinetic.blog/2020/06/17/#txt-7000606",
"content": {
"text": "Back to a nerd topic: implemented some of the #webmention server in my blog software this evening, and rearchitected the storage layer with an interface to make testing easier. #golang\n\n ~ #\n 05:09\n ~",
"html": "<p>Back to a nerd topic: implemented some of the <a href=\"http://monkinetic.blog/tag/webmention\">#webmention</a> server in my blog software this evening, and rearchitected the storage layer with an interface to make testing easier. <a href=\"http://monkinetic.blog/tag/golang\">#golang</a></p>\n\n <p>~ <a class=\"u-url\" href=\"http://monkinetic.blog/2020/06/17/#txt-7000606\">#\n 05:09</a>\n ~</p>"
},
"author": {
"type": "card",
"name": "Steve Ivy",
"url": false,
"photo": "http://monkinetic.blog/static/images/sivy_avatar_256.png"
},
"post-type": "note",
"_id": "12491413",
"_source": "4486",
"_is_read": true
}
That's why we have webmention.rocks to help you test them
{
"type": "entry",
"published": "2020-06-16T20:23:56+0000",
"url": "http://known.kevinmarks.com/2020/thats-why-we-have-webmentionrocks-to-help",
"in-reply-to": [
"http://monkinetic.blog/2020/06/16/#txt-638a5d5"
],
"content": {
"text": "That's why we have webmention.rocks to help you test them"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "http://known.kevinmarks.com/file/9255656669173b7867ab839ee6556f9e"
},
"post-type": "reply",
"_id": "12483979",
"_source": "205",
"_is_read": true
}
Steve Ivy
There a LOT of error cases when writing a #webmention server implementation #indieweb #goldfrog
~ #
19:57
~
{
"type": "entry",
"published": "2020-06-16 19:57:42",
"url": "http://monkinetic.blog/2020/06/16/#txt-638a5d5",
"content": {
"text": "There a LOT of error cases when writing a #webmention server implementation #indieweb #goldfrog\n\n ~ #\n 19:57\n ~",
"html": "<p>There a LOT of error cases when writing a <a href=\"http://monkinetic.blog/tag/webmention\">#webmention</a> server implementation <a href=\"http://monkinetic.blog/tag/indieweb\">#indieweb</a> <a href=\"http://monkinetic.blog/tag/goldfrog\">#goldfrog</a></p>\n\n <p>~ <a class=\"u-url\" href=\"http://monkinetic.blog/2020/06/16/#txt-638a5d5\">#\n 19:57</a>\n ~</p>"
},
"author": {
"type": "card",
"name": "Steve Ivy",
"url": false,
"photo": "http://monkinetic.blog/static/images/sivy_avatar_256.png"
},
"post-type": "note",
"_id": "12481766",
"_source": "4486",
"_is_read": true
}
We’re definitely in the small group of Elixir people in the IndieWeb, lol. I’ve used Mnesia mainly as a caching layer and SQLite for database stuff. I’ve been working on a IndieWeb-specific library that relies on https://wwwtech.de’s Microformats2 library actually over at https://git.jacky.wtf/indieweb/elixir/! It has a hard dependency against master
for https://wwwtech.de’s project so I can’t update it in Hex but it powers all of my projects (I have like about 4 concurrent IndieWeb projects?) right now.
{
"type": "entry",
"published": "2020-06-15T20:27:16.50129-07:00",
"url": "https://v2.jacky.wtf/post/6c15f9f4-9216-4a61-aa1d-7b3f9b8fcbae",
"in-reply-to": [
"https://unrelenting.technology/replies/2019-12-12-14-08-52"
],
"content": {
"text": "We\u2019re definitely in the small group of Elixir people in the IndieWeb, lol. I\u2019ve used Mnesia mainly as a caching layer and SQLite for database stuff. I\u2019ve been working on a IndieWeb-specific library that relies on https://wwwtech.de\u2019s Microformats2 library actually over at https://git.jacky.wtf/indieweb/elixir/! It has a hard dependency against master for https://wwwtech.de\u2019s project so I can\u2019t update it in Hex but it powers all of my projects (I have like about 4 concurrent IndieWeb projects?) right now.",
"html": "<p>We\u2019re definitely in the small group of Elixir people in the IndieWeb, lol. I\u2019ve used Mnesia mainly as a caching layer and SQLite for database stuff. I\u2019ve been working on a IndieWeb-specific library that relies on <a href=\"https://wwwtech.de\">https://wwwtech.de</a>\u2019s Microformats2 library actually over at <a href=\"https://git.jacky.wtf/indieweb/elixir/\">https://git.jacky.wtf/indieweb/elixir/</a>! It has a hard dependency against <code>master</code> for <a href=\"https://wwwtech.de\">https://wwwtech.de</a>\u2019s project so I can\u2019t update it in Hex but it powers <em>all</em> of my projects (I have like about 4 concurrent IndieWeb projects?) right now.</p>"
},
"author": {
"type": "card",
"name": "",
"url": "https://v2.jacky.wtf",
"photo": null
},
"post-type": "reply",
"refs": {
"https://unrelenting.technology/replies/2019-12-12-14-08-52": {
"type": "entry",
"url": "https://unrelenting.technology/replies/2019-12-12-14-08-52",
"content": {
"text": "me and https://wwwtech.de also have sites written in Elixir.\nI actually rewrote from Haskell+Node.js+Postgres to Elixir (with Mnesia as DB) :D",
"html": "<p>me and <a href=\"https://wwwtech.de\">https://wwwtech.de</a> also have sites written in Elixir.\nI actually rewrote from Haskell+Node.js+Postgres to Elixir (with Mnesia as DB) :D</p>"
},
"author": {
"type": "card",
"name": "Greg",
"url": "https://unrelenting.technology/",
"photo": null
},
"post-type": "note"
}
},
"_id": "12461673",
"_source": "1886",
"_is_read": true
}
That’s an interesting approach to add the Bridgy Publish webmention. I’m glad it’s working well for you.
My approach is still part of the template files. I just reviewed it and it’s fairly simple, so I’m comfortable sharing it. Here is a gist. Let me know if you have any questions.
I’m excited to see more ProcessWire sites with webmention. I’ve not heard from a lot of people using the module yet. I’m definitely interested in improving the indieweb experience on ProcessWire. Bridgy Publish is an area that I have not worked on yet, partly because people can have templates set up a variety of ways and I’m not sure how to make a plugin that works with different setups.
By the way, we’ve been having weekly virtual indieweb meetups if you’d like to join. I think the closest timezone would be the London meetup. Check out events.indieweb.org for upcoming events. We have an active community chat as well: indieweb.org/discuss.
{
"type": "entry",
"published": "2020-06-15 12:40-0700",
"url": "https://gregorlove.com/2020/06/thats-an-interesting-approach/",
"in-reply-to": [
"https://francescoschwarz.com/notes/2020-06-14-10-20-08/"
],
"content": {
"text": "That\u2019s an interesting approach to add the Bridgy Publish webmention. I\u2019m glad it\u2019s working well for you.\n\nMy approach is still part of the template files. I just reviewed it and it\u2019s fairly simple, so I\u2019m comfortable sharing it. Here is a gist. Let me know if you have any questions.\n\nI\u2019m excited to see more ProcessWire sites with webmention. I\u2019ve not heard from a lot of people using the module yet. I\u2019m definitely interested in improving the indieweb experience on ProcessWire. Bridgy Publish is an area that I have not worked on yet, partly because people can have templates set up a variety of ways and I\u2019m not sure how to make a plugin that works with different setups.\n\nBy the way, we\u2019ve been having weekly virtual indieweb meetups if you\u2019d like to join. I think the closest timezone would be the London meetup. Check out events.indieweb.org for upcoming events. We have an active community chat as well: indieweb.org/discuss.",
"html": "<p>That\u2019s an interesting approach to add the Bridgy Publish webmention. I\u2019m glad it\u2019s working well for you.</p>\n\n<p>My approach is still part of the template files. I just reviewed it and it\u2019s fairly simple, so I\u2019m comfortable sharing it. <a href=\"https://gist.github.com/gRegorLove/76e491bd3dd12eae0e685597fa3d478d\">Here is a gist</a>. Let me know if you have any questions.</p>\n\n<p>I\u2019m excited to see more ProcessWire sites with webmention. I\u2019ve not heard from a lot of people using the module yet. I\u2019m definitely interested in improving the indieweb experience on ProcessWire. Bridgy Publish is an area that I have not worked on yet, partly because people can have templates set up a variety of ways and I\u2019m not sure how to make a plugin that works with different setups.</p>\n\n<p>By the way, we\u2019ve been having weekly virtual indieweb meetups if you\u2019d like to join. I think the closest timezone would be the London meetup. Check out <a href=\"https://events.indieweb.org/\">events.indieweb.org</a> for upcoming events. We have an active community chat as well: <a href=\"https://indieweb.org/discuss\">indieweb.org/discuss</a>.</p>"
},
"post-type": "reply",
"refs": {
"https://francescoschwarz.com/notes/2020-06-14-10-20-08/": {
"type": "entry",
"url": "https://francescoschwarz.com/notes/2020-06-14-10-20-08/",
"name": "https://francescoschwarz.com/notes/2020-06-14-10-20-08/",
"post-type": "article"
}
},
"_id": "12456275",
"_source": "95",
"_is_read": true
}
https://mxb.dev/ does it again! This time, a follow up for Webmentions!
{
"type": "entry",
"published": "2020-06-15T14:40:33.76041-07:00",
"url": "https://v2.jacky.wtf/post/d9e17406-1438-46d3-ade7-7e0aa76f9b17",
"category": [
"tutorial"
],
"bookmark-of": [
"https://mxb.dev/blog/using-webmentions-on-static-sites/"
],
"content": {
"text": "https://mxb.dev/ does it again! This time, a follow up for Webmentions!",
"html": "<p><a href=\"https://mxb.dev/\">https://mxb.dev/</a> does it again! This time, a follow up for Webmentions!</p>"
},
"author": {
"type": "card",
"name": "",
"url": "https://v2.jacky.wtf",
"photo": null
},
"post-type": "bookmark",
"refs": {
"https://mxb.dev/blog/using-webmentions-on-static-sites/": {
"type": "entry",
"url": "https://mxb.dev/blog/using-webmentions-on-static-sites/",
"author": {
"type": "card",
"name": "",
"url": "https://v2.jacky.wtf/stream",
"photo": null
},
"post-type": "note"
}
},
"_id": "12455162",
"_source": "1886",
"_is_read": true
}
If you’re seeing this post; that means https://lighthouse.black.af is successfully sending Webmentions for https://v2.jacky.wtf! Any kind of interaction with this post or its syndicated copies should lead in feedback to Lighthouse as well :)
Exciting!
{
"type": "entry",
"published": "2020-06-15T12:27:42.69224-07:00",
"url": "https://v2.jacky.wtf/post/f031c47a-5137-4caa-8d40-84b13efe5d3e",
"category": [
"webmentions",
"demo",
"lighthouse"
],
"content": {
"text": "If you\u2019re seeing this post; that means https://lighthouse.black.af is successfully sending Webmentions for https://v2.jacky.wtf! Any kind of interaction with this post or its syndicated copies should lead in feedback to Lighthouse as well :)Exciting!",
"html": "<p>If you\u2019re seeing this post; that means <a href=\"https://lighthouse.black.af\">https://lighthouse.black.af</a> is successfully sending Webmentions for <a href=\"https://v2.jacky.wtf\">https://v2.jacky.wtf</a>! Any kind of interaction with this post or its syndicated copies should lead in feedback to Lighthouse as well :)</p><p>Exciting!</p>"
},
"author": {
"type": "card",
"name": "",
"url": "https://v2.jacky.wtf",
"photo": null
},
"post-type": "note",
"_id": "12452006",
"_source": "1886",
"_is_read": true
}
A quick write up by https://zerokspot.com about using their self hostable Webmention service.
{
"type": "entry",
"published": "2020-06-15T11:34:00.00000-07:00",
"url": "https://v2.jacky.wtf/post/b6928a39-e17f-453d-a5b7-2a326b5a71a6",
"bookmark-of": [
"https://zerokspot.com/weblog/2020/06/14/setting-up-webmentiond/"
],
"content": {
"text": "A quick write up by https://zerokspot.com about using their self hostable Webmention service.",
"html": "<p>A quick write up by <a href=\"https://zerokspot.com\">https://zerokspot.com</a> about using their self hostable Webmention service.</p>"
},
"author": {
"type": "card",
"name": "",
"url": "https://v2.jacky.wtf",
"photo": null
},
"post-type": "bookmark",
"refs": {
"https://zerokspot.com/weblog/2020/06/14/setting-up-webmentiond/": {
"type": "entry",
"url": "https://zerokspot.com/weblog/2020/06/14/setting-up-webmentiond/",
"content": {
"text": "Since Yarmo asked this morning about how to use webmentiond behind a proxy I noticed that I had completely forgotten to provide a proper getting-started guide. I\u2019m not yet sure how I\u2019ll organise documentation for the project in the long run so I\u2019ll just give you a quick tutorial here using my own setup as example \ud83d\ude42\nGoal\nThe goal of this guide is that you have a webmentiond instance running on your server (in this example yoursite.com), can log into the management interface, and other people can discover your webmention endpoint on your website.\nEnvironment/requirements\nIn my own setup I use Caddy 2 as proxy server but you can use pretty much anything there. The only really hard requirements of webmentiond are that you have Docker running on your server and that your server can connect to an SMTP server (I really like the service offered by Postmark) in order for webmentiond to send out login/authentication tokens via e-mail.\nIn our case, webmentiond should be made available on https://yoursite.com/webmentions/ and I can log into its admin interface through the fictional email address login@yoursite.com.\nStep 1: Setting up webmentiond as service\nSince I use systemd to handle pretty much all services on my services, let\u2019s also use it for webmentiond. The service will be run as the user webmentiond and store all its data into /var/lib/webmentiond belonging to that user:\n$ adduser --home /var/lib/webmentiond webmentiond\n\n# Get the UID of the newly created user:\n$ id webmentiond\n\nNext, I\u2019d suggest pulling the zerok/webmentiond:latest image in order to make sure that Docker is set up properly:\n$ docker pull zerok/webmentiond:latest\n\nFinally, you have to create a service definition (i.e. /etc/systemd/system/webmentiond.service with the following content:\n[Unit]\nDescription=Webmentiond\nAfter=network-online.target\nStartLimitInterval=0\n\n[Service]\nExecStart=/usr/bin/docker run --rm \\\n -e \"MAIL_USER=...\" \\\n -e \"MAIL_PASSWORD=...\" \\\n -e \"MAIL_HOST=...\" \\\n -e \"MAIL_PORT=...\" \\\n -e \"MAIL_FROM=no-reply@yoursite.com\" \\\n -v /var/lib/webmentiond:/data \\\n -p 35080:8080 \\\n -u UID_OF_WEBMENTIOND_USER \\\n zerok/webmentiond:latest \\\n --addr 0.0.0.0:8080 \\\n --allowed-target-domains yoursite.com \\\n --auth-jwt-secret SOME_RANDOM_SECRET_STRING \\\n --auth-admin-emails login@yoursite.com \\\n --public-url https://yoursite.com/webmentions\nRestart=always\nRestartSec=5\n\n\n[Install]\nWantedBy=multi-user.target\n\nOnce that file is in place, start the service:\n$ systemctl daemon-reload\n$ systemctl enable webmentiond\n$ systemctl start webmentiond\n\nNow check if the service was able to start up:\n$ journalctl -f -u webmentiond\nJun 14 09:50:09 ubuntu-512mb-fra1-01 systemd[1]: Started Webmentiond.\nJun 14 09:50:10 ubuntu-512mb-fra1-01 docker[70940]: 9:50AM INF UI path served from /var/lib/webmentiond/frontend\nJun 14 09:50:10 ubuntu-512mb-fra1-01 docker[70940]: 9:50AM INF Listening on 0.0.0.0:8080...\n\nIf you see something else, please make sure that you\u2019ve replaced all those placeholders in the service file \ud83d\ude42\nStep 2: Update reverse proxy config\nIn order to make webmentiond available through https://yoursite.com/webmentions I\u2019ve added the following lines to the host configuration in my Caddyfile:\n# Prevent people from grabbing the exposed Prometheus\n# metrics:\nrespond /webmentions/metrics 404\n\n# Forward /webmentions/*:\nroute /webmentions/* {\n uri strip_prefix /webmentions\n reverse_proxy localhost:35080\n}\n\nNow the UI should be available through https://yoursite.com/webmentions/ui/:\nStep 3: Try to log in\nNow that you have the UI available, try to log in using the email you set in the service definition (in this case login@yoursite.com). You should receive a login token within the next minute or so that you can redeem on the authentication page linked to from the login page. If you didn\u2019t receive a mail, make sure your email settings are correct and that the mail wasn\u2019t flagged as spam or something like that.\nStep 4: Link to the /receive/ endpoint\nIn order for folks to be able to actually send you mentions, they have to know where to send them. The workflow goes something like this:\nAnother blog post with the URL https://a.com/post mentions https://yoursite.com/post.\nThe server at a.com (or another service altogether) checks https://yoursite.com/post looking for a link-element in the markup that looks like this: <link rel=\"webmention\" href=\"https://yoursite.com/webmentions/receive\"> .\nIt finds it, it will send a simple HTTP request to it indicating that https://a.com/post mentioned https://yoursite.com/post.\nIn our case, let\u2019s make sure that we have a working receive endpoint:\n$ curl -i https://yoursite.com/webmentions/receive\nHTTP/2 405\n[...]\n\nLooking good \ud83d\ude42\nNow you have to add the following line to your blog\u2019s head-section:\n<link rel=\"webmention\" href=\"https://yoursite.com/webmentions/receive\">\n\nWith this done, people should be able to send you mentions \ud83d\ude42 One thing, though: Any mention that is sent to the receive-endpoint is first checked for validity (i.e. that the source of the mention really actually links to its target) and only then does it show up in the UI. Once it\u2019s there, you have to explicitly approve a mention before it can be shown on your website. This is there in order to prevent people abusing your blog as link-heaven.\nStep 5: Display mentions\nWebmentiond also comes with a little widget that you can embed in your website for rendering mentions:\n<div class=\"webmentions webmentions-container\"\n data-endpoint=\"https://yoursite.com/webmentions\"\n data-target=\"https://yoursite.com/url/to/post\"></div>\n<script src=\"https://yoursite.com/webmentions/ui/dist/widget.js\"></script>\n\nThis should be it. I\u2019m pretty sure that I\u2019ve forgotten a thing or two or that something is completely unintelligible so please let me know \ud83d\ude05",
"html": "<p>Since <a href=\"https://fosstodon.org/@yarmo/104341371114206112\">Yarmo asked this morning</a> about how to use <a href=\"https://github.com/zerok/webmentiond\">webmentiond</a> behind a proxy I noticed that I had completely forgotten to provide a proper getting-started guide. I\u2019m not yet sure how I\u2019ll organise documentation for the project in the long run so I\u2019ll just give you a quick tutorial here using my own setup as example \ud83d\ude42</p>\n<h2>Goal</h2>\n<p>The goal of this guide is that you have a webmentiond instance running on your server (in this example <code>yoursite.com</code>), can log into the management interface, and other people can discover your webmention endpoint on your website.</p>\n<h2>Environment/requirements</h2>\n<p>In my own setup I use <a href=\"https://caddyserver.com/\">Caddy 2</a> as proxy server but you can use pretty much anything there. The only really hard requirements of webmentiond are that you have <strong>Docker</strong> running on your server and that your server can connect to an <strong>SMTP server</strong> (I really like the service offered by <a href=\"https://postmarkapp.com/\">Postmark</a>) in order for webmentiond to send out login/authentication tokens via e-mail.</p>\n<p>In our case, webmentiond should be made available on <code>https://yoursite.com/webmentions/</code> and I can log into its admin interface through the fictional email address <code>login@yoursite.com</code>.</p>\n<h2>Step 1: Setting up webmentiond as service</h2>\n<p>Since I use systemd to handle pretty much all services on my services, let\u2019s also use it for webmentiond. The service will be run as the user <code>webmentiond</code> and store all its data into <code>/var/lib/webmentiond</code> belonging to that user:</p>\n<pre><code>$ adduser --home /var/lib/webmentiond webmentiond\n\n# Get the UID of the newly created user:\n$ id webmentiond\n</code></pre>\n<p>Next, I\u2019d suggest pulling the <code>zerok/webmentiond:latest</code> image in order to make sure that Docker is set up properly:</p>\n<pre><code>$ docker pull zerok/webmentiond:latest\n</code></pre>\n<p>Finally, you have to create a service definition (i.e. <code>/etc/systemd/system/webmentiond.service</code> with the following content:</p>\n<pre><code>[Unit]\nDescription=Webmentiond\nAfter=network-online.target\nStartLimitInterval=0\n\n[Service]\nExecStart=/usr/bin/docker run --rm \\\n -e \"MAIL_USER=...\" \\\n -e \"MAIL_PASSWORD=...\" \\\n -e \"MAIL_HOST=...\" \\\n -e \"MAIL_PORT=...\" \\\n -e \"MAIL_FROM=no-reply@yoursite.com\" \\\n -v /var/lib/webmentiond:/data \\\n -p 35080:8080 \\\n -u UID_OF_WEBMENTIOND_USER \\\n zerok/webmentiond:latest \\\n --addr 0.0.0.0:8080 \\\n --allowed-target-domains yoursite.com \\\n --auth-jwt-secret SOME_RANDOM_SECRET_STRING \\\n --auth-admin-emails login@yoursite.com \\\n --public-url https://yoursite.com/webmentions\nRestart=always\nRestartSec=5\n\n\n[Install]\nWantedBy=multi-user.target\n</code></pre>\n<p>Once that file is in place, start the service:</p>\n<pre><code>$ systemctl daemon-reload\n$ systemctl enable webmentiond\n$ systemctl start webmentiond\n</code></pre>\n<p>Now check if the service was able to start up:</p>\n<pre><code>$ journalctl -f -u webmentiond\nJun 14 09:50:09 ubuntu-512mb-fra1-01 systemd[1]: Started Webmentiond.\nJun 14 09:50:10 ubuntu-512mb-fra1-01 docker[70940]: 9:50AM INF UI path served from /var/lib/webmentiond/frontend\nJun 14 09:50:10 ubuntu-512mb-fra1-01 docker[70940]: 9:50AM INF Listening on 0.0.0.0:8080...\n</code></pre>\n<p>If you see something else, please make sure that you\u2019ve replaced all those placeholders in the service file \ud83d\ude42</p>\n<h2>Step 2: Update reverse proxy config</h2>\n<p>In order to make webmentiond available through <code>https://yoursite.com/webmentions</code> I\u2019ve added the following lines to the host configuration in my Caddyfile:</p>\n<pre><code># Prevent people from grabbing the exposed Prometheus\n# metrics:\nrespond /webmentions/metrics 404\n\n# Forward /webmentions/*:\nroute /webmentions/* {\n uri strip_prefix /webmentions\n reverse_proxy localhost:35080\n}\n</code></pre>\n<p>Now the UI should be available through <code>https://yoursite.com/webmentions/ui/</code>:</p>\n<img src=\"https://zerokspot.com/media/2020/Screenshot%202020-06-14%20at%2012.05.28.png\" alt=\"Screenshot%202020-06-14%20at%2012.05.28.png\" /><h2>Step 3: Try to log in</h2>\n<p>Now that you have the UI available, try to log in using the email you set in the service definition (in this case <code>login@yoursite.com</code>). You should receive a login token within the next minute or so that you can redeem on the authentication page linked to from the login page. If you didn\u2019t receive a mail, make sure your email settings are correct and that the mail wasn\u2019t flagged as spam or something like that.</p>\n<h2>Step 4: Link to the /receive/ endpoint</h2>\n<p>In order for folks to be able to actually send you mentions, they have to know where to send them. The workflow goes something like this:</p>\n<ol><li>Another blog post with the URL <code>https://a.com/post</code> mentions <code>https://yoursite.com/post</code>.</li>\n<li>The server at a.com (or another service altogether) checks <code>https://yoursite.com/post</code> looking for a link-element in the markup that looks like this: <code><link rel=\"webmention\" href=\"https://yoursite.com/webmentions/receive\"></code> .</li>\n<li>It finds it, it will send a simple HTTP request to it indicating that <code>https://a.com/post</code> mentioned <code>https://yoursite.com/post</code>.</li>\n</ol><p>In our case, let\u2019s make sure that we have a working receive endpoint:</p>\n<pre><code>$ curl -i https://yoursite.com/webmentions/receive\nHTTP/2 405\n[...]\n</code></pre>\n<p>Looking good \ud83d\ude42</p>\n<p>Now you have to add the following line to your blog\u2019s head-section:</p>\n<pre><code><link rel=\"webmention\" href=\"https://yoursite.com/webmentions/receive\">\n</code></pre>\n<p>With this done, people should be able to send you mentions \ud83d\ude42 One thing, though: Any mention that is sent to the receive-endpoint is first checked for validity (i.e. that the source of the mention really actually links to its target) and only then does it show up in the UI. Once it\u2019s there, you have to explicitly <em>approve</em> a mention before it can be shown on your website. This is there in order to prevent people abusing your blog as link-heaven.</p>\n<h2>Step 5: Display mentions</h2>\n<p>Webmentiond also comes with a little widget that you can embed in your website for rendering mentions:</p>\n<pre><code><div class=\"webmentions webmentions-container\"\n data-endpoint=\"https://yoursite.com/webmentions\"\n data-target=\"https://yoursite.com/url/to/post\"></div>\n<script src=\"https://yoursite.com/webmentions/ui/dist/widget.js\"></script>\n</code></pre>\n<p>This <em>should</em> be it. I\u2019m pretty sure that I\u2019ve forgotten a thing or two or that something is completely unintelligible so please let me know \ud83d\ude05</p>"
},
"author": {
"type": "card",
"name": "Horst Gutmann",
"url": "https://zerokspot.com/",
"photo": null
},
"post-type": "note"
}
},
"_id": "12450978",
"_source": "1886",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://micro.blog/manton/avatar.jpg"
},
"url": "https://www.manton.org/2020/06/15/embedding-microblog-posts.html",
"name": "Embedding microblog posts with Quotebacks",
"content": {
"html": "<p>For a long time I\u2019ve wanted to add quoting tools to Micro.blog, so that it\u2019s even easier to embed text from other blog posts and add your own thoughts. Markdown block quotes are fairly easy, but do require a little more copy/paste work and some editing.</p>\n\n<p>So I was really interested in the recent launch of <a href=\"https://quotebacks.net/\">Quotebacks</a>, from Tom Critchlow and Toby Shorin. We\u2019ve needed a kind of \u201cembed microblog post\u201d feature in Micro.blog, similar to the embedding that Twitter and Facebook have. Quotebacks are exactly that, but they work for anything on the web.</p>\n\n<p>I\u2019d like to run with Quotebacks and see where it leads us. For now, I\u2019ve added \u201cEmbed\u201d links on the Micro.blog Favorites page on the web. This is an experiment. It will likely change, either rolling out in some form to all the platforms, or based on feedback maybe we\u2019ll go in a different direction.</p>\n\n<p>I\u2019ve also <a href=\"https://github.com/microdotblog/quotebacks\">forked the Quotebacks repository</a> and tweaked the JavaScript with a couple changes:</p>\n\n<ul><li>Instead of routing the favicons through Google\u2019s cache, Micro.blog\u2019s version just uses the profile photos on your account directly with a new <code>data-avatar</code> attribute.</li>\n<li>Because copied microblog posts always have a profile photo, it is displayed larger with rounded corners.</li>\n</ul><p>How does this look? I\u2019m embedding a microblog post below using this feature:</p>\n\n<p></p><blockquote cite=\"https://www.manton.org/2020/06/12/weve-posted-core.html\"><p>We\u2019ve posted <a href=\"https://coreint.org/2020/06/episode-424-the-worst-transition/\">Core Int 424</a>, talking with <a href=\"https://micro.blog/danielpunkass\">@danielpunkass</a> about the ARM rumor, how it compares to previous transitions, WWDC, and more.</p>\nManton Reece<a href=\"https://www.manton.org/2020/06/12/weve-posted-core.html\">https://www.manton.org/2020/06/12/weve-posted-core.html</a></blockquote><p>I\u2019ve kept the \u201cEmbed\u201d links isolated to the Favorites page so we can try a few things without disrupting the rest of your Micro.blog workflow. There are other questions to answer, such as how this should integrate with sending Webmentions, but I think having something like this to play with is a good first step.</p>",
"text": "For a long time I\u2019ve wanted to add quoting tools to Micro.blog, so that it\u2019s even easier to embed text from other blog posts and add your own thoughts. Markdown block quotes are fairly easy, but do require a little more copy/paste work and some editing.\n\nSo I was really interested in the recent launch of Quotebacks, from Tom Critchlow and Toby Shorin. We\u2019ve needed a kind of \u201cembed microblog post\u201d feature in Micro.blog, similar to the embedding that Twitter and Facebook have. Quotebacks are exactly that, but they work for anything on the web.\n\nI\u2019d like to run with Quotebacks and see where it leads us. For now, I\u2019ve added \u201cEmbed\u201d links on the Micro.blog Favorites page on the web. This is an experiment. It will likely change, either rolling out in some form to all the platforms, or based on feedback maybe we\u2019ll go in a different direction.\n\nI\u2019ve also forked the Quotebacks repository and tweaked the JavaScript with a couple changes:\n\nInstead of routing the favicons through Google\u2019s cache, Micro.blog\u2019s version just uses the profile photos on your account directly with a new data-avatar attribute.\nBecause copied microblog posts always have a profile photo, it is displayed larger with rounded corners.\nHow does this look? I\u2019m embedding a microblog post below using this feature:\n\nWe\u2019ve posted Core Int 424, talking with @danielpunkass about the ARM rumor, how it compares to previous transitions, WWDC, and more.\nManton Reecehttps://www.manton.org/2020/06/12/weve-posted-core.htmlI\u2019ve kept the \u201cEmbed\u201d links isolated to the Favorites page so we can try a few things without disrupting the rest of your Micro.blog workflow. There are other questions to answer, such as how this should integrate with sending Webmentions, but I think having something like this to play with is a good first step."
},
"published": "2020-06-15T11:07:16-05:00",
"category": [
"Essays",
"Podcasts"
],
"post-type": "article",
"_id": "12448440",
"_source": "12",
"_is_read": true
}
There are many reasons to delete your Facebook account, so let's start with the assumption you've already made the decision. Here are a few things to know before you press the big "Delete" button.
{
"type": "entry",
"published": "2020-06-14T15:09:50-07:00",
"summary": "There are many reasons to delete your Facebook account, so let's start with the assumption you've already made the decision. Here are a few things to know before you press the big \"Delete\" button.",
"url": "https://aaronparecki.com/2020/06/14/14/how-to-leave-facebook",
"category": [
"facebook",
"indieweb"
],
"name": "How to Leave Facebook",
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "article",
"_id": "12429054",
"_source": "16",
"_is_read": true
}
I’ve used a variety of approaches over the years, from manual to semi-automatic. Here’s some different things I’ve done:
Initially I would publish a note, then use the interactive Bridgy Publish form from my account page. Your account page is https://brid.gy/twitter/isellsoap. Paste the URL of your note there, choose the options whether you want your original link appended to the tweet, then preview it. If it looks good, publish it. I then would copy the tweet’s URL and add it on my original note as a syndication link. See below on this note for an example of that syndication link.
After I did that for a while and it was working smoothly, I started to automate it more. Bridgy Publish lets you send a webmention to trigger the publish. I set up a custom bit of PHP code that would let me click a button to send off that webmention for the note I wanted to publish. Sending a webmention is a pretty simple POST request, so I used the WireHTTP class for that. When publishing to Twitter, the successful Bridgy response includes the Twitter API data for the tweet. I wrote some more code that processes that response to get the tweet’s URL and updates the syndication link on the note.
Note that all of this is separate from the Webmention plugin itself. The code for my semi-automatic publishing isn’t part of a plugin and isn’t very polished code, so I haven’t released any of it. If I can find a way to make it more user-friendly, I might release it, or at least write a tutorial with more guidance.
https://php.microformats.io is a useful tool to debug the microformats in your posts, by the way. Here’s the parsed result of this very note. The in-reply-to
property is what Bridgy Publish uses to post a reply tweet. The syndication
property is one way Bridgy maps your original post to the Twitter copy for sending responses back to you — particularly if you don’t include your original post link in the tweet.
{
"type": "entry",
"published": "2020-06-13 16:39-0700",
"summary": "I\u2019ve used a variety of approaches over the years, from manual to semi-automatic. Here\u2019s some different things I\u2019ve done:",
"url": "https://gregorlove.com/2020/06/ive-used-a-variety/",
"syndication": [
"https://twitter.com/gRegorLove/status/1271952103502741506"
],
"in-reply-to": [
"https://twitter.com/isellsoap/status/1271425693671399424"
],
"content": {
"text": "I\u2019ve used a variety of approaches over the years, from manual to semi-automatic. Here\u2019s some different things I\u2019ve done:\n\nInitially I would publish a note, then use the interactive Bridgy Publish form from my account page. Your account page is https://brid.gy/twitter/isellsoap. Paste the URL of your note there, choose the options whether you want your original link appended to the tweet, then preview it. If it looks good, publish it. I then would copy the tweet\u2019s URL and add it on my original note as a syndication link. See below on this note for an example of that syndication link.\n\nAfter I did that for a while and it was working smoothly, I started to automate it more. Bridgy Publish lets you send a webmention to trigger the publish. I set up a custom bit of PHP code that would let me click a button to send off that webmention for the note I wanted to publish. Sending a webmention is a pretty simple POST request, so I used the WireHTTP class for that. When publishing to Twitter, the successful Bridgy response includes the Twitter API data for the tweet. I wrote some more code that processes that response to get the tweet\u2019s URL and updates the syndication link on the note.\n\nNote that all of this is separate from the Webmention plugin itself. The code for my semi-automatic publishing isn\u2019t part of a plugin and isn\u2019t very polished code, so I haven\u2019t released any of it. If I can find a way to make it more user-friendly, I might release it, or at least write a tutorial with more guidance.\n\nhttps://php.microformats.io is a useful tool to debug the microformats in your posts, by the way. Here\u2019s the parsed result of this very note. The in-reply-to property is what Bridgy Publish uses to post a reply tweet. The syndication property is one way Bridgy maps your original post to the Twitter copy for sending responses back to you \u2014 particularly if you don\u2019t include your original post link in the tweet.",
"html": "<p class=\"p-summary\">I\u2019ve used a variety of approaches over the years, from manual to semi-automatic. Here\u2019s some different things I\u2019ve done:</p>\n\n<p>Initially I would publish a note, then use the interactive Bridgy Publish form from my <a href=\"https://brid.gy/twitter/gRegorLove\">account page</a>. Your account page is <a href=\"https://brid.gy/twitter/isellsoap\">https://brid.gy/twitter/isellsoap</a>. Paste the URL of your note there, choose the options whether you want your original link appended to the tweet, then preview it. If it looks good, publish it. I then would copy the tweet\u2019s URL and add it on my original note as a <a href=\"https://brid.gy/about#link\">syndication link</a>. See below on this note for an example of that syndication link.</p>\n\n<p>After I did that for a while and it was working smoothly, I started to automate it more. Bridgy Publish lets you <a href=\"https://brid.gy/about#webmentions\">send a webmention</a> to trigger the publish. I set up a custom bit of PHP code that would let me click a button to send off that webmention for the note I wanted to publish. Sending a webmention is a pretty simple POST request, so I used the WireHTTP class for that. When publishing to Twitter, the successful Bridgy response includes the Twitter API data for the tweet. I wrote some more code that processes that response to get the tweet\u2019s URL and updates the syndication link on the note.</p>\n\n<p>Note that all of this is separate from the Webmention plugin itself. The code for my semi-automatic publishing isn\u2019t part of a plugin and isn\u2019t very polished code, so I haven\u2019t released any of it. If I can find a way to make it more user-friendly, I might release it, or at least write a tutorial with more guidance.</p>\n\n<p><a href=\"https://php.microformats.io/\">https://php.microformats.io</a> is a useful tool to debug the microformats in your posts, by the way. Here\u2019s the <a href=\"https://php.microformats.io/?url=https://gregorlove.com/2020/06/ive-used-a-variety/\">parsed result of this very note</a>. The <code>in-reply-to</code> property is what Bridgy Publish uses to post a reply tweet. The <code>syndication</code> property is one way Bridgy maps your original post to the Twitter copy for sending responses back to you \u2014 particularly if you don\u2019t include your original post link in the tweet.</p>"
},
"post-type": "reply",
"refs": {
"https://twitter.com/isellsoap/status/1271425693671399424": {
"type": "entry",
"url": "https://twitter.com/isellsoap/status/1271425693671399424",
"name": "https://twitter.com/isellsoap/status/1271425693671399424",
"post-type": "article"
}
},
"_id": "12409718",
"_source": "95",
"_is_read": true
}
This looks like a nifty tool for blogs:
Quotebacks is a tool that makes it easy to grab snippets of text from around the web and convert them into embeddable blockquote web components.
{
"type": "entry",
"published": "2020-06-13T12:24:25Z",
"url": "https://adactio.com/links/17003",
"category": [
"quotebacks",
"blockquotes",
"citations",
"quoting",
"blogs",
"blogging",
"citing",
"publishing",
"indieweb"
],
"bookmark-of": [
"https://quotebacks.net/"
],
"content": {
"text": "Quotebacks\n\n\n\nThis looks like a nifty tool for blogs:\n\n\n Quotebacks is a tool that makes it easy to grab snippets of text from around the web and convert them into embeddable blockquote web components.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://quotebacks.net/\">\nQuotebacks\n</a>\n</h3>\n\n<p>This looks like a nifty tool for blogs:</p>\n\n<blockquote>\n <p>Quotebacks is a tool that makes it easy to grab snippets of text from around the web and convert them into embeddable blockquote web components.</p>\n</blockquote>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "12398245",
"_source": "2",
"_is_read": true
}
I am proposing a session for IndieWebCamp West Coast: “Keeping Track of Books and Reading Progress.”
I would like to discuss the use-cases and experiences of using our websites to:
- track books we want to read
- categorize (or “shelve”) books
- track reading progress
Most of my personal experience has been around tracking books I want to read. It is probably more accurate to classify those as want posts instead of read posts. I’d like to discuss the differences between these three types of posts and what they look like on our sites. Regarding categorizing books, we should also discuss Library JSON.
This session is broader than indiebookclub but will likely have an impact on it. indiebookclub creates posts with a status of to-read, reading, or finished. The first is probably a want post and the others seem to be reading progress posts.
{
"type": "entry",
"published": "2020-06-12 17:40-0700",
"url": "https://gregorlove.com/2020/06/i-am-proposing-a-session/",
"content": {
"text": "I am proposing a session for IndieWebCamp West Coast: \u201cKeeping Track of Books and Reading Progress.\u201d\n\nI would like to discuss the use-cases and experiences of using our websites to:\n\ntrack books we want to read\n\tcategorize (or \u201cshelve\u201d) books\n\ttrack reading progress\nMost of my personal experience has been around tracking books I want to read. It is probably more accurate to classify those as want posts instead of read posts. I\u2019d like to discuss the differences between these three types of posts and what they look like on our sites. Regarding categorizing books, we should also discuss Library JSON.\n\nThis session is broader than indiebookclub but will likely have an impact on it. indiebookclub creates posts with a status of to-read, reading, or finished. The first is probably a want post and the others seem to be reading progress posts.",
"html": "<p>I am proposing a session for <a href=\"https://indieweb.org/2020/West\">IndieWebCamp West Coast</a>: \u201cKeeping Track of Books and Reading Progress.\u201d</p>\n\n<p>I would like to discuss the use-cases and experiences of using our websites to:</p>\n\n<ol><li>track books we want to read</li>\n\t<li>categorize (or \u201cshelve\u201d) books</li>\n\t<li>track reading progress</li>\n</ol><p>Most of my personal experience has been around tracking books I want to read. It is probably more accurate to classify those as <b><a href=\"https://indieweb.org/want\">want</a></b> posts instead of <b><a href=\"https://indieweb.org/read\">read</a></b> posts. I\u2019d like to discuss the differences between these three types of posts and what they look like on our sites. Regarding categorizing books, we should also discuss <a href=\"https://tomcritchlow.com/2020/04/15/library-json/\">Library JSON</a>.</p>\n\n<p>This session is broader than <a href=\"https://indiebookclub.biz/\">indiebookclub</a> but will likely have an impact on it. indiebookclub creates posts with a status of to-read, reading, or finished. The first is probably a <i>want</i> post and the others seem to be <i>reading progress</i> posts.</p>"
},
"post-type": "note",
"_id": "12390210",
"_source": "95",
"_is_read": true
}
I noticed I wasn’t seeing your feed in Monocle. It looks like your jsonfeed doesn’t validate: https://validator.jsonfeed.org/?url=https%3A%2F%2Fpine.blog%2Fu%2Fsonicrocketman%2Ffeed.json
I subscribed to your microformats feed and that’s working smoothly!
{
"type": "entry",
"published": "2020-06-12 16:36-0700",
"url": "https://gregorlove.com/2020/06/i-noticed-i-wasnt-seeing/",
"in-reply-to": [
"https://pine.blog/u/sonicrocketman"
],
"content": {
"text": "I noticed I wasn\u2019t seeing your feed in Monocle. It looks like your jsonfeed doesn\u2019t validate: https://validator.jsonfeed.org/?url=https%3A%2F%2Fpine.blog%2Fu%2Fsonicrocketman%2Ffeed.json\n\nI subscribed to your microformats feed and that\u2019s working smoothly!",
"html": "<p>I noticed I wasn\u2019t seeing your feed in Monocle. It looks like your jsonfeed doesn\u2019t validate: <a href=\"https://validator.jsonfeed.org/?url=https%3A%2F%2Fpine.blog%2Fu%2Fsonicrocketman%2Ffeed.json\">https://validator.jsonfeed.org/?url=https%3A%2F%2Fpine.blog%2Fu%2Fsonicrocketman%2Ffeed.json</a></p>\n\n<p>I subscribed to your microformats feed and that\u2019s working smoothly!</p>"
},
"post-type": "reply",
"refs": {
"https://pine.blog/u/sonicrocketman": {
"type": "entry",
"url": "https://pine.blog/u/sonicrocketman",
"name": "https://pine.blog/u/sonicrocketman",
"post-type": "article"
}
},
"_id": "12390211",
"_source": "95",
"_is_read": true
}
Congratulations and kudos to Phil for twenty years of blogging!
Here he describes what it was like online in the year 2000. Yes, it was very different to today, but…
Anyone who thinks blogging died at some point in the past twenty years presumably just lost interest themselves, because there have always been plenty of blogs to read. Some slow down, some die, new ones appear. It’s as easy as it’s ever been to write and read blogs.
Though Phil does note:
Some of the posts I read were very personal in a way that’s less common now, in general. … Even “personal” websites (like mine) often have an awareness about them, about what’s being shared, the impression it gives to strangers, presenting a public face, maybe a feeling of, “I’m just writing personal nonsense but, why, yes, I am available for hire”.
Maybe that’s why I’m enjoying Robin’s writing so much.
{
"type": "entry",
"published": "2020-06-12T14:49:15Z",
"url": "https://adactio.com/links/17000",
"category": [
"indieweb",
"personal",
"publishing",
"blogs",
"blogging",
"2000",
"sxsw",
"online",
"sharing",
"honesty"
],
"bookmark-of": [
"https://www.gyford.com/phil/writing/2020/06/11/weblogs-2000/"
],
"content": {
"text": "What was it like? (Phil Gyford\u2019s website)\n\n\n\nCongratulations and kudos to Phil for twenty years of blogging!\n\nHere he describes what it was like online in the year 2000. Yes, it was very different to today, but\u2026\n\n\n Anyone who thinks blogging died at some point in the past twenty years presumably just lost interest themselves, because there have always been plenty of blogs to read. Some slow down, some die, new ones appear. It\u2019s as easy as it\u2019s ever been to write and read blogs.\n\n\nThough Phil does note:\n\n\n Some of the posts I read were very personal in a way that\u2019s less common now, in general. \u2026 Even \u201cpersonal\u201d websites (like mine) often have an awareness about them, about what\u2019s being shared, the impression it gives to strangers, presenting a public face, maybe a feeling of, \u201cI\u2019m just writing personal nonsense but, why, yes, I am available for hire\u201d.\n\n\nMaybe that\u2019s why I\u2019m enjoying Robin\u2019s writing so much.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://www.gyford.com/phil/writing/2020/06/11/weblogs-2000/\">\nWhat was it like? (Phil Gyford\u2019s website)\n</a>\n</h3>\n\n<p>Congratulations and kudos to Phil for twenty years of blogging!</p>\n\n<p>Here he describes what it was like online in the year 2000. Yes, it was very different to today, but\u2026</p>\n\n<blockquote>\n <p>Anyone who thinks blogging died at some point in the past twenty years presumably just lost interest themselves, because there have always been plenty of blogs to read. Some slow down, some die, new ones appear. It\u2019s as easy as it\u2019s ever been to write and read blogs.</p>\n</blockquote>\n\n<p>Though Phil does note:</p>\n\n<blockquote>\n <p>Some of the posts I read were very personal in a way that\u2019s less common now, in general. \u2026 Even \u201cpersonal\u201d websites (like mine) often have an awareness about them, about what\u2019s being shared, the impression it gives to strangers, presenting a public face, maybe a feeling of, \u201cI\u2019m just writing personal nonsense but, why, yes, I am available for hire\u201d.</p>\n</blockquote>\n\n<p>Maybe that\u2019s why I\u2019m enjoying <a href=\"https://www.robinrendle.com/notes/between-the-third-and-fifth-apology\">Robin\u2019s writing</a> so much.</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "12374648",
"_source": "2",
"_is_read": true
}
When I log onto someone’s website I want them to tell me why they’re weird. Where’s the journal or scrapbook? Where’s your stamp collection? Or the works-in-progress, the failed attempts, the clunky unfinished things?
{
"type": "entry",
"published": "2020-06-12T14:46:58Z",
"url": "https://adactio.com/links/16999",
"category": [
"indieweb",
"personal",
"publishing",
"imperfection",
"honesty"
],
"bookmark-of": [
"https://www.robinrendle.com/notes/2d-websites.html"
],
"content": {
"text": "Robin Rendle\u2005\uff65\u20052D Websites\n\n\n\n\n When I log onto someone\u2019s website I want them to tell me why they\u2019re weird. Where\u2019s the journal or scrapbook? Where\u2019s your stamp collection? Or the works-in-progress, the failed attempts, the clunky unfinished things?",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://www.robinrendle.com/notes/2d-websites.html\">\nRobin Rendle\u2005\uff65\u20052D Websites\n</a>\n</h3>\n\n<blockquote>\n <p>When I log onto someone\u2019s website I want them to tell me why they\u2019re weird. Where\u2019s the journal or scrapbook? Where\u2019s your stamp collection? Or the works-in-progress, the failed attempts, the clunky unfinished things?</p>\n</blockquote>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "12374649",
"_source": "2",
"_is_read": true
}