Hello IndieWeb. I'm here with a new website. It's really basic, but based on a new improved version of my engine and should be blazing fast! I also had a hardware upgrade - now I'm using an old notebook instead of a Raspberry Pi. The RPi itself is ok, just needs a software upgrade.
{
"type": "entry",
"published": "2019-09-02T00:11:19+00:00",
"url": "https://fireburn.ru/posts/1567372279",
"category": [
"IndieWeb",
"server",
"pyindieblog"
],
"content": {
"text": "Hello IndieWeb. I'm here with a new website. It's really basic, but based on a new improved version of my engine and should be blazing fast! I also had a hardware upgrade - now I'm using an old notebook instead of a Raspberry Pi. The RPi itself is ok, just needs a software upgrade."
},
"post-type": "note",
"_id": "5103065",
"_source": "1371",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Johannes Ernst",
"url": "https://upon2020.com/blog",
"photo": null
},
"url": "https://upon2020.com/blog/2019/06/going-to-indieweb-summit-2/",
"published": "2019-06-21T21:04:51-07:00",
"content": {
"html": "<p>I\u2019ve been making reservations, it must mean I\u2019ll be going to Portland next weekend for the 2019 IndieWeb Summit. Yeah! There are still a few spots left. Like an extraordinarily nice and extraordinarily competent crowd of somewhat geeky fans of the web? Join us! Johannes Ernst: RSVP yes to 2019 \u2026</p>",
"text": "I\u2019ve been making reservations, it must mean I\u2019ll be going to Portland next weekend for the 2019 IndieWeb Summit. Yeah! There are still a few spots left. Like an extraordinarily nice and extraordinarily competent crowd of somewhat geeky fans of the web? Join us! Johannes Ernst: RSVP yes to 2019 \u2026"
},
"name": "Going to IndieWeb Summit",
"post-type": "article",
"_id": "5100718",
"_source": "240",
"_is_read": true
}
Ignore the clickbaity headline and have a read of Whitney Kimball’s obituaries of Friendster, MySpace, Bebo, OpenSocial, ConnectU, Tribe.net, Path, Yik Yak, Ello, Orkut, Google+, and Vine.
I’m sure your content on Facebook, Twitter, and Instagram is perfectly safe.
{
"type": "entry",
"published": "2019-09-01T17:51:59Z",
"url": "https://adactio.com/links/15758",
"category": [
"social",
"networks",
"friendster",
"orkut",
"myspace",
"bebo",
"ello",
"google+",
"twitter",
"facebook",
"instagram",
"vine",
"digital",
"preservation",
"sitedeaths",
"indieweb"
],
"bookmark-of": [
"https://gizmodo.com/why-these-social-networks-failed-so-badly-1836996164"
],
"content": {
"text": "Why These Social Networks Failed So Badly\n\n\n\nIgnore the clickbaity headline and have a read of Whitney Kimball\u2019s obituaries of Friendster, MySpace, Bebo, OpenSocial, ConnectU, Tribe.net, Path, Yik Yak, Ello, Orkut, Google+, and Vine.\n\nI\u2019m sure your content on Facebook, Twitter, and Instagram is perfectly safe.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://gizmodo.com/why-these-social-networks-failed-so-badly-1836996164\">\nWhy These Social Networks Failed So Badly\n</a>\n</h3>\n\n<p>Ignore the clickbaity headline and have a read of Whitney Kimball\u2019s obituaries of Friendster, MySpace, Bebo, OpenSocial, ConnectU, Tribe.net, Path, Yik Yak, Ello, Orkut, Google+, and Vine.</p>\n\n<p>I\u2019m sure your content on Facebook, Twitter, and Instagram is perfectly safe.</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://aperture-proxy.p3k.io/bbbacdf0a064621004f2ce9026a1202a5f3433e0/68747470733a2f2f6164616374696f2e636f6d2f696d616765732f70686f746f2d3135302e6a7067"
},
"post-type": "bookmark",
"_id": "5098847",
"_source": "2",
"_is_read": true
}
@joealexlemon Great meeting you yesterday @InnovatPasadena. The ideas in your video dovetail quite well with the tenets of the #IndieWeb. I bet you'll appreciate https://indieweb.org/podcast.
{
"type": "entry",
"published": "2019-08-31T16:46:51+00:00",
"url": "http://stream.boffosocko.com/2019/joealexlemon-great-meeting-you-yesterday-innovatpasadena-the-ideas-in-your",
"category": [
"IndieWeb"
],
"syndication": [
"https://twitter.com/ChrisAldrich/status/1167841196758228997"
],
"in-reply-to": [
"https://twitter.com/joealexlemon/status/1167779321622204416"
],
"content": {
"text": "@joealexlemon Great meeting you yesterday @InnovatPasadena. The ideas in your video dovetail quite well with the tenets of the #IndieWeb. I bet you'll appreciate https://indieweb.org/podcast.",
"html": "<a href=\"https://twitter.com/joealexlemon\">@joealexlemon</a> Great meeting you yesterday <a href=\"https://twitter.com/InnovatPasadena\">@InnovatPasadena</a>. The ideas in your video dovetail quite well with the tenets of the <a href=\"http://stream.boffosocko.com/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a>. I bet you'll appreciate <a href=\"https://indieweb.org/podcast\">https://indieweb.org/podcast</a>."
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "https://aperture-proxy.p3k.io/4a01a54aa55b69dd1b2633c835610491c575e2e2/687474703a2f2f73747265616d2e626f66666f736f636b6f2e636f6d2f66696c652f36303034323762383166373738356537303465616466653531316139323730662f7468756d622e6a7067"
},
"post-type": "reply",
"_id": "5090728",
"_source": "192",
"_is_read": true
}
Announcing the Microformats translation layer for Meetup.com events.
{
"type": "entry",
"summary": "Announcing the Microformats translation layer for Meetup.com events.",
"url": "https://www.jvt.me/posts/2019/08/31/microformats-meetup/",
"name": "Introducing a Microformats API for Meetup.com: meetup-mf2.jvt.me",
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://aperture-proxy.p3k.io/f4cac242182744deb91a5ee91d7528d78e657269/68747470733a2f2f7777772e6a76742e6d652f696d672f70726f66696c652e706e67"
},
"post-type": "article",
"_id": "5085351",
"_source": "2169",
"_is_read": true
}
{
"type": "entry",
"published": "2019-08-30T21:27:56.59918-07:00",
"url": "https://v2.jacky.wtf/post/koype-0-1-0",
"category": [
"releases",
"koype"
],
"name": "Koype 0.1.0 is Out!",
"content": {
"text": "Friday evening, after some testing of the development environment, I finally cut the first minor version of Koype. It's been nearly a year since I've started working on this project and this minor version reflects a shoddy attempt at a self-service IndieWeb site. There's a lot of implications and assumptions I've made and I'd love for those willing to try it out on their systems to help me break them. Some of those are:You'll be using an ...",
"html": "<p>Friday evening, after some testing of the development environment, I finally cut the first minor version of <a href=\"https://koype.net\">Koype</a>. It's been nearly a year since I've started working on this project and this minor version reflects a shoddy attempt at a self-service IndieWeb site. There's a lot of implications and assumptions I've made and I'd love for those willing to try it out on their systems to help me break them. Some of those are:</p><ul><li>You'll be using an <strong>...\n </strong>\n</li></ul>"
},
"post-type": "article",
"_id": "5082973",
"_source": "1886",
"_is_read": true
}
IndieWeb Meetup is coming up next week, Wednesday 6:30pm at Mozart’s Coffee. Also known as Homebrew Website Club, we meet once a month in Austin to talk about the open web or work on projects. Everyone’s welcome. ☕
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://aperture-proxy.p3k.io/907926e361383204bd1bc913c143c23e70ae69bb/68747470733a2f2f6d6963726f2e626c6f672f6d616e746f6e2f6176617461722e6a7067"
},
"url": "https://www.manton.org/2019/08/30/indieweb-meetup-is.html",
"content": {
"html": "<p>IndieWeb Meetup is coming up next week, Wednesday 6:30pm at Mozart\u2019s Coffee. Also known as Homebrew Website Club, we meet once a month in Austin to talk about the open web or work on projects. Everyone\u2019s welcome. \u2615</p>",
"text": "IndieWeb Meetup is coming up next week, Wednesday 6:30pm at Mozart\u2019s Coffee. Also known as Homebrew Website Club, we meet once a month in Austin to talk about the open web or work on projects. Everyone\u2019s welcome. \u2615"
},
"published": "2019-08-30T16:09:26-05:00",
"post-type": "note",
"_id": "5080346",
"_source": "12",
"_is_read": true
}
A way for you to comment (anonymously, if you wish) on any post that accepts webmentions. So you can use this to respond to posts on adactio.com if you want.
{
"type": "entry",
"published": "2019-08-29T16:26:01Z",
"url": "https://adactio.com/links/15746",
"category": [
"webmentions",
"comments",
"indieauth",
"commenting",
"",
"social",
"indieweb"
],
"bookmark-of": [
"https://commentpara.de/"
],
"content": {
"text": "comment parade\n\n\n\nA way for you to comment (anonymously, if you wish) on any post that accepts webmentions. So you can use this to respond to posts on adactio.com if you want.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://commentpara.de/\">\ncomment parade\n</a>\n</h3>\n\n<p>A way for you to comment (anonymously, if you wish) on any post that accepts webmentions. So you can use this to respond to posts on adactio.com if you want.</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://aperture-proxy.p3k.io/bbbacdf0a064621004f2ce9026a1202a5f3433e0/68747470733a2f2f6164616374696f2e636f6d2f696d616765732f70686f746f2d3135302e6a7067"
},
"post-type": "bookmark",
"_id": "5063742",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://aperture-proxy.p3k.io/907926e361383204bd1bc913c143c23e70ae69bb/68747470733a2f2f6d6963726f2e626c6f672f6d616e746f6e2f6176617461722e6a7067"
},
"url": "https://www.manton.org/2019/08/28/dialog-open-source.html",
"name": "Dialog open source and the IndieWeb",
"content": {
"html": "<p><a href=\"https://dialogapp.net/\">Dialog</a> is a full-featured Micro.blog app for Android. <a href=\"https://v2.jacky.wtf/post/need-mobile-indieweb\">Jacky Alcin\u00e9 blogged about it</a> today while thinking about Micro.blog and IndieWeb mobile apps:</p>\n\n<blockquote>\n<p>I decided to look at the client landscape for <a href=\"https://micro.blog/\">micro.blog</a>, the most mature social platform that\u2019s built around IndieWeb principles. I defined maturity as a platform that allowed immediate on-boarding into the community, provided a very simple (no-explainer) interface on how to get started and made it easy to go beyond it. That level of support is something I want my suite of tools to have - and I\u2019m still working on it.</p>\n</blockquote>\n\n<p>Because Dialog is such a polished app and already open source, I wondered if it could be the foundation for additional IndieWeb-related features for Android users. The official repository with the source code for Dialog is <a href=\"https://gitlab.com/quantum1729/Dialog\">on Gitlab here</a>.</p>\n\n<p>I\u2019ve also copied it to the <a href=\"https://github.com/microdotblog/dialog\">Micro.blog account on GitHub</a>, in case it\u2019s useful for any GitHub users to browse or fork the code there. Thanks again to Mike Haynes for Dialog and for making it available in Google Play, as well as open-sourcing it!</p>",
"text": "Dialog is a full-featured Micro.blog app for Android. Jacky Alcin\u00e9 blogged about it today while thinking about Micro.blog and IndieWeb mobile apps:\n\n\nI decided to look at the client landscape for micro.blog, the most mature social platform that\u2019s built around IndieWeb principles. I defined maturity as a platform that allowed immediate on-boarding into the community, provided a very simple (no-explainer) interface on how to get started and made it easy to go beyond it. That level of support is something I want my suite of tools to have - and I\u2019m still working on it.\n\n\nBecause Dialog is such a polished app and already open source, I wondered if it could be the foundation for additional IndieWeb-related features for Android users. The official repository with the source code for Dialog is on Gitlab here.\n\nI\u2019ve also copied it to the Micro.blog account on GitHub, in case it\u2019s useful for any GitHub users to browse or fork the code there. Thanks again to Mike Haynes for Dialog and for making it available in Google Play, as well as open-sourcing it!"
},
"published": "2019-08-28T11:27:53-05:00",
"post-type": "article",
"_id": "5051297",
"_source": "12",
"_is_read": true
}
It’s half before midnight PST but just wrote a little something about the IndieWeb and mobile (more of a rant): https://v2.jacky.wtf/post/need-mobile-indieweb
{
"type": "entry",
"published": "2019-08-27T23:38:07.48016-07:00",
"url": "https://v2.jacky.wtf/post/78c9e12a-6030-4890-b45d-a16a8e064ba7",
"content": {
"text": "It\u2019s half before midnight PST but just wrote a little something about the IndieWeb and mobile (more of a rant): https://v2.jacky.wtf/post/need-mobile-indieweb",
"html": "<p>It\u2019s half before midnight PST but just wrote a little something about the IndieWeb and mobile (more of a rant): <a href=\"https://v2.jacky.wtf/post/need-mobile-indieweb\">https://v2.jacky.wtf/post/need-mobile-indieweb</a></p>"
},
"post-type": "note",
"_id": "5045738",
"_source": "1886",
"_is_read": true
}
{
"type": "entry",
"published": "2019-08-27T23:34:54.92149-07:00",
"url": "https://v2.jacky.wtf/post/need-mobile-indieweb",
"category": [
"koype"
],
"name": "The Need for a Solid Mobile IndieWeb Experience",
"content": {
"text": "As much as the Web community would love to tell us that the Web is completely ready for the mobile landscape, it doesn't come close to the speed of native code running on a consumer device. Not a vanilla emulator but a two-year (or older!) device with a bit of wear. I tried for a month to use applications on the Web solely through Chrome and Firefox on mobile and it didn't work out too well for me. I got too used to the snappy nature of these native applications and I wanted that in the We...",
"html": "<p>As much as the Web community would love to tell us that the Web is completely ready for the mobile landscape, it doesn't come close to the speed of native code running on a consumer device. Not a vanilla emulator but a two-year (or older!) device with a bit of wear. I tried for a month to use applications on the Web solely through Chrome and Firefox on mobile and it didn't work out too well for me. I got too used to the snappy nature of these native applications and I wanted that in the We...\n </p>"
},
"post-type": "article",
"_id": "5045739",
"_source": "1886",
"_is_read": true
}
Follow-up @dietrich: per #indieweb interoperability strategy, my indie events (starting with last week https://tantek.com/e/5291), now have:
📆 Add to Calendar
Clicking adds the event to MacOS/iOS Calendar. Needs Android testing. Reports welcome!
Next: Add to gCal
{
"type": "entry",
"published": "2019-08-27 18:42-0700",
"url": "http://tantek.com/2019/239/t2/",
"category": [
"indieweb"
],
"in-reply-to": [
"https://tantek.com/2019/237/t2"
],
"content": {
"text": "Follow-up @dietrich: per #indieweb interoperability strategy, my indie events (starting with last week https://tantek.com/e/5291), now have:\n\n\ud83d\udcc6 Add to Calendar\n\nClicking adds the event to MacOS/iOS Calendar. Needs Android testing. Reports welcome!\n\nNext: Add to gCal",
"html": "Follow-up <a class=\"h-cassis-username\" href=\"https://twitter.com/dietrich\">@dietrich</a>: per #<span class=\"p-category\">indieweb</span> interoperability strategy, my indie events (starting with last week <a href=\"https://tantek.com/e/5291\">https://tantek.com/e/5291</a>), now have:<br /><br />\ud83d\udcc6 Add to Calendar<br /><br />Clicking adds the event to MacOS/iOS Calendar. Needs Android testing. Reports welcome!<br /><br />Next: Add to gCal"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"https://tantek.com/2019/237/t2": {
"type": "entry",
"url": "https://tantek.com/2019/237/t2",
"name": "Tantek\u2019s note",
"post-type": "article"
}
},
"_id": "5044918",
"_source": "1",
"_is_read": true
}
It’s been a while since I’ve focused on IndieWeb stuff. I think I’m going to spend my free time on that anyway since I’m working on getting Koype more usable / sharable as an application.
{
"type": "entry",
"published": "2019-08-27T20:34:11.33131-07:00",
"url": "https://v2.jacky.wtf/post/7383d098-11c9-4d37-8072-38213c860732",
"content": {
"text": "It\u2019s been a while since I\u2019ve focused on IndieWeb stuff. I think I\u2019m going to spend my free time on that anyway since I\u2019m working on getting Koype more usable / sharable as an application.",
"html": "<p>It\u2019s been a while since I\u2019ve focused on IndieWeb stuff. I think I\u2019m going to spend my free time on that anyway since I\u2019m working on getting Koype more usable / sharable as an application.</p>"
},
"post-type": "note",
"_id": "5044769",
"_source": "1886",
"_is_read": true
}
Thanks for reading my post on my departure from Facebook, Beko! As it turns out, I've developed another tool that doesn't require anything but a JSON export from Facebook and a website that supports Micropub. Check it out here - https://github.com/cleverdevil/ditchbook
{
"type": "entry",
"published": "2019-08-27T23:51:40+00:00",
"url": "https://cleverdevil.io/2019/thanks-for-reading-my-post-on-my",
"in-reply-to": [
"https://beko.famkos.net/2019/08/28/freeing-from-facebook/"
],
"content": {
"text": "Thanks for reading my post on my departure from Facebook, Beko! As it turns out, I've developed another tool that doesn't require anything but a JSON export from Facebook and a website that supports Micropub. Check it out here - https://github.com/cleverdevil/ditchbook",
"html": "Thanks for reading my post on my departure from Facebook, Beko! As it turns out, I've developed another tool that doesn't require anything but a JSON export from Facebook and a website that supports Micropub. Check it out here - <a href=\"https://github.com/cleverdevil/ditchbook\">https://github.com/cleverdevil/ditchbook</a>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://aperture-proxy.p3k.io/77e5d6e5871324c43aebf2e3e7a5553e14578f66/68747470733a2f2f636c65766572646576696c2e696f2f66696c652f66646263373639366135663733383634656131316138323863383631653133382f7468756d622e6a7067"
},
"post-type": "reply",
"_id": "5043516",
"_source": "71",
"_is_read": true
}
Announcing the creation of my Micropub server, to allow publishing content away from my laptop/desktop.
{
"type": "entry",
"summary": "Announcing the creation of my Micropub server, to allow publishing content away from my laptop/desktop.",
"url": "https://www.jvt.me/posts/2019/08/26/setting-up-micropub/",
"name": "Setting Up a Micropub Server for www.jvt.me",
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://aperture-proxy.p3k.io/f4cac242182744deb91a5ee91d7528d78e657269/68747470733a2f2f7777772e6a76742e6d652f696d672f70726f66696c652e706e67"
},
"post-type": "article",
"_id": "5031356",
"_source": "2169",
"_is_read": true
}
@benwerd I keep a completely up-to-date list of feeds that I subscribe to in my microsub server (generated in real-time!) here - http://cleverdevil.io/following. Bonus points: its actually an h-feed you can subscribe to! I never got around to generating an OPML file from it, but I could do that easily. Its all a Known plugin, too :)
{
"type": "entry",
"published": "2019-08-26T19:53:19+00:00",
"url": "https://cleverdevil.io/2019/benwerd-i-keep-a-completely-up-to-date-list",
"syndication": [
"https://twitter.com/cleverdevil/status/1166076204706873345"
],
"in-reply-to": [
"https://werd.io/2019/i-wish-more-people-would-blog"
],
"content": {
"text": "@benwerd I keep a completely up-to-date list of feeds that I subscribe to in my microsub server (generated in real-time!) here - http://cleverdevil.io/following. Bonus points: its actually an h-feed you can subscribe to! I never got around to generating an OPML file from it, but I could do that easily. Its all a Known plugin, too :)",
"html": "@benwerd I keep a completely up-to-date list of feeds that I subscribe to in my microsub server (generated in real-time!) here - <a href=\"http://cleverdevil.io/following\">http://cleverdevil.io/following</a>. Bonus points: its actually an h-feed you can subscribe to! I never got around to generating an OPML file from it, but I could do that easily. Its all a Known plugin, too :)"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://aperture-proxy.p3k.io/77e5d6e5871324c43aebf2e3e7a5553e14578f66/68747470733a2f2f636c65766572646576696c2e696f2f66696c652f66646263373639366135663733383634656131316138323863383631653133382f7468756d622e6a7067"
},
"post-type": "reply",
"_id": "5028059",
"_source": "71",
"_is_read": true
}
{
"type": "entry",
"published": "2019-08-26T14:12:08+00:00",
"url": "https://werd.io/2019/i-wish-more-people-would-blog",
"name": "I need more blogs",
"content": {
"text": "I\u2019m back in the habit of reading my feed subscriptions at the beginning of every day. I love blogs: posts are typically more longform and thoughtful, and less led by trending topics on social media sites. It\u2019s usually \u201chere\u2019s what I\u2019ve been thinking about lately,\u201d which is lovely. As Kevin Marks says, I can read your thoughts, if you write them down first.I use NewsBlur with the Reeder app. NewsBlur is a really solid subscriptions engine, with nice features like the ability to import mailing lists. I find it useful to automatically forward mailing lists to NewsBlur and archive them out of my inbox. This is particularly great for Substack mailing lists - I pay to subscribe to a few, but the place where I send people messages is not the place where I want to be reading articles. And then Reeder is a beautiful interface that syncs my subscriptions across devices (I flip between an iPhone, iPad, and MacBook Pro) and automatically grabs articles for offline reading.The only trouble is, there isn\u2019t enough. Whereas Twitter and Facebook are unstoppable firehoses that constantly have new content, I can get through my feeds for the day in twenty minutes in the morning.So I have two requests:You should start a blog, if you don\u2019t have one already. There\u2019s nothing better for organizing your thoughts and socializing ideas. You don\u2019t have to labor for days over a post; blogs are often better when they\u2019re off the cuff. Writing in an interface away from the hustle of social media often allows you to express yourself more calmly (I certainly find this to be the case). And I would love to read your thoughts.And: if you already have a blog, or you really love someone else\u2019s, I\u2019d really like to know about it. I want to subscribe. In another, parallel universe it would have been as easy to share OPML subscription lists as it is to share Twitter lists, but that\u2019s not the one we live in. So email me, or send me a webmention, and let me know who I should be reading.I really appreciate it!",
"html": "<p>I\u2019m back in the habit of reading my feed subscriptions at the beginning of every day. I love blogs: posts are typically more longform and thoughtful, and less led by trending topics on social media sites. It\u2019s usually \u201chere\u2019s what I\u2019ve been thinking about lately,\u201d which is lovely. As Kevin Marks says, I can read your thoughts, if you write them down first.</p><p>I use NewsBlur with the Reeder app. NewsBlur is a really solid subscriptions engine, with nice features like the ability to import mailing lists. I find it useful to automatically forward mailing lists to NewsBlur and archive them out of my inbox. This is particularly great for Substack mailing lists - I pay to subscribe to a few, but the place where I send people messages is not the place where I want to be reading articles. And then Reeder is a beautiful interface that syncs my subscriptions across devices (I flip between an iPhone, iPad, and MacBook Pro) and automatically grabs articles for offline reading.</p><p>The only trouble is, there isn\u2019t enough. Whereas Twitter and Facebook are unstoppable firehoses that constantly have new content, I can get through my feeds for the day in twenty minutes in the morning.</p><p>So I have two requests:</p><p>You should start a blog, if you don\u2019t have one already. There\u2019s nothing better for organizing your thoughts and socializing ideas. You don\u2019t have to labor for days over a post; blogs are often better when they\u2019re off the cuff. Writing in an interface away from the hustle of social media often allows you to express yourself more calmly (I certainly find this to be the case). And I would love to read your thoughts.</p><p>And: if you already have a blog, or you really love someone else\u2019s, I\u2019d really like to know about it. I want to subscribe. In another, parallel universe it would have been as easy to share OPML subscription lists as it is to share Twitter lists, but that\u2019s not the one we live in. So email me, or send me a webmention, and let me know who I should be reading.</p><p>I really appreciate it!</p>"
},
"author": {
"type": "card",
"name": "Ben Werdm\u00fcller",
"url": "https://werd.io/profile/benwerd",
"photo": "https://aperture-proxy.p3k.io/53380f506eb0f0a49586bc4e8405897b04132d1f/68747470733a2f2f776572642e696f2f66696c652f3564333838633566623136656131346161633634303931322f7468756d622e6a7067"
},
"post-type": "article",
"_id": "5026546",
"_source": "191",
"_is_read": true
}
{
"type": "entry",
"published": "2019-08-26T16:00:25Z",
"url": "https://adactio.com/journal/15726",
"category": [
"google",
"amp",
"caching",
"hosting",
"prerendering",
"proposal",
"performance",
"privacy",
"speed",
"search",
"power",
"injustice",
"coercion",
"frontend",
"development"
],
"syndication": [
"https://medium.com/@adactio/63c1ca6318a8"
],
"name": "Opening up the AMP cache",
"content": {
"text": "I have a proposal that I think might alleviate some of the animosity around Google AMP. You can jump straight to the proposal or get some of the back story first\u2026\n\nThe AMP format\n\nGoogle AMP is exactly the kind of framework I\u2019d like to get behind. Unlike most front-end frameworks, its components take a declarative approach\u2014no knowledge of JavaScript required. I think Lea\u2019s excellent Mavo is the only other major framework that takes this inclusive approach. All the configuration happens in markup, and all the styling happens in CSS. Excellent!\n\nBut I cannot get behind AMP.\n\nInstead of competing on its own merits, AMP is unfairly propped up by the search engine of its parent company, Google. That makes it very hard to evaluate whether AMP is being used on its own merits. Instead, the evidence suggests that most publishers of AMP pages are doing so because they feel they have to, rather than because they want to. That\u2019s a real shame, because as a library of web components, AMP seems pretty good. But there\u2019s just no way to evaluate AMP-the-format without taking into account AMP-the-ecosystem.\n\nThe AMP ecosystem\n\nGoogle AMP ostensibly exists to make the web faster. Initially the focus was specifically on mobile performance, but that distinction has since fallen by the wayside. The idea is that by using AMP\u2019s web components, your pages will be speedy. Though, as Andy Davies points out, this isn\u2019t always the case:\n\n\n This is where I get confused\u2026 https://independent.co.uk only have an AMP site yet it\u2019s performance is awful from a user perspective - isn\u2019t AMP supposed to prevent this?\n\n\nSee also: Google AMP lowered our page speed, and there\u2019s no choice but to use it:\n\n\n According to Google\u2019s own Page Speed Insights audit (which Google recommends to check your performance), the AMP version of articles got an average performance score of 87. The non-AMP versions? 95.\n\n\nPublishers who already have fast web pages\u2014like The Guardian\u2014are still compelled to make AMP versions of their stories because of the search benefits reserved for AMP. As Terence Eden reported from a meeting of the AMP advisory committee:\n\n\n We heard, several times, that publishers don\u2019t like AMP. They feel forced to use it because otherwise they don\u2019t get into Google\u2019s news carousel \u2014 right at the top of the search results.\n \n Some people felt aggrieved that all the hard work they\u2019d done to speed up their sites was for nothing.\n\n\nThe Google AMP team are at pains to point out that AMP is not a ranking factor in search. That\u2019s true. But it is unfairly privileged in other ways. Only AMP pages can appear in the Top Stories carousel \u2026which appears above any other search results. As I\u2019ve said before:\n\n\n Now, if you were to ask any right-thinking person whether they think having their page appear right at the top of a list of search results would be considered preferential treatment, I think they would say hell, yes! This is the only reason why The Guardian, for instance, even have AMP versions of their content\u2014it\u2019s not for the performance benefits (their non-AMP pages are faster); it\u2019s for that prime real estate in the carousel.\n\n\nFrom A letter about Google AMP:\n\n\n Content that \u201copts in\u201d to AMP and the associated hosting within Google\u2019s domain is granted preferential search promotion, including (for news articles) a position above all other results.\n\n\nThat\u2019s not the only way that AMP pages get preferential treatment. It turns out that the secret to the speed of AMP pages isn\u2019t the web components. It\u2019s the prerendering.\n\nThe AMP cache\n\nIf you\u2019ve ever seen an AMP page in a list of search results, you\u2019ll have noticed the little lightning icon. If you\u2019ve ever tapped on that search result, you\u2019ll have noticed that the page loads blazingly fast!\n\nThat\u2019s not down to AMP-the-format, alas. That\u2019s down to the fact that the page has been prerendered by Google before you even went to it. If any page were prerendered that way, it would load blazingly fast. But currently, this privilege is reserved for AMP pages only.\n\nIf, after tapping through to that AMP page, you looked at the address bar of your browser, you might have noticed something odd. Even though you might have thought you were visiting The Washington Post, or The New York Times, the URL of the (blazingly fast) page you\u2019re looking at is still under Google\u2019s domain. That\u2019s because Google hosts any AMP pages that it prerenders.\n\nGoogle calls this \u201cthe AMP cache\u201d, but it would be better described as \u201cAMP hosting\u201d. The web page sent down the wire is hosted on Google\u2019s domain.\n\nHere\u2019s that AMP letter again:\n\n\n When a user navigates from Google to a piece of content Google has recommended, they are, unwittingly, remaining within Google\u2019s ecosystem.\n\n\nThrough gritted teeth, I will refer to this as \u201cthe AMP cache\u201d, because that\u2019s what everyone else calls it. But make no mistake, Google is hosting\u2014not caching\u2014these pages.\n\nBut why host the pages on a Google domain? Why not prerender the original URLs?\n\nPrerendering and privacy\n\nScott summed up the situation with AMP nicely:\n\n\n The pitch I think site owners are hearing is: let us host your pages on our domain and we\u2019ll promote them in search results AND preload them so they feel \u201cinstant.\u201d To opt-in, build pages using this component syntax.\n\n\nBut perhaps we could de-couple the AMP format from the AMP cache. \n\nThat\u2019s what Terence suggests:\n\n\n My recommendation is that Google stop requiring that organisations use Google\u2019s proprietary mark-up in order to benefit from Google\u2019s promotion.\n\n\nThe AMP letter, too:\n\n\n Instead of granting premium placement in search results only to AMP, provide the same perks to all pages that meet an objective, neutral performance criterion such as Speed Index.\n\n\nScott reiterates:\n\n\n It\u2019s been said before but it would be so good for the web if pages with a Lighthouse score over say, 90 could get into that top search result area, even if they\u2019re not built using Google\u2019s AMP framework. Feels wrong to have to rebuild/reproduce an already-fast site just for SEO.\n\n\nThis was also what I was calling for. But then Malte pointed out something that stumped me. Privacy.\n\nHere\u2019s the problem\u2026\n\nLet\u2019s say Google do indeed prerender already-fast pages when they\u2019re listed in search results. You, a search user, type something into Google. A list of results come back. Google begins pre-rendering some of them. But you don\u2019t end up clicking through to those pages. Nonetheless, the servers those pages are hosted on have received a GET request coming from a Google search. Those publishers now know that a particular (cookied?) user could have clicked through to their site. That\u2019s very different from knowing when someone has actually arrived at a particular site.\n\nAnd that\u2019s why Google host all the AMP pages that they prerender. Given the privacy implications of prerendering non-Google URLs, I must admit that I see their point.\n\nStill, it\u2019s a real shame to miss out on the speed benefit of prerendering:\n\n\n Prerendering AMP documents leads to substantial improvements in page load times. Page load time can be measured in different ways, but they consistently show that prerendering lets users see the content they want faster. For now, only AMP can provide the privacy preserving prerendering needed for this speed benefit.\n\n\nA modest proposal\n\nWhy is Google\u2019s AMP cache just for AMP pages? (Y\u2019know, apart from the obvious answer that it\u2019s in the name.)\n\nWhat if Google were allowed to host non-AMP pages? Google search could then prerender those pages just like it currently does for AMP pages. There would be no privacy leaks; everything would happen on the same domain\u2014google.com or ampproject.org or whatever\u2014just as currently happens with AMP pages.\n\nDon\u2019t get me wrong: I\u2019m not suggesting that Google should make a 1:1 model of the web just to prerender search results. I think that the implementation would need to have two important requirements:\n\nHosting needs to be opt-in.\nOnly fast pages should be prerendered.\nOpting in\n\nCurrently, by publishing a page using the AMP format, publishers give implicit approval to Google to host that page on Google\u2019s servers and serve up this Google-hosted version from search results. This has always struck me as being legally iffy. I\u2019ve looked in the AMP documentation to try to find any explicit granting of hosting permission (e.g. \u201cBy linking to this JavaScript file, you hereby give Google the right to serve up our copies of your content.\u201d), but no luck. So even with the current situation, I think a clear opt-in for hosting would be beneficial.\n\nThis could be a meta element. Maybe something like:\n\n<meta name=\"caches-allowed\" content=\"google\">\n\n\nThis would have the nice benefit of allowing comma-separated values:\n\n<meta name=\"caches-allowed\" content=\"google, yandex\">\n\n\n(The name is just a strawman, by the way\u2014I\u2019m not suggesting that this is what the final implementation would actually look like.)\n\nIf not a meta element, then perhaps this could be part of robots.txt? Although my feeling is that this needs to happen on a document-by-document basis rather than site-wide.\n\nMany people will, quite rightly, never want Google\u2014or anyone else\u2014to host and serve up their content. That\u2019s why it\u2019s so important that this behaviour needs to be opt-in. It\u2019s kind of appalling that the current hosting of AMP pages is opt-in-by-proxy-sort-of.\n\nCriteria for prerendering\n\nWhich pages should be blessed with hosting and prerendering? The fast ones. That\u2019s sorta the whole point of AMP. But right now, there\u2019s a lot of resentment by people with already-fast websites who quite rightly feel they shouldn\u2019t have to use the AMP format to benefit from the AMP ecosystem.\n\nPage speed is already a ranking factor. It doesn\u2019t seem like too much of a stretch to extend its benefits to hosting and prerendering. As mentioned above, there are already a few possible metrics to use:\n\nPage Speed Index\nLighthouse\nWeb Page Test\nAh, but what if a page has good score when it\u2019s indexed, but then gets worse afterwards? Not a problem! The version of the page that\u2019s measured is the same version of the page that gets hosted and prerendered. Google can confidently say \u201cThis page is fast!\u201d After all, they\u2019re the ones serving up the page.\n\nThat does raise the question of how often Google should check back with the original URL to see if it has changed/worsened/improved. The answer to that question is however long it currently takes to check back in on AMP pages:\n\n\n Each time a user accesses AMP content from the cache, the content is automatically updated, and the updated version is served to the next user once the content has been cached.\n\n\nIssues\n\nThis proposal does not solve the problem with the address bar. You\u2019d still find yourself looking at a page from The Washington Post or The New York Times (or adactio.com) but seeing a completely different URL in your browser. That\u2019s not good, for all the reasons outlined in the AMP letter.\n\nIn fact, this proposal could potentially make the situation worse. It would allow even more sites to be impersonated by Google\u2019s URLs. Where currently only AMP pages are bad actors in terms of URL confusion, opening up the AMP cache would allow equal opportunity URL confusion.\n\nWhat I\u2019m suggesting is definitely not a long-term solution. The long-term solutions currently being investigated are technically tricky and will take quite a while to come to fruition\u2014web packages and signed exchanges. In the meantime, what I\u2019m proposing is a stopgap solution that\u2019s technically a lot simpler. But it won\u2019t solve all the problems with AMP.\n\nThis proposal solves one problem\u2014AMP pages being unfairly privileged in search results\u2014but does nothing to solve the other, perhaps more serious problem: the erosion of site identity.\n\nMeasuring\n\nCurrently, Google can assess whether a page should be hosted and prerendered by checking to see if it\u2019s a valid AMP page. That test would need to be widened to include a different measurement of performance, but those measurements already exist.\n\nI can see how this assessment might not be as quick as checking for AMP validity. That might affect whether non-AMP pages could be measured quickly enough to end up in the Top Stories carousel, which is, by its nature, time-sensitive. But search results are not necessarily as time-sensitive. Let\u2019s start there.\n\nAssets\n\nCurrently, AMP pages can be prerendered without fetching anything other than the markup of the AMP page itself. All the CSS is inline. There are no initial requests for other kinds of content like images. That\u2019s because there are no img elements on the page: authors must use amp-img instead. The image itself isn\u2019t loaded until the user is on the page.\n\nIf the AMP cache were to be opened up to non-AMP pages, then any content required for prerendering would also need to be hosted on that same domain. Otherwise, there\u2019s privacy leakage.\n\nThis definitely introduces an extra level of complexity. Paths to assets within the markup might need to be re-written to point to the Google-hosted equivalents. There would almost certainly need to be a limit on the number of assets allowed. Though, for performance, that\u2019s no bad thing.\n\nMake no mistake, figuring out what to do about assets\u2014style sheets, scripts, and images\u2014is very challenging indeed. Luckily, there are very smart people on the Google AMP team. If that brainpower were to focus on this problem, I am confident they could solve it.\n\nSummary\n\nPrerendering of non-Google URLs is problematic for privacy reasons, so Google needs to be able to host pages in order to prerender them.\nCurrently, that\u2019s only done for pages using the AMP format.\nThe AMP cache\u2014and with it, prerendering\u2014should be decoupled from the AMP format, and opened up to other fast web pages.\nThere will be technical challenges, but hopefully nothing insurmountable.\n\nI honestly can\u2019t see what Google have to lose here. If their goal is genuinely to reward fast pages, then opening up their AMP cache to fast non-AMP pages will actively encourage people to make fast web pages (without having to switch over to the AMP format).\n\nI\u2019ve deliberately kept the details vague\u2014what the opt-in should look like; what the speed measurement should be; how to handle assets\u2014I\u2019m sure smarter folks than me can figure that stuff out.\n\nI would really like to know what other people think about this proposal. Obviously, I\u2019d love to hear from members of the Google AMP team. But I\u2019d also love to hear from publishers. And I\u2019d very much like to know what people in the web performance community think about this. (Write a blog post and send me a webmention.)\n\nWhat am I missing here? What haven\u2019t I thought of? What are the potential pitfalls (and are they any worse than the current acrimonious situation with Google AMP)?\n\nI would really love it if someone with a fast website were in a position to say, \u201cHey Google, I\u2019m giving you permission to host this page so that it can be prerendered.\u201d\n\nI would really love it if someone with a slow website could say, \u201cOh, shit! We\u2019d better make our existing website faster or Google won\u2019t host our pages for prerendering.\u201d\n\nAnd I would dearly love to finally be able to embrace AMP-the-format with a clear conscience. But as long as prerendering is joined at the hip to the AMP format, the injustice of the situation only harms the AMP project.\n\nGoogle, open up the AMP cache.",
"html": "<p>I have a proposal that I think might alleviate some of the animosity around Google AMP. You can <a href=\"https://adactio.com/#proposal\">jump straight to the proposal</a> or get some of the back story first\u2026</p>\n\n<h3>The AMP format</h3>\n\n<p><a href=\"https://amp.dev/\">Google AMP</a> is exactly the kind of framework I\u2019d like to get behind. Unlike most front-end frameworks, its components take a declarative approach\u2014no knowledge of JavaScript required. I think Lea\u2019s excellent <a href=\"https://mavo.io/\">Mavo</a> is the only other major framework that takes this <a href=\"https://adactio.com/journal/15050#barrier%20to%20entry\">inclusive</a> approach. All the configuration happens in markup, and all the styling happens in CSS. Excellent!</p>\n\n<p>But I cannot get behind AMP.</p>\n\n<p>Instead of competing on its own merits, AMP is unfairly propped up by the search engine of its parent company, Google. That makes it very hard to evaluate whether AMP is being used on its own merits. Instead, the evidence suggests that most publishers of AMP pages are doing so because they feel they have to, rather than because they want to. That\u2019s a real shame, because as a library of web components, AMP seems pretty good. But there\u2019s just no way to evaluate AMP-the-format without taking into account AMP-the-ecosystem.</p>\n\n<h3>The AMP ecosystem</h3>\n\n<p>Google AMP ostensibly exists to make the web faster. Initially the focus was specifically on mobile performance, but that distinction has since fallen by the wayside. The idea is that by using AMP\u2019s web components, your pages will be speedy. Though, <a href=\"https://twitter.com/AndyDavies/status/1165205231136673792\">as Andy Davies points out</a>, this isn\u2019t always the case:</p>\n\n<blockquote>\n <p>This is where I get confused\u2026 <a href=\"https://independent.co.uk\">https://independent.co.uk</a> only have an AMP site yet it\u2019s performance is awful from a user perspective - isn\u2019t AMP supposed to prevent this?</p>\n</blockquote>\n\n<p>See also: <a href=\"https://unlikekinds.com/article/google-amp-page-speed\">Google AMP lowered our page speed, and there\u2019s no choice but to use it</a>:</p>\n\n<blockquote>\n <p>According to Google\u2019s own Page Speed Insights audit (which Google recommends to check your performance), the AMP version of articles got an average performance score of 87. The non-AMP versions? 95.</p>\n</blockquote>\n\n<p>Publishers who already have fast web pages\u2014like The Guardian\u2014are still compelled to make AMP versions of their stories because of the search benefits reserved for AMP. As <a href=\"https://shkspr.mobi/blog/2019/05/a-report-from-the-amp-advisory-committee-meeting/\">Terence Eden reported from a meeting of the AMP advisory committee</a>:</p>\n\n<blockquote>\n <p>We heard, several times, that publishers don\u2019t like AMP. They feel forced to use it because otherwise they don\u2019t get into Google\u2019s news carousel \u2014 right at the top of the search results.</p>\n \n <p>Some people felt aggrieved that all the hard work they\u2019d done to speed up their sites was for nothing.</p>\n</blockquote>\n\n<p>The Google AMP team are at pains to point out that AMP is not a ranking factor in search. That\u2019s true. But it is unfairly privileged in other ways. Only AMP pages can appear in the Top Stories carousel \u2026which appears <em>above</em> any other search results. <a href=\"https://adactio.com/journal/13035\">As I\u2019ve said before</a>:</p>\n\n<blockquote>\n <p>Now, if you were to ask any right-thinking person whether they think having their page appear <em>right at the top</em> of a list of search results would be considered preferential treatment, I think they would say hell, yes! This is the only reason why The Guardian, for instance, even have AMP versions of their content\u2014it\u2019s not for the performance benefits (their non-AMP pages are faster); it\u2019s for that prime real estate in the carousel.</p>\n</blockquote>\n\n<p>From <a href=\"http://ampletter.org/\">A letter about Google AMP</a>:</p>\n\n<blockquote>\n <p>Content that \u201copts in\u201d to AMP and the associated hosting within Google\u2019s domain is granted preferential search promotion, including (for news articles) a position above all other results.</p>\n</blockquote>\n\n<p>That\u2019s not the only way that AMP pages get preferential treatment. It turns out that the secret to the speed of AMP pages isn\u2019t the web components. It\u2019s the prerendering.</p>\n\n<h3>The AMP cache</h3>\n\n<p>If you\u2019ve ever seen an AMP page in a list of search results, you\u2019ll have noticed the little lightning icon. If you\u2019ve ever tapped on that search result, you\u2019ll have noticed that the page loads blazingly fast!</p>\n\n<p>That\u2019s not down to AMP-the-format, alas. That\u2019s down to the fact that the page has been prerendered by Google before you even went to it. If <em>any</em> page were prerendered that way, it would load blazingly fast. But currently, this privilege is reserved for AMP pages only.</p>\n\n<p>If, after tapping through to that AMP page, you looked at the address bar of your browser, you might have noticed something odd. Even though you might have thought you were visiting The Washington Post, or The New York Times, the URL of the (blazingly fast) page you\u2019re looking at is still under Google\u2019s domain. That\u2019s because Google hosts any AMP pages that it prerenders.</p>\n\n<p>Google calls this \u201cthe AMP cache\u201d, but it would be better described as \u201cAMP hosting\u201d. The web page sent down the wire is hosted on Google\u2019s domain.</p>\n\n<p>Here\u2019s that <a href=\"http://ampletter.org/\">AMP letter</a> again:</p>\n\n<blockquote>\n <p>When a user navigates from Google to a piece of content Google has recommended, they are, unwittingly, remaining within Google\u2019s ecosystem.</p>\n</blockquote>\n\n<p>Through gritted teeth, I will refer to this as \u201cthe AMP cache\u201d, because that\u2019s what everyone else calls it. But make no mistake, Google is hosting\u2014not caching\u2014these pages.</p>\n\n<p>But <em>why</em> host the pages on a Google domain? Why not prerender the original URLs?</p>\n\n<h3>Prerendering and privacy</h3>\n\n<p><a href=\"https://twitter.com/scottjehl/status/1123995512867315712\">Scott summed up the situation with AMP nicely</a>:</p>\n\n<blockquote>\n <p>The pitch I think site owners are hearing is: let us host your pages on our domain and we\u2019ll promote them in search results AND preload them so they feel \u201cinstant.\u201d To opt-in, build pages using this component syntax.</p>\n</blockquote>\n\n<p>But perhaps we could de-couple the AMP format from the AMP cache. </p>\n\n<p>That\u2019s <a href=\"https://shkspr.mobi/blog/2019/05/a-report-from-the-amp-advisory-committee-meeting/\">what Terence suggests</a>:</p>\n\n<blockquote>\n <p>My recommendation is that Google stop <em>requiring</em> that organisations use Google\u2019s proprietary mark-up in order to benefit from Google\u2019s promotion.</p>\n</blockquote>\n\n<p><a href=\"http://ampletter.org/\">The AMP letter, too</a>:</p>\n\n<blockquote>\n <p>Instead of granting premium placement in search results only to AMP, provide the same perks to all pages that meet an objective, neutral performance criterion such as <a href=\"https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics/speed-index\">Speed Index</a>.</p>\n</blockquote>\n\n<p><a href=\"https://twitter.com/scottjehl/status/1123960726803091456\">Scott reiterates</a>:</p>\n\n<blockquote>\n <p>It\u2019s been said before but it would be so good for the web if pages with a Lighthouse score over say, 90 could get into that top search result area, even if they\u2019re not built using Google\u2019s AMP framework. Feels wrong to have to rebuild/reproduce an already-fast site just for SEO.</p>\n</blockquote>\n\n<p>This was also what I was calling for. But then <a href=\"https://twitter.com/cramforce\">Malte</a> pointed out something that stumped me. <a href=\"https://blog.amp.dev/2018/07/23/privacy-and-user-choice-in-amps-software-architecture/\">Privacy</a>.</p>\n\n<p>Here\u2019s the problem\u2026</p>\n\n<p>Let\u2019s say Google do indeed prerender already-fast pages when they\u2019re listed in search results. You, a search user, type something into Google. A list of results come back. Google begins pre-rendering some of them. But you don\u2019t end up clicking through to those pages. Nonetheless, the servers those pages are hosted on have received a GET request coming from a Google search. Those publishers now know that a particular (cookied?) user <em>could have</em> clicked through to their site. That\u2019s very different from knowing when someone has <em>actually</em> arrived at a particular site.</p>\n\n<p>And that\u2019s why Google host all the AMP pages that they prerender. Given the privacy implications of prerendering non-Google URLs, I must admit that I see their point.</p>\n\n<p>Still, it\u2019s a real shame to miss out on <a href=\"https://developers.googleblog.com/2019/08/the-speed-benefit-of-amp-prerendering.html\">the speed benefit of prerendering</a>:</p>\n\n<blockquote>\n <p>Prerendering AMP documents leads to substantial improvements in page load times. Page load time can be measured in different ways, but they consistently show that prerendering lets users see the content they want faster. For now, only AMP can provide the privacy preserving prerendering needed for this speed benefit.</p>\n</blockquote>\n\n<h3>A modest proposal</h3>\n\n<p>Why is Google\u2019s AMP cache just for AMP pages? (Y\u2019know, apart from the obvious answer that it\u2019s in the name.)</p>\n\n<p><strong>What if Google were allowed to host non-AMP pages?</strong> Google search could then prerender those pages just like it currently does for AMP pages. There would be no privacy leaks; everything would happen on the same domain\u2014google.com or ampproject.org or whatever\u2014just as currently happens with AMP pages.</p>\n\n<p>Don\u2019t get me wrong: I\u2019m not suggesting that Google should make a 1:1 model of the web just to prerender search results. I think that the implementation would need to have two important requirements:</p>\n\n<ol><li>Hosting needs to be opt-in.</li>\n<li>Only fast pages should be prerendered.</li>\n</ol><h4>Opting in</h4>\n\n<p>Currently, by publishing a page using the AMP format, publishers give <em>implicit</em> approval to Google to host that page on Google\u2019s servers <em>and</em> serve up this Google-hosted version from search results. This has always struck me as being legally iffy. I\u2019ve looked in <a href=\"https://amp.dev/documentation/\">the AMP documentation</a> to try to find any <em>explicit</em> granting of hosting permission (e.g. \u201cBy linking to this JavaScript file, you hereby give Google the right to serve up our copies of your content.\u201d), but no luck. So even with the current situation, I think a clear opt-in for hosting would be beneficial.</p>\n\n<p>This could be a <code>meta</code> element. Maybe something like:</p>\n\n<pre><code><meta name=\"caches-allowed\" content=\"google\">\n</code></pre>\n\n<p>This would have the nice benefit of allowing comma-separated values:</p>\n\n<pre><code><meta name=\"caches-allowed\" content=\"google, yandex\">\n</code></pre>\n\n<p>(The name is just a strawman, by the way\u2014I\u2019m not suggesting that this is what the final implementation would actually look like.)</p>\n\n<p>If not a <code>meta</code> element, then perhaps this could be part of <code>robots.txt</code>? Although my feeling is that this needs to happen on a document-by-document basis rather than site-wide.</p>\n\n<p>Many people will, <a href=\"https://www.robinrendle.com/notes/taking-shortcuts.html\">quite rightly</a>, <em>never</em> want Google\u2014or anyone else\u2014to host and serve up their content. That\u2019s why it\u2019s so important that this behaviour needs to be opt-in. It\u2019s kind of appalling that the current hosting of AMP pages is opt-in-by-proxy-sort-of.</p>\n\n<h4>Criteria for prerendering</h4>\n\n<p><a href=\"https://blog.amp.dev/2017/01/13/why-amp-caches-exist/\">Which pages should be blessed with hosting and prerendering?</a> The fast ones. That\u2019s sorta the whole point of AMP. But right now, there\u2019s a lot of resentment by people with already-fast websites who quite rightly feel they shouldn\u2019t have to use the AMP <em>format</em> to benefit from the AMP ecosystem.</p>\n\n<p><a href=\"https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html\">Page speed is already a ranking factor</a>. It doesn\u2019t seem like too much of a stretch to extend its benefits to hosting and prerendering. As mentioned above, there are already a few possible metrics to use:</p>\n\n<ul><li>Page Speed Index</li>\n<li>Lighthouse</li>\n<li>Web Page Test</li>\n</ul><p>Ah, but what if a page has good score when it\u2019s indexed, but then gets worse afterwards? Not a problem! The version of the page that\u2019s <em>measured</em> is the same version of the page that gets hosted and prerendered. Google can confidently say \u201cThis page is fast!\u201d After all, they\u2019re the ones serving up the page.</p>\n\n<p>That does raise the question of how often Google should check back with the original URL to see if it has changed/worsened/improved. The answer to that question is <a href=\"https://developers.google.com/amp/cache/overview\">however long it currently takes to check back in on AMP pages</a>:</p>\n\n<blockquote>\n <p>Each time a user accesses AMP content from the cache, the content is automatically updated, and the updated version is served to the next user once the content has been cached.</p>\n</blockquote>\n\n<h3>Issues</h3>\n\n<p>This proposal does <em>not</em> solve the problem with the address bar. You\u2019d still find yourself looking at a page from The Washington Post or The New York Times (or adactio.com) but seeing a completely different URL in your browser. That\u2019s not good, for all the reasons outlined in <a href=\"http://ampletter.org/\">the AMP letter</a>.</p>\n\n<p>In fact, this proposal could potentially make the situation <em>worse</em>. It would allow even more sites to be impersonated by Google\u2019s URLs. Where currently only AMP pages are bad actors in terms of URL confusion, opening up the AMP cache would allow equal opportunity URL confusion.</p>\n\n<p>What I\u2019m suggesting is definitely <em>not</em> a long-term solution. The long-term solutions currently being investigated are technically tricky and will take quite a while to come to fruition\u2014<a href=\"https://github.com/WICG/webpackage\">web packages</a> and <a href=\"https://developers.google.com/web/updates/2018/11/signed-exchanges\">signed exchanges</a>. In the meantime, what I\u2019m proposing is a stopgap solution that\u2019s technically a lot simpler. But it won\u2019t solve all the problems with AMP.</p>\n\n<p>This proposal solves <em>one</em> problem\u2014AMP pages being unfairly privileged in search results\u2014but does nothing to solve the other, perhaps more serious problem: the erosion of site identity.</p>\n\n<h4>Measuring</h4>\n\n<p>Currently, Google can assess whether a page should be hosted and prerendered by checking to see if it\u2019s a valid AMP page. That test would need to be widened to include a different measurement of performance, but those measurements already exist.</p>\n\n<p>I can see how this assessment might not be as quick as checking for AMP validity. That might affect whether non-AMP pages could be measured quickly enough to end up in the Top Stories carousel, which is, by its nature, time-sensitive. But search results are not necessarily as time-sensitive. Let\u2019s start there.</p>\n\n<h4>Assets</h4>\n\n<p>Currently, AMP pages can be prerendered without fetching anything other than the markup of the AMP page itself. All the CSS is inline. There are no initial requests for other kinds of content like images. That\u2019s because there are no <code>img</code> elements on the page: authors must use <code>amp-img</code> instead. The image itself isn\u2019t loaded until the user is on the page.</p>\n\n<p>If the AMP cache were to be opened up to non-AMP pages, then any content required for prerendering would also need to be hosted on that same domain. Otherwise, there\u2019s privacy leakage.</p>\n\n<p>This definitely introduces an extra level of complexity. Paths to assets within the markup might need to be re-written to point to the Google-hosted equivalents. There would almost certainly need to be a limit on the number of assets allowed. Though, for performance, that\u2019s no bad thing.</p>\n\n<p>Make no mistake, figuring out what to do about assets\u2014style sheets, scripts, and images\u2014is very challenging indeed. Luckily, there are very smart people on the Google AMP team. If that brainpower were to focus on this problem, I am confident they could solve it.</p>\n\n<h3>Summary</h3>\n\n<ol><li>Prerendering of non-Google URLs is problematic for privacy reasons, so Google needs to be able to host pages in order to prerender them.</li>\n<li>Currently, that\u2019s only done for pages using the AMP format.</li>\n<li>The AMP cache\u2014and with it, prerendering\u2014should be decoupled from the AMP format, and opened up to other fast web pages.</li>\n</ol><p>There will be technical challenges, but hopefully nothing insurmountable.</p>\n\n<p>I honestly can\u2019t see what Google have to lose here. If their goal is genuinely to reward fast pages, then opening up their AMP cache to fast non-AMP pages will actively encourage people to make fast web pages (without having to switch over to the AMP format).</p>\n\n<p>I\u2019ve deliberately kept the details vague\u2014what the opt-in should look like; what the speed measurement should be; how to handle assets\u2014I\u2019m sure smarter folks than me can figure that stuff out.</p>\n\n<p>I would really like to know what other people think about this proposal. Obviously, I\u2019d love to hear from members of the Google AMP team. But I\u2019d also love to hear from publishers. And I\u2019d very much like to know what people in the web performance community think about this. (Write a blog post and send me a webmention.)</p>\n\n<p>What am I missing here? What haven\u2019t I thought of? What are the potential pitfalls (and are they any worse than the current acrimonious situation with Google AMP)?</p>\n\n<p>I would really love it if <a href=\"https://twitter.com/rem/status/1164958772042895361\">someone with a fast website</a> were in a position to say, \u201cHey Google, I\u2019m giving you permission to host this page so that it can be prerendered.\u201d</p>\n\n<p>I would really love it if someone with a slow website could say, \u201cOh, shit! We\u2019d better make our <em>existing</em> website faster or Google won\u2019t host our pages for prerendering.\u201d</p>\n\n<p>And I would dearly love to finally be able to embrace AMP-the-format with a clear conscience. But as long as prerendering is joined at the hip to the AMP format, the injustice of the situation only harms the AMP project.</p>\n\n<p>Google, open up the AMP cache.</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://aperture-proxy.p3k.io/bbbacdf0a064621004f2ce9026a1202a5f3433e0/68747470733a2f2f6164616374696f2e636f6d2f696d616765732f70686f746f2d3135302e6a7067"
},
"post-type": "article",
"_id": "5025683",
"_source": "2",
"_is_read": true
}
Working on a little display that will sit in a picture frame and show my next upcoming flight!
Powered by a raspberry pi which parses the flights from the microformats on my website, and shows either the next upcoming trip, or if I'm currently away, shows the details of the flight home.
This e-paper display is really nice looking too!
{
"type": "entry",
"published": "2019-08-25T21:46:36-07:00",
"url": "https://aaronparecki.com/2019/08/25/14/travel",
"category": [
"homeautomation",
"microformats",
"epaper",
"rpi",
"raspberrypi",
"travel"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/5a54a45d15dc1b7f898745ecd3748ad1150ae57e02555c68cae57304baefac5c.jpg"
],
"content": {
"text": "Working on a little display that will sit in a picture frame and show my next upcoming flight! \n\nPowered by a raspberry pi which parses the flights from the microformats on my website, and shows either the next upcoming trip, or if I'm currently away, shows the details of the flight home. \n\nThis e-paper display is really nice looking too!",
"html": "Working on a little display that will sit in a picture frame and show my next upcoming flight! <br /><br />Powered by a raspberry pi which parses the flights from the microformats on my website, and shows either the next upcoming trip, or if I'm currently away, shows the details of the flight home. <br /><br />This e-paper display is really nice looking too!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "5019722",
"_source": "16",
"_is_read": true
}
🎉 @dietrich!
https://indieweb.org/events :)
Off-cycle Homebrew Website Club SF this week: https://indieweb.org/events/2019-08-28-homebrew-website-club
Week after I’m hosting a pop-up HWC @MozPDX during @XOXO conf week!
Still coding, will follow-up when iCal/gCal links work!
First, another run
{
"type": "entry",
"published": "2019-08-25 10:29-0700",
"url": "http://tantek.com/2019/237/t2/",
"in-reply-to": [
"https://twitter.com/dietrich/status/1165681487494008832"
],
"content": {
"text": "\ud83c\udf89 @dietrich!\n\nhttps://indieweb.org/events :)\n\nOff-cycle Homebrew Website Club SF this week: https://indieweb.org/events/2019-08-28-homebrew-website-club\nWeek after I\u2019m hosting a pop-up HWC @MozPDX during @XOXO conf week!\n\nStill coding, will follow-up when iCal/gCal links work!\n\nFirst, another run",
"html": "\ud83c\udf89 <a class=\"h-cassis-username\" href=\"https://twitter.com/dietrich\">@dietrich</a>!<br /><br /><a href=\"https://indieweb.org/events\">https://indieweb.org/events</a> :)<br /><br />Off-cycle Homebrew Website Club SF this week: <a href=\"https://indieweb.org/events/2019-08-28-homebrew-website-club\">https://indieweb.org/events/2019-08-28-homebrew-website-club</a><br />Week after I\u2019m hosting a pop-up HWC <a class=\"h-cassis-username\" href=\"https://twitter.com/MozPDX\">@MozPDX</a> during <a class=\"h-cassis-username\" href=\"https://twitter.com/XOXO\">@XOXO</a> conf week!<br /><br />Still coding, will follow-up when iCal/gCal links work!<br /><br />First, another run"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"https://twitter.com/dietrich/status/1165681487494008832": {
"type": "entry",
"url": "https://twitter.com/dietrich/status/1165681487494008832",
"name": "@dietrich\u2019s tweet",
"post-type": "article"
}
},
"_id": "5016165",
"_source": "1",
"_is_read": true
}