Skip to content

Instantly share code, notes, and snippets.

@grantcodes
Created March 18, 2020 11:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grantcodes/41d6093e36a4fa9adc4a4a9d46184983 to your computer and use it in GitHub Desktop.
Save grantcodes/41d6093e36a4fa9adc4a4a9d46184983 to your computer and use it in GitHub Desktop.
HAR file of some test micropub requests
{
"log": {
"version": "1.2",
"creator": {
"name": "Insomnia REST Client",
"version": "insomnia.desktop.app:v7.1.1"
},
"entries": [
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 2422,
"request": {
"method": "GET",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [],
"queryString": [
{
"name": "q",
"value": "post-types"
}
],
"postData": {
"mimeType": "",
"text": "",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "658"
},
{
"name": "ETag",
"value": "W/\"292-9wqK85rIUmz/oPMejEewidwBsCQ\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 16:46:12 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 658,
"mimeType": "application/json; charset=utf-8",
"text": "{\"post-types\":[{\"type\":\"note\",\"name\":\"Note\"},{\"type\":\"article\",\"name\":\"Article\"},{\"type\":\"photo\",\"name\":\"Photo\"},{\"type\":\"video\",\"name\":\"Video\"},{\"type\":\"audio\",\"name\":\"Audio\"},{\"type\":\"reply\",\"name\":\"Reply\"},{\"type\":\"like\",\"name\":\"Like\"},{\"type\":\"repost\",\"name\":\"Repost\"},{\"type\":\"rsvp\",\"name\":\"RSVP\"},{\"type\":\"bookmark\",\"name\":\"Bookmark\"},{\"type\":\"reacji\",\"name\":\"Reacji\"},{\"type\":\"listen\",\"name\":\"Listen\"},{\"type\":\"read\",\"name\":\"Read\"},{\"type\":\"watch\",\"name\":\"watch\"},{\"type\":\"event\",\"name\":\"event\"},{\"type\":\"checkin\",\"name\":\"Checkin\"},{\"type\":\"quotation\",\"name\":\"Quotation\"},{\"type\":\"collection\",\"name\":\"Collection\"},{\"type\":\"journal\",\"name\":\"Journal\"}]}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 2422,
"receive": 0,
"ssl": -1
},
"comment": "Post Types"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 78,
"request": {
"method": "GET",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [],
"queryString": [
{
"name": "q",
"value": "category"
}
],
"postData": {
"mimeType": "",
"text": "",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "1585"
},
{
"name": "ETag",
"value": "W/\"631-hGsuyqvIm3ACUBVn+GAql/33vXM\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 16:48:03 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 1585,
"mimeType": "application/json; charset=utf-8",
"text": "{\"categories\":[\"100DaysOfCode\",\"Apartment Searching\",\"Apartment Searching/CDMX\",\"CDMX\",\"CMSs\",\"Design\",\"Free SEO Stuff\",\"Freebies\",\"Freebies/Stock Photos\",\"Games\",\"Languages\",\"Money\",\"News\",\"PKN\",\"Shopping\",\"Stock Photos\",\"Stuff\",\"Travel\",\"Web Examples\",\"Web Guides\",\"Website\",\"Website/CMSs\",\"Website/Free SEO Stuff\",\"Work\",\"Work/mivintagelabel.com\",\"Work/mobbed.io\",\"Work/todomap.xyz\",\"[\\\"100DaysOfCode\\\"]\",\"brand\",\"branding\",\"deleted\",\"gallery\",\"gallery--2016-barcelona\",\"gallery--2016-las-palmas\",\"gallery--2017-roadtrip-oregon\",\"gallery--2017-roadtrip-washington\",\"gallery--bratislava\",\"gallery--brno-2016\",\"gallery--budapest-2016\",\"gallery--dresden-2016\",\"gallery--dundee-2017\",\"gallery--graz-2016\",\"gallery--liverpool-2016\",\"gallery--skiing-2017\",\"gallery--sumo-and-sayuri\",\"gallery--theflyingscotsvan\",\"gallery--vienna-2016\",\"gallery--vienna-2016-appartment\",\"gallery-photo\",\"gallery-photo--2016-barcelona\",\"gallery-photo--2016-las-palmas\",\"gallery-photo--2017-al-and-rachel-wedding\",\"gallery-photo--2017-roadtrip-oregon\",\"gallery-photo--2017-roadtrip-washington\",\"gallery-photo--bratislava\",\"gallery-photo--brno-2016\",\"gallery-photo--budapest-2016\",\"gallery-photo--dresden-2016\",\"gallery-photo--dundee-2017\",\"gallery-photo--graz-2016\",\"gallery-photo--liverpool-2016\",\"gallery-photo--skiing-2017\",\"gallery-photo--sumo-and-sayuri\",\"gallery-photo--theflyingscotsvan\",\"gallery-photo--vienna-2016\",\"gallery-photo--vienna-2016-appartment\",\"gsjam\",\"gsjdundee\",\"journal\",\"mivintagelabel.com\",\"mobbed.io\",\"note\",\"private\",\"test\",\"todomap.xyz\",\"watch\",\"watch--movie\",\"watch--tv\",\"wceu\"]}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 78,
"receive": 0,
"ssl": -1
},
"comment": "Categories"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 79,
"request": {
"method": "GET",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [],
"queryString": [
{
"name": "q",
"value": "category"
},
{
"name": "search",
"value": "gallery"
},
{
"name": "",
"value": ""
}
],
"postData": {
"mimeType": "",
"text": "",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "1020"
},
{
"name": "ETag",
"value": "W/\"3fc-WBjzKh/l3xAOPNqOp93VgYQ2KS4\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 16:49:30 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 1020,
"mimeType": "application/json; charset=utf-8",
"text": "{\"categories\":[\"gallery\",\"gallery--2016-barcelona\",\"gallery--2016-las-palmas\",\"gallery--2017-roadtrip-oregon\",\"gallery--2017-roadtrip-washington\",\"gallery--bratislava\",\"gallery--brno-2016\",\"gallery--budapest-2016\",\"gallery--dresden-2016\",\"gallery--dundee-2017\",\"gallery--graz-2016\",\"gallery--liverpool-2016\",\"gallery--skiing-2017\",\"gallery--sumo-and-sayuri\",\"gallery--theflyingscotsvan\",\"gallery--vienna-2016\",\"gallery--vienna-2016-appartment\",\"gallery-photo\",\"gallery-photo--2016-barcelona\",\"gallery-photo--2016-las-palmas\",\"gallery-photo--2017-al-and-rachel-wedding\",\"gallery-photo--2017-roadtrip-oregon\",\"gallery-photo--2017-roadtrip-washington\",\"gallery-photo--bratislava\",\"gallery-photo--brno-2016\",\"gallery-photo--budapest-2016\",\"gallery-photo--dresden-2016\",\"gallery-photo--dundee-2017\",\"gallery-photo--graz-2016\",\"gallery-photo--liverpool-2016\",\"gallery-photo--skiing-2017\",\"gallery-photo--sumo-and-sayuri\",\"gallery-photo--theflyingscotsvan\",\"gallery-photo--vienna-2016\",\"gallery-photo--vienna-2016-appartment\"]}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 79,
"receive": 0,
"ssl": -1
},
"comment": "Category Search"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 3297,
"request": {
"method": "GET",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [],
"queryString": [
{
"name": "q",
"value": "source"
}
],
"postData": {
"mimeType": "",
"text": "",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "50920"
},
{
"name": "ETag",
"value": "W/\"c6e8-IVFYV1qNOE+ZgDUWCbnJN6Pj74Y\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 16:50:33 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 50920,
"mimeType": "application/json; charset=utf-8",
"text": "{\"items\":[{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"published\":[\"2019-07-17T13:12:02.905Z\"],\"mp-slug\":[\"03-12-02\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/17/03-12-02\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"name\":[\"This absolute unit of a cat poster we bought at a thrift store for $10\"],\"summary\":[\"32,229 votes and 309 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/?ref_source=embed&amp;ref=share\\\">This absolute unit of a cat poster we bought at a thrift store for $10</a> from\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/\\\">AbsoluteUnits</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\",\"name\":[\"RylanTheWalrus\"]}}],\"published\":[\"2019-07-16T20:12:09.943Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"published\":[\"2019-07-17T13:08:00.867Z\"],\"mp-slug\":[\"03-08-00\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/17/03-08-00\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"name\":[\"This absolute unit of a cat poster we bought at a thrift store for $10\"],\"summary\":[\"32,202 votes and 309 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/?ref_source=embed&amp;ref=share\\\">This absolute unit of a cat poster we bought at a thrift store for $10</a> from\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/\\\">AbsoluteUnits</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\",\"name\":[\"RylanTheWalrus\"]}}],\"published\":[\"2019-07-16T20:08:08.372Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"published\":[\"2019-07-17T13:02:29.549Z\"],\"mp-slug\":[\"03-02-29\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/17/03-02-29\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"name\":[\"This absolute unit of a cat poster we bought at a thrift store for $10\"],\"summary\":[\"32,150 votes and 308 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/?ref_source=embed&amp;ref=share\\\">This absolute unit of a cat poster we bought at a thrift store for $10</a> from\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/\\\">AbsoluteUnits</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\",\"name\":[\"RylanTheWalrus\"]}}],\"published\":[\"2019-07-16T20:02:37.025Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"],\"published\":[\"2019-07-17T12:58:22.044Z\"],\"mp-slug\":[\"02-58-22\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/17/02-58-22\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/MadeMeSmile/comments/cdvnr7/training_sessions/?utm_source=ifttt\"],\"published\":[\"2019-07-16T18:04:19.264Z\"],\"mp-slug\":[\"06-04-19\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/16/06-04-19\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/MadeMeSmile/comments/cdvnr7/training_sessions/?utm_source=ifttt\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/MadeMeSmile/comments/cdvnr7/training_sessions/?utm_source=ifttt\"],\"name\":[\"Training sessions\"],\"summary\":[\"30,290 votes and 131 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/MadeMeSmile/comments/cdvnr7/training_sessions/?ref_source=embed&amp;ref=share\\\">Training sessions</a> from\\n <a href=\\\"https://www.reddit.com/r/MadeMeSmile/\\\">MadeMeSmile</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/MadeMeSmile/comments/cdvnr7/training_sessions/?utm_source=ifttt\",\"name\":[\"Nopecowss\"]}}],\"published\":[\"2019-07-16T11:55:46.022Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.knutmelvaer.no/blog/2019/06/getting-started-with-webmentions-in-gatsby/\"],\"published\":[\"2019-07-16T13:32:58.300Z\"],\"mp-slug\":[\"01-32-58\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/16/01-32-58\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.knutmelvaer.no/blog/2019/06/getting-started-with-webmentions-in-gatsby/\":{\"type\":[\"h-entry\"],\"properties\":{\"photo\":[\"\"],\"name\":[\"Getting started with Webmentions in Gatsby\"],\"url\":[\"https://www.knutmelvaer.no/blog/2019/06/getting-started-with-webmentions-in-gatsby/\"],\"published\":[\"2019-06-24T10:00:00.000Z\"],\"summary\":[\"Let's learn how to implement Webmentions friendly markup, and get them onto your website made with Gatsby. Bonus: You'll also learn how to trigger new builds on Netlify whenever a mentoin happens.\"],\"content\":[{\"value\":\"Let's learn how to implement Webmentions friendly markup, and get them onto your website made with Gatsby. Bonus: You'll also learn how to trigger new builds on Netlify whenever a mentoin happens.\",\"html\":\"Let&#x27;s learn how to implement Webmentions friendly markup, and get them onto your website made with Gatsby. Bonus: You&#x27;ll also learn how to trigger new builds on Netlify whenever a mentoin happens. \"}],\"category\":[\"Blogging\",\"Tutorial\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://sebastiandedeyne.com/adding-webmentions-to-my-blog/\"],\"published\":[\"2019-07-15T08:35:49.557Z\"],\"mp-slug\":[\"08-35-49\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/15/08-35-49\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://sebastiandedeyne.com/adding-webmentions-to-my-blog/\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://sebastiandedeyne.com/adding-webmentions-to-my-blog/\"],\"name\":[\"Adding webmentions to my blog\"],\"summary\":[\"I first noticed webmentions in the wild on Hidde de Vries’ blog about two years ago. Last week it finally happened, I added webmention support to my blog too! Well, partial support at least. I’m now&hellip;\"],\"content\":[{\"html\":\"<section class=\\\"markup\\\"><p>I first noticed webmentions in the wild on <a href=\\\"https://hiddedevries.nl/en/blog/\\\">Hidde de Vries&#x2019; blog</a> about two years ago. Last week it finally happened, I added webmention support to my blog too! Well, partial support at least. I&#x2019;m now receiving and displaying webmentions. Sending them out is a project for another day.</p><h2 id=\\\"whatmentions\\\">Whatmentions?</h2><p>Webmentions.</p><blockquote><p>Webmention is a web standard for mentions and conversations across the web, a powerful building block that is used for a growing federated network of comments, likes, reposts, and other rich interactions across the decentralized social web.</p><p><cite><a href=\\\"https://indieweb.org/Webmention\\\">indieweb.org</a></cite></p></blockquote><p>Webmentions are a protocol for websites to communicate across each other. What makes the webmention standard interesting is that it&#x2019;s not tied to a single service \\u0014 it&#x2019;s a protocol. Webmentions can be aggregated from a range of different services from Twitter, to other blogs or even direct comments.</p><p>I highly recommend <a href=\\\"https://alistapart.com/article/webmentions-enabling-better-communication-on-the-internet/\\\">Chris Aldrich&#x2019;s article</a> on A List Apart if you want to dive deeper in the theory about the standards recommendation.</p><h2 id=\\\"receiving-webmentions\\\">Receiving webmentions</h2><p>I&#x2019;m mostly interested in receiving webmentions from Twitter since that&#x2019;s my main source of traffic.</p><p>Twitter doesn&#x2019;t send any webmentions themselves. Fortunately there&#x2019;s a service that solves this problem: <a href=\\\"https://brid.gy/\\\">Bridgy</a>. Whenever a link to my blog is posted on Twitter, Bridgy polls for replies, retweets, and likes to send them as webmentions.</p><p>That&#x2019;s just half of the story: the mentions need to be received too. When a webmention is sent, the sender will scan for a specific <code>link</code> tag on the mentioned page.</p><div class=\\\"highlight\\\"><pre class=\\\"chroma\\\"><code class=\\\"language-html\\\"><span class=\\\"p\\\">&lt;</span><span class=\\\"nt\\\">link</span> <span class=\\\"na\\\">rel</span><span class=\\\"o\\\">=</span><span class=\\\"s\\\">&quot;webmention&quot;</span> <span class=\\\"na\\\">href</span><span class=\\\"o\\\">=</span><span class=\\\"s\\\">&quot;...&quot;</span><span class=\\\"p\\\">&gt;</span></code></pre></div><p>If it finds one, it will post the mention to the configured URL.</p><p>I set up my to receive webmentions on another third party service: <a href=\\\"https://webmention.io\\\">Webmention.io</a>.</p><div class=\\\"highlight\\\"><pre class=\\\"chroma\\\"><code class=\\\"language-html\\\"><span class=\\\"p\\\">&lt;</span><span class=\\\"nt\\\">link</span> <span class=\\\"na\\\">rel</span><span class=\\\"o\\\">=</span><span class=\\\"s\\\">&quot;webmention&quot;</span> <span class=\\\"na\\\">href</span><span class=\\\"o\\\">=</span><span class=\\\"s\\\">&quot;https://webmention.io/sebastiandedeyne.com/webmention&quot;</span> <span class=\\\"p\\\">/&gt;</span></code></pre></div><p>Webmention.io stores webmentions on their servers, so I can retrieve them to display on my blog. It also acts as a spam filter. Fake mentions from bots will be filtered out so they won&#x2019;t appear under my posts.</p><p>To summarize the flow:</p><ul><li>Someone tweets a link to one of my posts, or interacts with a tweet that contains a links to one of my posts</li><li>Bridgy polls Twitter, and discovers the interaction</li><li>Bridgy posts a webmention to my website</li><li>The webmention is routed to Webmention.io and stored</li></ul><h2 id=\\\"displaying-webmentions-on-post-pages\\\">Displaying webmentions on post pages</h2><p>Webmentions stored on Webmention.io can be retrieved with a simple API call. For example, to receive mentions for this post:</p><div class=\\\"highlight\\\"><pre class=\\\"chroma\\\"><code class=\\\"language-txt\\\">https://webmention.io/api/mentions.jf2?target=https://sebastiandedeyne.com/adding-webmentions-to-my-blog</code></pre></div><p>I&#x2019;m using the <a href=\\\"https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\\\"><code>fetch</code> API</a> to grab the webmentions JSON, have a <a href=\\\"https://github.com/sebastiandedeyne/sebastiandedeyne.com/blob/f9c19f78e7a7b57562059a62154f0c9d9641267b/assets/js/webmentions.js\\\">rudimentary script</a> to render them beneath every post.</p><p>That&#x2019;s all there is to it! Most of the mentions I&#x2019;m receiving are from Twitter, but anyone can add comments with a service like <a href=\\\"https://commentpara.de/\\\">comment parade</a> too. Try it out by mentioning this post!</p></section>\"}]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/Eyebleach/comments/cd8jkh/soft_pets_for_this_weird_dog/?utm_source=ifttt\"],\"published\":[\"2019-07-15T08:18:12.102Z\"],\"mp-slug\":[\"08-18-12\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/15/08-18-12\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/Eyebleach/comments/cd8jkh/soft_pets_for_this_weird_dog/?utm_source=ifttt\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/Eyebleach/comments/cd8jkh/soft_pets_for_this_weird_dog/?utm_source=ifttt\"],\"name\":[\"Soft pets for this weird dog\"],\"summary\":[\"11,093 votes and 118 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/Eyebleach/comments/cd8jkh/soft_pets_for_this_weird_dog/?ref_source=embed&amp;ref=share\\\">Soft pets for this weird dog</a> from\\n <a href=\\\"https://www.reddit.com/r/Eyebleach/\\\">Eyebleach</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/Eyebleach/comments/cd8jkh/soft_pets_for_this_weird_dog/?utm_source=ifttt\",\"name\":[\"mayaxs\"]}}],\"published\":[\"2019-07-15T11:57:02.378Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/Eyebleach/comments/ccqyip/corgi_pupper_discovers_the_magic_of_door_stoppers/?utm_source=ifttt\"],\"published\":[\"2019-07-14T00:58:41.192Z\"],\"mp-slug\":[\"12-58-41\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/14/12-58-41\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/Eyebleach/comments/ccqyip/corgi_pupper_discovers_the_magic_of_door_stoppers/?utm_source=ifttt\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/Eyebleach/comments/ccqyip/corgi_pupper_discovers_the_magic_of_door_stoppers/?utm_source=ifttt\"],\"name\":[\"Corgi pupper discovers the magic of door stoppers\"],\"summary\":[\"28,736 votes and 191 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/Eyebleach/comments/ccqyip/corgi_pupper_discovers_the_magic_of_door_stoppers/?ref_source=embed&amp;ref=share\\\">Corgi pupper discovers the magic of door stoppers</a> from\\n <a href=\\\"https://www.reddit.com/r/Eyebleach/\\\">Eyebleach</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/Eyebleach/comments/ccqyip/corgi_pupper_discovers_the_magic_of_door_stoppers/?utm_source=ifttt\",\"name\":[\"to_the_tenth_power\"]}}],\"published\":[\"2019-07-14T11:57:15.269Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/PeopleFuckingDying/comments/cc9p6h/hero_boy_saves_kitty_from_certain_death/?utm_source=ifttt\"],\"published\":[\"2019-07-12T18:39:37.560Z\"],\"mp-slug\":[\"06-39-37\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/12/06-39-37\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/PeopleFuckingDying/comments/cc9p6h/hero_boy_saves_kitty_from_certain_death/?utm_source=ifttt\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/PeopleFuckingDying/comments/cc9p6h/hero_boy_saves_kitty_from_certain_death/?utm_source=ifttt\"],\"name\":[\"HErO bOy sAvEs kItty frOm cErtAIn dEAth!\"],\"summary\":[\"47,365 votes and 354 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/PeopleFuckingDying/comments/cc9p6h/hero_boy_saves_kitty_from_certain_death/?ref_source=embed&amp;ref=share\\\">HErO bOy sAvEs kItty frOm cErtAIn dEAth!</a> from\\n <a href=\\\"https://www.reddit.com/r/PeopleFuckingDying/\\\">PeopleFuckingDying</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/PeopleFuckingDying/comments/cc9p6h/hero_boy_saves_kitty_from_certain_death/?utm_source=ifttt\",\"name\":[\"varungupta3009\"]}}],\"published\":[\"2019-07-12T11:57:22.092Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://usefulinterweb.com/post/186213206819\"],\"published\":[\"2019-07-11T21:35:32.701Z\"],\"mp-slug\":[\"09-35-32\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/11/09-35-32\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://usefulinterweb.com/post/186213206819\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://usefulinterweb.com/post/186213206819\"],\"name\":[\"Useful Interweb\"],\"summary\":[\"Discover World Classified UNESCO Sites\"],\"featured\":[\"https://66.media.tumblr.com/avatar_81331a1d03ae_512.pnj\"],\"content\":[{\"html\":\"<div id=\\\"main\\\"> <div class=\\\"post link\\\"> <span class=\\\"permalink\\\"> <a href=\\\"https://usefulinterweb.com/post/186213206819/discover-world-classified-unesco-sites\\\">Jul 11, 2019</a><br> </span> </div> </div>\"}]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/cbig8n/absoloute_unit_has_too_many_snags/?utm_source=ifttt\"],\"published\":[\"2019-07-11T09:24:11.239Z\"],\"mp-slug\":[\"09-24-11\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/11/09-24-11\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.reddit.com/r/AbsoluteUnits/comments/cbig8n/absoloute_unit_has_too_many_snags/?utm_source=ifttt\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/cbig8n/absoloute_unit_has_too_many_snags/?utm_source=ifttt\"],\"name\":[\"Absoloute Unit has too many snags.\"],\"summary\":[\"22,959 votes and 222 comments so far on Reddit\"],\"content\":[{\"html\":\"\\n <blockquote class=\\\"reddit-card\\\" >\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/comments/cbig8n/absoloute_unit_has_too_many_snags/?ref_source=embed&amp;ref=share\\\">Absoloute Unit has too many snags.</a> from\\n <a href=\\\"https://www.reddit.com/r/AbsoluteUnits/\\\">AbsoluteUnits</a>\\n </blockquote>\\n <script async src=\\\"https://embed.redditmedia.com/widgets/platform.js\\\" charset=\\\"UTF-8\\\"></script>\\n\"}],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"url\":\"https://www.reddit.com/r/AbsoluteUnits/comments/cbig8n/absoloute_unit_has_too_many_snags/?utm_source=ifttt\",\"name\":[\"Dirt1488\"]}}],\"published\":[\"2019-07-11T11:57:19.195Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://twitter.com/MatthewRayfield/status/1148936557774217216\"],\"published\":[\"2019-07-10T21:40:01.211Z\"],\"mp-slug\":[\"09-40-01\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/10/09-40-01\"],\"syndication\":[\"https://twitter.com/MatthewRayfield/status/1148936557774217216\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://twitter.com/MatthewRayfield/status/1148936557774217216\":{\"type\":[\"h-entry\"],\"properties\":{\"url\":[\"https://twitter.com/MatthewRayfield/status/1148936557774217216\"],\"name\":[\"Matthew Rayfield on Twitter\"],\"summary\":[\"\\u001ci made a new WEB TOY thing !\"],\"content\":[{\"html\":\"<blockquote class=\\\"twitter-tweet\\\"><p lang=\\\"en\\\" dir=\\\"ltr\\\">i made a new WEB TOY thing !<br><br>🎺 POPUP TROMBONE 🎺<br><br>it&#39;s a trombone you play by resizing a POPUP window<br>(but it doesn&#39;t really sound like a trombone, sorry)<br><br>🎺 play it here: <a href=\\\"https://t.co/7DxY0AGdnA\\\">https://t.co/7DxY0AGdnA</a> 🎺<br><br>( and unmute to hear my BEAUTIFUL rendition of &quot;mary had a little lamb&quot; ) 👍 <a href=\\\"https://t.co/u10G2J7G7J\\\">pic.twitter.com/u10G2J7G7J</a></p>&mdash; Matthew Rayfield (@MatthewRayfield) <a href=\\\"https://twitter.com/MatthewRayfield/status/1148936557774217216?ref_src=twsrc%5Etfw\\\">July 10, 2019</a></blockquote>\\n<script async src=\\\"https://platform.twitter.com/widgets.js\\\" charset=\\\"utf-8\\\"></script>\\n\"}],\"published\":[\"2019-07-10T12:46:36.000Z\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"in-reply-to\":[\"https://andy-bell.design/wrote/adding-webmentions-to-my-personal-site/\"],\"content\":[{\"value\":\"Great post!\\n\\nWebmentions are indeed not super straightforward to implement if you are building them yourself, but the same could be said about any comment system.\\n\\nThe difference is a lot of CMSs and tools have already abstracted the complexity of comments but not so much with webmentions. But I am sure that will change with increased adoption.\",\"html\":\"<p>Great post!</p>\\n<p>Webmentions are indeed not super straightforward to implement if you are building them yourself, but the same could be said about any comment system.</p>\\n<p>The difference is a lot of CMSs and tools have already abstracted the complexity of comments but not so much with webmentions. But I am sure that will change with increased adoption.</p>\\n\"}],\"category\":[\"\"],\"mp-slug\":[\"great-post-webmentions-are-indeed-not\"],\"published\":[\"2019-07-10T14:18:52.496Z\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/10/great-post-webmentions-are-indeed-not\"]},\"cms\":{\"postType\":\"reply\",\"imageSizes\":{}},\"references\":{}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.jvt.me/posts/2019/07/09/post-visualisation/\"],\"published\":[\"2019-07-10T09:27:52.033Z\"],\"mp-slug\":[\"09-27-52\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/10/09-27-52\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{\"https://www.jvt.me/posts/2019/07/09/post-visualisation/\":{\"type\":[\"h-entry\"],\"properties\":{\"name\":[\"Visualising My Posting Habits\"],\"content\":[{\"value\":\"For a while now I've been looking at getting some insight into how often I post content to this site for two reasons - purely for interest, and to watch how it changes over time.With this post, you can now go over to /post-frequency/ to see the latest graphical breakdown of my posting content - I'd recommend it to know what's actually being talked about!To generate these charts, I've created a Hugo template that generates a set of counts for each of the content types that I regularly publish (i.e. ignoring static content like events or talks), which is then rendered by Chart.JS as a line chart.Some interesting pieces of data I've gleaned from the stats as they currently sit:I post more content either early evening or just before bedI seemingly post a lot on the 7th of the month, but not much on the 8th, 21st or 27thThursdays and Sundays are my most popular daysMarch is my most productive month of content - most likely because I usually take a week's holiday over my birthday, so I end up writing a lot while I'm offI'm looking forward to keep an eye on the way that my content publishing changes over time, i.e. with the use of Micropub for posting from anywhere.\",\"html\":\"<p>For a while now I've been looking at getting some insight into how often I post content to this site for two reasons - purely for interest, and to watch how it changes over time.</p><p>With this post, you can now go over to <a href=\\\"/post-frequency/\\\">/post-frequency/</a> to see the latest graphical breakdown of my posting content - I'd recommend it to know what's actually being talked about!</p><p>To generate these charts, I've created a Hugo template that generates a set of counts for each of the content types that I regularly publish (i.e. ignoring static content like events or talks), which is then rendered by <a href=\\\"https://www.chartjs.org/\\\">Chart.JS</a> as a line chart.</p><p>Some interesting pieces of data I've gleaned from the stats as they currently sit:</p><ul><li>I post more content either early evening or just before bed</li><li>I seemingly post a lot on the 7th of the month, but not much on the 8th, 21st or 27th</li><li>Thursdays and Sundays are my most popular days</li><li>March is my most productive month of content - most likely because I usually take a week's holiday over my birthday, so I end up writing a lot while I'm off</li></ul><p>I'm looking forward to keep an eye on the way that my content publishing changes over time, i.e. with the use of <a href=\\\"https://indieweb.org/micropub\\\">Micropub</a> for posting from anywhere.</p>\"}],\"url\":[\"https://www.jvt.me/posts/2019/07/09/post-visualisation/\"],\"summary\":[\"Adding the capability to my site to enable visualisation of how often I post content.\"],\"uid\":[\"https://www.jvt.me/posts/2019/07/09/post-visualisation/\"],\"featured\":[\"https://www.jvt.me/img/profile.png\"],\"author\":[{\"value\":\"Jamie Tanna\",\"type\":[\"h-card\"],\"properties\":{\"photo\":[\"https://www.jvt.me/img/profile.png\"],\"name\":[\"Jamie Tanna\"],\"url\":[\"https://www.jvt.me\"]}}],\"published\":[\"2019-07-09T22:44:33+0100\"],\"updated\":[\"2019-07-09T22:44:37+0100\"],\"category\":[\"www.jvt.me\"],\"syndication\":[\"https://news.indieweb.org/en\",\"https://indieweb.xyz/en/indieweb\"]}}}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/youtubehaiku/comments/cagv2n/haiku_insanely_close_call_with_a_wild_shrek/?utm_source=ifttt\"],\"published\":[\"2019-07-10T00:14:27.196Z\"],\"mp-slug\":[\"12-14-27\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/10/12-14-27\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://css-tricks.com/indieweb-and-webmentions/\"],\"published\":[\"2019-07-09T21:43:41.791Z\"],\"mp-slug\":[\"09-43-41\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/09/09-43-41\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{}},{\"type\":[\"h-entry\"],\"properties\":{\"mp-slug\":[\"together\"],\"summary\":[\"An update on what is new in Together\"],\"name\":[\"Together v3\"],\"content\":[{\"value\":\"Over the last few months I have been completely rebuilding my social reader Together https://alltogethernow.io. So I felt I should write a post about it to highlight what's changed and show off what Together has to offer.\\n\\nFirst off just a little info on the idea of a social reader https://indieweb.org/reader: A social reader is an application that can be used to read and interact with content from all around the web, not just one walled garden.\\n\\nIn the world of the #indieweb https://indieweb.org that means following other websites and owning all your own content on your own website.\\n\\nFEATURES\\nLAYOUTS\\nThe content you follow from around the web comes in all different forms, it doesn't make sense to force a photo into the same layout as long form blog post.\\n\\nTo help with this Together supports a number of views:\\n\\nTIMELINE VIEW\\n[https://grant.codes/media/2019/07/08/timeline.jpg]The timeline view is similar to what you might find in twitter or facebook.\\n\\nEach post has it's own card in a scrolling list of cards. Great for shorter format and mixed content.\\n\\nCLASSIC VIEW\\n[https://grant.codes/media/2019/07/08/classic.jpg]Inspired by classic RSS readers such as Google Reader (r.i.p.). The classic view uses a 2 column layout with small post previews on the left and you can click into a single post to view it on the right.\\n\\nThis view works well for longer form articles or news updates.\\n\\nGALLERY VIEW\\n[https://grant.codes/media/2019/07/08/gallery.jpg]The gallery view shows a grid of photos and videos from your feeds.\\n\\nYou can click into an individual photo or view to view it full screen and swipe through them.\\n\\nI use this view to follow my instagram feed and the micro.blog photo feed https://micro.blog/discover/photos.\\n\\nMAP VIEW\\nA more niche view is the map view that shows where the most recent posts in a channel come from.\\n\\nThis can be used to have a nice view where your friends have checked in recently.\\n\\nPREVIEWS\\n[https://grant.codes/media/2019/07/08/preview.jpg]Something I worked on quite a bit for this release was the feed following and preview UI.\\n\\nThe preview and search is now contained in one unified box, it's now much easier to see exactly what you searched for and what feed you are previewing.\\n\\nINLINE ACTIONS\\nInline actions are not new in this version of Together, but have seen an update. The actions let you reply, like or repost to your website via micropub https://indieweb.org/micropub, perform admin actions (like blocking and muting sources) and viewing or loading the original content.\\n\\nNew in v3 is the consistent option to attempt to reload the content again from the source. This is useful for (annoying) feeds that only provide a short preview of a posts content.\\n\\nAnother new feature in v3 are the improved notifications. When you post a reply or like, notifications now have buttons to view your created post or immediately delete it if your micropub endpoint supports deletes https://www.w3.org/TR/micropub/#delete.\\n\\n[https://grant.codes/media/2019/07/08/notification.jpg]SETTINGS MANAGEMENT\\n[https://grant.codes/media/2019/07/08/following.jpg]Channel settings have also seen a bit of an upgrade in v3, in particular the list of feeds you are following, or have blocked or muted. You can now more easily see exactly what each feed is and click through to view it.\\n\\nMICROPUB QUERIES\\nThis one is exciting to me! Micropub queries https://github.com/indieweb/micropub-extensions/issues/4 are very experimental but if your micropub endpoint supports them it allows Together to query your own website for recently published content that can then be displayed and managed.\\n\\nMy site also supports various post types https://indieweb.org/posts#Types_of_Posts, so I can see my photos, notes, articles or a variety of other content.\\n\\nWhen viewing these posts from your own site you can also edit and delete them all from within Together.\\n\\n[https://grant.codes/media/2019/07/08/micropub-query.jpg]SHARE TARGET\\nI constantly find articles and content online that I want to interact with or store on my own website, and the Together share target helps facilitate that. Now if Together is installed as a PWA with chrome, you can natively share content to it, and then interact with that content, like writing a reply or liking the url.\\n\\nTECH DETAILS\\nV3 of Together was a near total rewrite. Now the backend is a GraphQL https://graphql.org server writtin in nodejs using Apollo and the frontend is a react app that reads from the server.\\n\\nBACKEND\\nThe new backend for Together https://github.com/alltogethernow/server is a GraphQL server. It is totally independent from the frontend, so if you want to run your own version for your own project you are very much welcome to.\\n\\nThe backend is basically a bridge between GraphQL https://graphql.org and Microsub https://indieweb.org/microsub and Micropub https://indieweb.org/micropub.\\n\\nMicrosub maps quite well to GraphQL as it is based on JF2 which is a strictly defined format.\\n\\nBut there are a few transformations that the Together server performs: It converts keys for all properties to camel case, and fills in a few properties with smart defaults, such as feed names are based on their url if there is no name, channels have a number of custom properties that mainly relate to Together settings, these are prefixed with \\\"_t_\\\"\\n\\nMicropub on the other hand uses uses the much more fluid microformats2 format, which does not map nearly so well, so there is a bit of passing json strings involved and some conversion between mf2 and jf2.\\n\\nFor realtime updates, data is pushed from the server using GraphQL subscriptions https://www.apollographql.com/docs/apollo-server/features/subscriptions over websockets.\\n\\nOn the server your microsub endpoint is polled every minute for updates, and if there is new data it is pushed to the client.\\n\\nA small amount of persistent data is also stored in a mongodb https://www.mongodb.com/ database. This is mainly for user data, such as their endpoint info, token, and channel settings.\\n\\nFRONTEND\\nThe Together frontend https://github.com/alltogethernow/web has always been built with react, but now it has been updated to be much more performant using newer features. All components have been converted to use react hooks https://reactjs.org/docs/hooks-intro.html.\\n\\nMISC\\nINDIEAUTH LIBRARY\\nA while back I made (with a lot of help from @Marty McGuire https://martymcgui.re/) an IndieAuth https://indieweb.org/indieauth helper library that improves on a lot of issues with the auth implementation I had used before. So I now use that in together so there should be fewer issues with people trying to log in.\\n\\n@POSTRCHILD/EDITOR-BASE HTTPS://GITHUB.COM/GRANTCODES/POSTRCHILD-EDITOR-BASE\\nAs part of a bunch of my projects I have forms to create mf2 content for micropub posts, I had this extracted into a reusable form, but it previously was not very well made and didn't follow a lot of react best practices.\\n\\nBut I have also rebuilt this to be way more performant and extendable, so now it is ideal for creating both super simple micropub client interfaces as well as far more advanced, customized interfaces.\\n\\nMICROSUB MIDDLEWARE HTTPS://MICROSUB-MIDDLEWARE.GLITCH.ME/\\nThis is another little side project that works independently of Together. It simply watches your microsub channels and then automatically performs actions on the content.\\n\\nAt the moment I mainly use it to roll up likes and bookmarks in my channels into one post per day instead of cluttering up my feeds.\\n\\nIt also has an option to only keep the most recent checkin post of all users in a channel, this lets me keep an up to date location map of my indieweb friends.\\n\\nGLITCH INDIEWEB STARTER\\nWant to use all these awesome things I have mentioned but don't know where to start? I've made something that can maybe help you with that! indieweb-starter.glitch.me https://indieweb-starter.glitch.me is a pretty basic indieweb website that you can remix to instantly create your own (quite basic) website that supports IndieAuth, Micropub and Microsub - basically everything you need to get started using Together.\\n\\nI wouldn't recommend it as your main forever website, but it is a nice place to start out and try out some indieweb functionality before moving to something more permanent.\\n\\nPOSTRCHILD BROWSER EXTENSION\\nWith the other updates I also needed to update the PostrChild browser extension https://postrchild.com. So there will be a few updates there soon. The one I am currently happiest with is the automatic caching of a new post you are writing, it makes me feel much more comfortable knowing my content isn’t going to be lost.\\n\\nGRANARY\\nI have to give a shoutout to granary https://granary.io and snarfed https://snarfed.org! Granary is a useful tool that can be used to convert data from silos such as twitter and instagram into a more friendly formats for the open web. I use this to covert my instagram feed and twitter lists into microformats2 html to follow in Together.\",\"html\":\"<p>Over the last few months I have been completely rebuilding my social reader <a href=\\\"https://alltogethernow.io\\\">Together</a>. So I felt I should write a post about it to highlight what&#x27;s changed and show off what Together has to offer.</p><p>First off just a little info on the idea of a <a href=\\\"https://indieweb.org/reader\\\">social reader</a>: A social reader is an application that can be used to read and interact with content from all around the web, not just one walled garden.</p><p>In the world of the <a href=\\\"https://indieweb.org\\\">#indieweb</a> that means following other websites and owning all your own content on your own website.</p><h2>Features</h2><h3>Layouts</h3><p>The content you follow from around the web comes in all different forms, it doesn&#x27;t make sense to force a photo into the same layout as long form blog post.</p><p>To help with this Together supports a number of views:</p><h4>Timeline View</h4><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/timeline.jpg\\\" class=\\\"alignwide\\\"/><p>The timeline view is similar to what you might find in twitter or facebook.</p><p>Each post has it&#x27;s own card in a scrolling list of cards. Great for shorter format and mixed content.</p><h4>Classic View</h4><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/classic.jpg\\\" class=\\\"alignwide\\\"/><p>Inspired by classic RSS readers such as Google Reader (r.i.p.). The classic view uses a 2 column layout with small post previews on the left and you can click into a single post to view it on the right.</p><p>This view works well for longer form articles or news updates.</p><h4>Gallery View</h4><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/gallery.jpg\\\" class=\\\"alignwide\\\"/><p>The gallery view shows a grid of photos and videos from your feeds.</p><p>You can click into an individual photo or view to view it full screen and swipe through them.</p><p>I use this view to follow my instagram feed and the <a href=\\\"https://micro.blog/discover/photos\\\">micro.blog photo feed</a>.</p><h4>Map View</h4><p>A more niche view is the map view that shows where the most recent posts in a channel come from.</p><p>This can be used to have a nice view where your friends have checked in recently.</p><h3>Previews</h3><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/preview.jpg\\\" class=\\\"alignnone\\\"/><p>Something I worked on quite a bit for this release was the feed following and preview UI.</p><p>The preview and search is now contained in one unified box, it&#x27;s now much easier to see exactly what you searched for and what feed you are previewing.</p><h3>Inline actions</h3><p>Inline actions are not new in this version of Together, but have seen an update. The actions let you reply, like or repost to your website via <a href=\\\"https://indieweb.org/micropub\\\">micropub</a>, perform admin actions (like blocking and muting sources) and viewing or loading the original content.</p><p>New in v3 is the consistent option to attempt to reload the content again from the source. This is useful for (annoying) feeds that only provide a short preview of a posts content.</p><p>Another new feature in v3 are the improved notifications. When you post a reply or like, notifications now have buttons to view your created post or immediately delete it if your micropub endpoint supports <a href=\\\"https://www.w3.org/TR/micropub/#delete\\\">deletes</a>.</p><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/notification.jpg\\\" class=\\\"alignnone\\\"/><h3>Settings management</h3><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/following.jpg\\\" class=\\\"alignnone\\\"/><p>Channel settings have also seen a bit of an upgrade in v3, in particular the list of feeds you are following, or have blocked or muted. You can now more easily see exactly what each feed is and click through to view it.</p><h3>Micropub Queries</h3><p>This one is exciting to me! <a href=\\\"https://github.com/indieweb/micropub-extensions/issues/4\\\">Micropub queries</a> are very experimental but if your micropub endpoint supports them it allows Together to query your own website for recently published content that can then be displayed and managed.</p><p>My site also supports various <a href=\\\"https://indieweb.org/posts#Types_of_Posts\\\">post types</a>, so I can see my photos, notes, articles or a variety of other content.</p><p>When viewing these posts from your own site you can also edit and delete them all from within Together.</p><img alt=\\\"\\\" src=\\\"https://grant.codes/media/2019/07/08/micropub-query.jpg\\\" class=\\\"alignwide\\\"/><h3>Share Target</h3><p>I constantly find articles and content online that I want to interact with or store on my own website, and the Together share target helps facilitate that. Now if Together is installed as a PWA with chrome, you can natively share content to it, and then interact with that content, like writing a reply or liking the url.</p><h2>Tech details</h2><p>V3 of Together was a near total rewrite. Now the backend is a <a href=\\\"https://graphql.org\\\">GraphQL</a> server writtin in nodejs using Apollo and the frontend is a react app that reads from the server.</p><h3>Backend</h3><p>The <a href=\\\"https://github.com/alltogethernow/server\\\">new backend for Together</a> is a GraphQL server. It is totally independent from the frontend, so if you want to run your own version for your own project you are very much welcome to.</p><p>The backend is basically a bridge between <a href=\\\"https://graphql.org\\\">GraphQL</a> and <a href=\\\"https://indieweb.org/microsub\\\">Microsub</a> and <a href=\\\"https://indieweb.org/micropub\\\">Micropub</a>.</p><p>Microsub maps quite well to GraphQL as it is based on JF2 which is a strictly defined format.</p><p>But there are a few transformations that the Together server performs: It converts keys for all properties to camel case, and fills in a few properties with smart defaults, such as feed names are based on their url if there is no name, channels have a number of custom properties that mainly relate to Together settings, these are prefixed with &quot;_t_&quot;</p><p>Micropub on the other hand uses uses the much more fluid microformats2 format, which does not map nearly so well, so there is a bit of passing json strings involved and some conversion between mf2 and jf2.</p><p>For realtime updates, data is pushed from the server using GraphQL <a href=\\\"https://www.apollographql.com/docs/apollo-server/features/subscriptions\\\">subscriptions</a> over websockets.</p><p>On the server your microsub endpoint is polled every minute for updates, and if there is new data it is pushed to the client.</p><p>A small amount of persistent data is also stored in a <a href=\\\"https://www.mongodb.com/\\\">mongodb</a> database. This is mainly for user data, such as their endpoint info, token, and channel settings.</p><h3>Frontend</h3><p>The <a href=\\\"https://github.com/alltogethernow/web\\\">Together frontend</a> has always been built with react, but now it has been updated to be much more performant using newer features. All components have been converted to use <a href=\\\"https://reactjs.org/docs/hooks-intro.html\\\">react hooks</a>.</p><h2>Misc</h2><h3>IndieAuth Library</h3><p>A while back I made (with a lot of help from <a class=\\\"h-card\\\" href=\\\"https://martymcgui.re/\\\">@Marty McGuire</a>) an <a href=\\\"https://indieweb.org/indieauth\\\">IndieAuth</a> helper library that improves on a lot of issues with the auth implementation I had used before. So I now use that in together so there should be fewer issues with people trying to log in.</p><h3><a href=\\\"https://github.com/grantcodes/postrchild-editor-base\\\">@postrchild/editor-base</a></h3><p>As part of a bunch of my projects I have forms to create mf2 content for micropub posts, I had this extracted into a reusable form, but it previously was not very well made and didn&#x27;t follow a lot of react best practices.</p><p>But I have also rebuilt this to be way more performant and extendable, so now it is ideal for creating both super simple micropub client interfaces as well as far more advanced, customized interfaces.</p><h3><a href=\\\"https://microsub-middleware.glitch.me/\\\">Microsub Middleware</a></h3><p>This is another little side project that works independently of Together. It simply watches your microsub channels and then automatically performs actions on the content.</p><p>At the moment I mainly use it to roll up likes and bookmarks in my channels into one post per day instead of cluttering up my feeds.</p><p>It also has an option to only keep the most recent checkin post of all users in a channel, this lets me keep an up to date location map of my indieweb friends.</p><h3>Glitch Indieweb Starter</h3><p>Want to use all these awesome things I have mentioned but don&#x27;t know where to start? I&#x27;ve made something that can maybe help you with that! <a href=\\\"https://indieweb-starter.glitch.me\\\">indieweb-starter.glitch.me</a> is a pretty basic indieweb website that you can remix to instantly create your own (quite basic) website that supports IndieAuth, Micropub and Microsub - basically everything you need to get started using Together.</p><p>I wouldn&#x27;t recommend it as your main forever website, but it is a nice place to start out and try out some indieweb functionality before moving to something more permanent.</p><h3>PostrChild Browser Extension</h3><p>With the other updates I also needed to update the <a href=\\\"https://postrchild.com\\\">PostrChild browser extension</a>. So there will be a few updates there soon. The one I am currently happiest with is the automatic caching of a new post you are writing, it makes me feel much more comfortable knowing my content isn’t going to be lost.</p><h3>Granary</h3><p>I have to give a shoutout to <a href=\\\"https://granary.io\\\">granary</a> and <a href=\\\"https://snarfed.org\\\">snarfed</a>! Granary is a useful tool that can be used to convert data from silos such as twitter and instagram into a more friendly formats for the open web. I use this to covert my instagram feed and twitter lists into microformats2 html to follow in Together.<br/></p><p></p>\"}],\"published\":[\"2019-07-08T20:34:22.043Z\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/08/together\"],\"syndication\":[\"https://twitter.com/grantcodes/status/1148329509298593792\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"https://grant.codes\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}],\"like\":[{\"type\":[\"h-entry\"],\"properties\":{\"uid\":[\"tag:twitter.com,2013:1148329509298593792_favorited_by_14447132\"],\"author\":[{\"value\":\"Aaron Parecki\",\"type\":[\"h-card\"],\"properties\":{\"uid\":[\"tag:twitter.com,2013:aaronpk\"],\"numeric-id\":[\"14447132\"],\"name\":[\"Aaron Parecki\"],\"url\":[\"https://twitter.com/aaronpk\"],\"nickname\":[\"aaronpk\"],\"photo\":[\"https://pbs.twimg.com/profile_images/1103120425846857728/X3d0a2Tr.png\"]}}],\"name\":[\"\"],\"url\":[\"https://twitter.com/grantcodes/status/1148329509298593792#favorited-by-14447132\"],\"like-of\":[\"https://twitter.com/grantcodes/status/1148329509298593792\",\"https://grant.codes/2019/07/08/together\"]}}],\"webmention\":[{\"type\":[\"h-entry\"],\"properties\":{\"uid\":[\"tag:twitter.com,2013:1148332468212240390\"],\"published\":[\"2019-07-08T20:46:10+00:00\"],\"author\":[{\"value\":\"Jonathan LaCour\",\"type\":[\"h-card\"],\"properties\":{\"uid\":[\"tag:twitter.com,2013:cleverdevil\"],\"numeric-id\":[\"639523\"],\"name\":[\"Jonathan LaCour\"],\"url\":[\"https://twitter.com/cleverdevil\",\"https://cleverdevil.io\"],\"nickname\":[\"cleverdevil\"],\"photo\":[\"https://pbs.twimg.com/profile_images/744804831064317952/W-gMo7AO.jpg\"]}}],\"url\":[\"https://twitter.com/cleverdevil/status/1148332468212240390\"],\"content\":[{\"value\":\"Congrats to Grant on Together v3! We’ve moved out of my GitHub namespace into a new organization. When Grant and I came up with Together back at IWS a few years ago, I had no idea it would get so far, so fast. Proud to have played a small part! - grant.codes/2019/07/08/tog…\",\"html\":\"\\n \\n Congrats to Grant on Together v3! We’ve moved out of my GitHub namespace into a new organization. When Grant and I came up with Together back at IWS a few years ago, I had no idea it would get so far, so fast. Proud to have played a small part! - <a href=\\\"https://grant.codes/2019/07/08/together\\\">grant.codes/2019/07/08/tog…</a>\\n \"}],\"name\":[\"Congrats to Grant on Together v3! We’ve moved out of my GitHub namespace into a new organization. When Grant and I came up with Together back at IWS a few years ago, I had no idea it would get so far, so fast. Proud to have played a small part! - grant.codes/2019/07/08/tog…\"]}}]},\"cms\":{\"postType\":\"article\",\"imageSizes\":{}},\"references\":{}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.reddit.com/r/AbsoluteUnits/comments/caienv/absolutely_overwhelmed_chonker/?utm_source=ifttt\"],\"published\":[\"2019-07-08T16:09:08.662Z\"],\"mp-slug\":[\"04-09-08\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/08/04-09-08\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{}},{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://eddiehinkle.com/2019/07/05/8/note/\"],\"published\":[\"2019-07-06T23:13:09.076Z\"],\"mp-slug\":[\"11-13-09\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/07/11-13-09\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{}}],\"after\":1}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 3297,
"receive": 0,
"ssl": -1
},
"comment": "Posts List"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 6734,
"request": {
"method": "GET",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [],
"queryString": [
{
"name": "q",
"value": "source"
},
{
"name": "post-type",
"value": "journal"
}
],
"postData": {
"mimeType": "",
"text": "",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "416"
},
{
"name": "ETag",
"value": "W/\"1a0-HBtzz8I3I8p5RM43z6jCsbcSUgQ\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 17:50:50 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 416,
"mimeType": "application/json; charset=utf-8",
"text": "{\"items\":[{\"type\":[\"h-entry\"],\"properties\":{\"content\":[{\"value\":\"This is a journal post\",\"html\":\"<p>This is a journal post</p>\\n\"}],\"category\":[\"journal\"],\"visibility\":[\"private\"],\"published\":[\"2019-07-17T16:59:45.796Z\"],\"mp-slug\":[\"this-is-a-journal-post\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/17/this-is-a-journal-post\"]},\"cms\":{\"postType\":\"journal\",\"imageSizes\":{}},\"references\":{}}]}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 6734,
"receive": 0,
"ssl": -1
},
"comment": "Posts List (Journal)"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 3047,
"request": {
"method": "GET",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [],
"queryString": [
{
"name": "q",
"value": "source"
},
{
"name": "url",
"value": "http://localhost:3000/2019/07/17/this-is-a-journal-post"
}
],
"postData": {
"mimeType": "",
"text": "",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "404"
},
{
"name": "ETag",
"value": "W/\"194-SZnitXg0fiN49JqMHy5aY6eW0X0\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 17:00:30 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 404,
"mimeType": "application/json; charset=utf-8",
"text": "{\"type\":[\"h-entry\"],\"properties\":{\"content\":[{\"value\":\"This is a journal post\",\"html\":\"<p>This is a journal post</p>\\n\"}],\"category\":[\"journal\"],\"visibility\":[\"private\"],\"published\":[\"2019-07-17T16:59:45.796Z\"],\"mp-slug\":[\"this-is-a-journal-post\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/07/17/this-is-a-journal-post\"]},\"cms\":{\"postType\":\"journal\",\"imageSizes\":{}},\"references\":{}}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 3047,
"receive": 0,
"ssl": -1
},
"comment": "Post Source"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 891,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"queryString": [],
"postData": {
"mimeType": "application/x-www-form-urlencoded",
"text": "",
"params": [
{
"name": "content",
"value": "This is a basic note"
}
]
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "https://grant.codes/2020/02/19/this-is-a-basic-note"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "442"
},
{
"name": "ETag",
"value": "W/\"1ba-XGg0vVEHvyAXVYT6D578VQGsJqo\""
},
{
"name": "Date",
"value": "Wed, 19 Feb 2020 22:27:12 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 442,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"https://grant.codes/2020/02/19/this-is-a-basic-note\",\"item\":{\"type\":[\"h-entry\"],\"properties\":{\"content\":[{\"value\":\"This is a basic note\",\"html\":\"<p>This is a basic note</p>\\n\"}],\"published\":[\"2020-02-19T22:27:12.392Z\"],\"mp-slug\":[\"this-is-a-basic-note\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"https://grant.codes/2020/02/19/this-is-a-basic-note\"]},\"cms\":{\"postType\":\"note\",\"imageSizes\":{}},\"references\":{}}}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 891,
"receive": 0,
"ssl": -1
},
"comment": "Basic Note"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 3203,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"queryString": [],
"postData": {
"mimeType": "application/json",
"text": "{\n\t\"type\": [\"h-entry\"],\n\t\"properties\": {\n\t\t\"content\": [\"## Markdown \\n\\n Posts should be nice, with links and all sort https://grant.codes\"]\n\t}\n}",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "https://grant.codes/2020/02/19/markdown-posts-should-be-nice-with-links"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "675"
},
{
"name": "ETag",
"value": "W/\"2a3-XGCBFDzA1794/aRUHt6krOsQ0NM\""
},
{
"name": "Date",
"value": "Wed, 19 Feb 2020 22:27:26 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 675,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"https://grant.codes/2020/02/19/markdown-posts-should-be-nice-with-links\",\"item\":{\"type\":[\"h-entry\"],\"properties\":{\"content\":[{\"value\":\"MARKDOWN\\n Posts should be nice, with links and all sort https://grant.codes\",\"html\":\"<h2 id=\\\"markdown\\\">Markdown</h2>\\n<p> Posts should be nice, with links and all sort <a href=\\\"https://grant.codes\\\">https://grant.codes</a></p>\\n\"}],\"published\":[\"2020-02-19T22:27:23.428Z\"],\"mp-slug\":[\"markdown-posts-should-be-nice-with-links\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"https://grant.codes/2020/02/19/markdown-posts-should-be-nice-with-links\"]},\"cms\":{\"postType\":\"note\",\"imageSizes\":{}},\"references\":{}}}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 3203,
"receive": 0,
"ssl": -1
},
"comment": "Markdown Note"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 13453,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"queryString": [],
"postData": {
"mimeType": "application/json",
"text": "{\n\t\"type\": [\n\t\t\"h-entry\"\n\t],\n\t\"properties\": {\n\t\t\"like-of\": [\n\t\t\t\"https://www.reddit.com/r/AbsoluteUnits/comments/ce1yuw/this_absolute_unit_of_a_cat_poster_we_bought_at_a/\"\n\t\t]\n\t}\n}",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "http://localhost:3000/2019/07/17/03-12-02"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "56"
},
{
"name": "ETag",
"value": "W/\"38-qzlgNozplbaydQVami6ANdBnnIM\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 13:12:15 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 56,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"http://localhost:3000/2019/07/17/03-12-02\"}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 13453,
"receive": 0,
"ssl": -1
},
"comment": "Like (reddit)"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 5984,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"queryString": [],
"postData": {
"mimeType": "application/json",
"text": "{\n\t\"type\": [\n\t\t\"h-entry\"\n\t],\n\t\"properties\": {\n\t\t\"like-of\": [\n\t\t\t\"https://www.instagram.com/p/B2xOmecFaGB/\"\n\t\t]\n\t}\n}",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "http://localhost:3000/2019/09/24/04-34-00"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "459"
},
{
"name": "ETag",
"value": "W/\"1cb-o7w6QzUxBJII6hh3J7fDZApjtks\""
},
{
"name": "Date",
"value": "Tue, 24 Sep 2019 14:34:06 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 459,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"http://localhost:3000/2019/09/24/04-34-00\",\"item\":{\"type\":[\"h-entry\"],\"properties\":{\"like-of\":[\"https://www.instagram.com/p/B2xOmecFaGB/\"],\"published\":[\"2019-09-24T14:34:00.536Z\"],\"mp-slug\":[\"04-34-00\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/09/24/04-34-00\"],\"syndication\":[\"https://www.instagram.com/p/B2xOmecFaGB/#likedby-grantcodes\"]},\"cms\":{\"postType\":\"like\",\"imageSizes\":{}},\"references\":{}}}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 5984,
"receive": 0,
"ssl": -1
},
"comment": "Like (instagram)"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 2140,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"queryString": [],
"postData": {
"mimeType": "application/json",
"text": "{\n\t\"type\": [\n\t\t\"h-entry\"\n\t],\n\t\"properties\": {\n\t\t\"content\": [\n\t\t\t\"This is a journal post\"\n\t\t],\n\t\t\"category\": [\"journal\"],\n\t\t\"visibility\": [\"private\"]\n\t}\n}",
"params": []
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "http://localhost:3000/2019/07/17/this-is-a-journal-post"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "70"
},
{
"name": "ETag",
"value": "W/\"46-pNBBqJ2UHk8+849DRg6axslyRE0\""
},
{
"name": "Date",
"value": "Wed, 17 Jul 2019 16:59:47 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 70,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"http://localhost:3000/2019/07/17/this-is-a-journal-post\"}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 2140,
"receive": 0,
"ssl": -1
},
"comment": "Journal"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 14125,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data"
}
],
"queryString": [],
"postData": {
"mimeType": "multipart/form-data",
"text": "",
"params": [
{
"name": "photo",
"value": ""
},
{
"name": "name",
"value": "Just testing"
},
{
"name": "",
"value": ""
}
]
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "http://localhost:3000/2019/10/14/just-testing"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "939"
},
{
"name": "ETag",
"value": "W/\"3ab-Nzq/wq2CLpiEqL9HFUpySNBS5eM\""
},
{
"name": "Date",
"value": "Mon, 14 Oct 2019 20:13:25 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 939,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"http://localhost:3000/2019/10/14/just-testing\",\"item\":{\"type\":[\"h-entry\"],\"properties\":{\"name\":[\"Just testing\"],\"photo\":[{\"value\":\"http://localhost:3000/media/2019/10/14/topography-(6).jpg\",\"alt\":\"\"}],\"published\":[\"2019-10-14T20:13:11.656Z\"],\"mp-slug\":[\"just-testing\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/10/14/just-testing\"],\"author\":[{\"type\":[\"h-card\"],\"properties\":{\"name\":[\"Grant Richmond\"],\"url\":[\"http://localhost:3000\"],\"photo\":[\"https://grant.codes/img/me.jpg\"]}}],\"syndication\":[\"https://www.instagram.com/p/B3nJKWoF0IU/\"]},\"cms\":{\"postType\":\"photo\",\"imageSizes\":{\"http://localhost:3000/media/2019/10/14/topography-(6).jpg\":{\"700\":\"http://localhost:3000/media/2019/10/14/topography-(6)-700.jpg\",\"1800\":\"http://localhost:3000/media/2019/10/14/topography-(6)-1800.jpg\",\"200x200\":\"http://localhost:3000/media/2019/10/14/topography-(6)-200x200.jpg\"}}},\"references\":{}}}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 14125,
"receive": 0,
"ssl": -1
},
"comment": "Photo"
},
{
"startedDateTime": "2020-03-18T11:07:31.832Z",
"time": 4375,
"request": {
"method": "POST",
"url": "http://localhost:3000/micropub",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "randomColor",
"value": "%23abc53c",
"path": "/",
"domain": "localhost"
}
],
"headers": [
{
"name": "Content-Type",
"value": "multipart/form-data"
}
],
"queryString": [],
"postData": {
"mimeType": "multipart/form-data",
"text": "",
"params": [
{
"name": "photo",
"value": ""
},
{
"name": "name",
"value": "Just testing multiphotos"
},
{
"name": "photo",
"value": ""
}
]
},
"headersSize": -1,
"bodySize": -1,
"settingEncodeUrl": true
},
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Location",
"value": "http://localhost:3000/2019/09/24/just-testing-multiphotos"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "1142"
},
{
"name": "ETag",
"value": "W/\"476-gRASk1mFWaULe9kLdJHRAF1F8qM\""
},
{
"name": "Date",
"value": "Tue, 24 Sep 2019 14:22:28 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 1142,
"mimeType": "application/json; charset=utf-8",
"text": "{\"location\":\"http://localhost:3000/2019/09/24/just-testing-multiphotos\",\"item\":{\"type\":[\"h-entry\"],\"properties\":{\"name\":[\"Just testing multiphotos\"],\"photo\":[{\"value\":\"http://localhost:3000/media/2019/09/24/topography-(6)-9.jpg\",\"alt\":\"\"},{\"value\":\"http://localhost:3000/media/2019/09/24/topography-3.jpg\",\"alt\":\"\"}],\"published\":[\"2019-09-24T14:22:24.034Z\"],\"mp-slug\":[\"just-testing-multiphotos\"],\"visibility\":[\"visible\"],\"post-status\":[\"published\"],\"url\":[\"http://localhost:3000/2019/09/24/just-testing-multiphotos\"]},\"cms\":{\"postType\":\"photo\",\"imageSizes\":{\"http://localhost:3000/media/2019/09/24/topography-(6)-9.jpg\":{\"700\":\"http://localhost:3000/media/2019/09/24/topography-(6)-9-700.jpg\",\"1800\":\"http://localhost:3000/media/2019/09/24/topography-(6)-9-1800.jpg\",\"200x200\":\"http://localhost:3000/media/2019/09/24/topography-(6)-9-200x200.jpg\"},\"http://localhost:3000/media/2019/09/24/topography-3.jpg\":{\"700\":\"http://localhost:3000/media/2019/09/24/topography-3-700.jpg\",\"1800\":\"http://localhost:3000/media/2019/09/24/topography-3-1800.jpg\",\"200x200\":\"http://localhost:3000/media/2019/09/24/topography-3-200x200.jpg\"}}},\"references\":{}}}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1
},
"cache": {},
"timings": {
"blocked": -1,
"dns": -1,
"connect": -1,
"send": 0,
"wait": 4375,
"receive": 0,
"ssl": -1
},
"comment": "Multi Photo"
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment