{
    "version": "https://jsonfeed.org/version/1",
    "title": "https://grant.codes json feed",
    "home_page_url": "https://grant.codes",
    "feed_url": "https://backend.grant.codes/micropub/plugin/feeds/json",
    "author": {
        "name": "Grant Richmond",
        "url": "https://grant.codes"
    },
    "items": [
        {
            "id": "https://grant.codes/2020/08/09/100days-conclusion",
            "content_html": "<p>So my second #100days challenge comes to an end, and I would say it was another success.</p><p>I maybe wasn't quite so strict with it as last time - I may have taken 101 days and what I did on each day varied quite a lot, but I now have 100 updates and achieved quite a lot in that time.</p><p>Let's take a look at some of the bigger things I worked on over those 100 days</p><h3>Website Update</h3><p>I launched the redesign and rebuild of my website. It's now a Next.js app, and I am super happy with how it looks and Next.js seems like the perfect choice for me and is only getting better with each update.</p><p>There are definitely still plenty of potential improvements to be made, but in general I'm really happy with how it turned out.</p><p>The montly and yearly summary pages are really fun and I'm happy with the overabundance of feeds that I now have available.</p><h3>PostrChild Extension</h3><p>Although I've still not got around to releasing version 2 of the PostrChild extension I have put a lot of work into and it is very nearly feature complete.</p><p>It's definitely much better and feature filled than the first version but there are a few little bugs to iron out before declaring it ready to be published.</p><h3>Home Automation Improvements</h3><p>I also made a decent amount of random home automation improvements over these 100 days, including tracking my weight, better person presence tracking, more light, motion and temperature sensors. </p><hr /><p>All in all it was a great success!</p><p>I will definitely continue with a lot of the projects I have been working on, but I think I will take a break for a while and do something else with my spare time - I think there are some unplayed video games that are calling out to me!</p><p>P.S. Also big shoutout to my fellow <a href=\"https://kinsta.com\">Kinsta</a> coworkers who have also complete their 100 days of blogging!</p>",
            "url": "https://grant.codes/2020/08/09/100days-conclusion",
            "title": "#100days Conclusion",
            "date_modified": "2020-08-09T22:44:32.139Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/09/10-30-54",
            "content_html": "<p>#100days 99 - Converted the alignment functionality in the PostrChild extension to be more reusable. It's now a higher order component that can be wrapped around blocks as needed.</p>",
            "url": "https://grant.codes/2020/08/09/10-30-54",
            "title": "#100days 99 - Converted the alignment functionalit…",
            "date_modified": "2020-08-09T22:30:54.320Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/07/10-38-15",
            "content_html": "<p>#100days 98 - Also added better code block support to the PostrChild extension and improved how code blocks are shown on my site too.</p>",
            "url": "https://grant.codes/2020/08/07/10-38-15",
            "title": "#100days 98 - Also added better code block support…",
            "date_modified": "2020-08-07T22:38:15.868Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/07/11-11-42",
            "content_html": "<p>#100days 97 - Applying what I figured out yesterday I added audio and video pasting support to the PostrChild extension.</p><p>I think I could be close to having it feature complete by the end of this #100days challenge</p>",
            "url": "https://grant.codes/2020/08/07/11-11-42",
            "title": "#100days 97 - Applying what I figured out yesterda…",
            "date_modified": "2020-08-07T11:11:42.769Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/06/05-15-56",
            "content_html": "<p>#100days 96 - Got pasting images working in the PostrChild extension. Now that is figured out it should be easy to do the same thing for video and audio files.</p>",
            "url": "https://grant.codes/2020/08/06/05-15-56",
            "title": "#100days 96 - Got pasting images working in the Po…",
            "date_modified": "2020-08-06T17:15:56.728Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/04/10-43-25",
            "content_html": "<p>#100days 95 - Got the autosuggest working in PostrChild again by keeping the editor state more consistent. It may have a side-effect of not being able to update the editor content by passing new props. But I don't see that as much of an issue as the only time it is really needed is on first load to pre-fill from the cache or url parameters.</p>",
            "url": "https://grant.codes/2020/08/04/10-43-25",
            "title": "#100days 95 - Got the autosuggest working in Postr…",
            "date_modified": "2020-08-04T22:43:25.015Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/04/09-04-15",
            "content_html": "<p>#100days 94 - Added a new monthly data file and added output of my body data (weight, bmi etc) to my monthly summaries.</p><p>There is an example at <a href=\"https://grant.codes/2020/07\">/2020/07</a> but unfortunately it doesn't seem to have any historical data yet so my graphs are a straight line. </p>",
            "url": "https://grant.codes/2020/08/04/09-04-15",
            "title": "#100days 94 - Added a new monthly data file and ad…",
            "date_modified": "2020-08-04T21:04:15.535Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/03/11-06-29",
            "content_html": "<p>#100days 93 - Also did a lot of attempting to debug the recently broken suggestion UI in the PostrChild extension, without much luck unfortunately. I know it works fine when I remove the functionality, but I've still not been able to track down the exact issue.</p>",
            "url": "https://grant.codes/2020/08/03/11-06-29",
            "title": "#100days 93 - Also did a lot of attempting to debu…",
            "date_modified": "2020-08-03T23:06:29.909Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/08/03/10-55-00",
            "content_html": "<p>#100days 92 - I noticed my automated monthly data update didn't work so made a small tweak that should hopefully get it running.</p>",
            "url": "https://grant.codes/2020/08/03/10-55-00",
            "title": "#100days 92 - I noticed my automated monthly data …",
            "date_modified": "2020-08-03T22:55:00.874Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/31/09-51-10",
            "content_html": "<p>#100days 91 - Did a bunch of work on the PostrChild extension and made a lot of big improvements, including</p><ul><li>Loading the browser action popup way faster</li><li>Editing support</li><li>Restoring new posts from local cache</li><li>Get contact suggestions from the micropub endpoint</li></ul><p>So it's now significantly closer to being ready for use, but I did break the autosuggestion UI, so I need to fix that again.</p><p></p>",
            "url": "https://grant.codes/2020/07/31/09-51-10",
            "title": "#100days 91 - Did a bunch of work on the PostrChil…",
            "date_modified": "2020-07-31T21:51:10.870Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/29/10-22-13",
            "content_html": "<p>#100days 90 - Also today I finally re-enabled syndication from my site. So I'm showing up on twitter and telegram again now 👋</p>",
            "url": "https://grant.codes/2020/07/29/10-22-13",
            "title": "#100days 90 - Also today I finally re-enabled synd…",
            "date_modified": "2020-07-29T22:22:13.514Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/29/10-19-20",
            "content_html": "<p>#100days 89 - Started writing a first set of tests for Postr. Not too much to speak of yet, but I do have a decent little set of tests for the post type discovery part at least. But that project is quite a complicated beast and tests will take a long time 😭</p>",
            "url": "https://grant.codes/2020/07/29/10-19-20",
            "title": "#100days 89 - Started writing a first set of tests…",
            "date_modified": "2020-07-29T22:19:20.254Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/28/09-39-05",
            "content_html": "<p>#100days 88 - Launched a new start view for <a href=\"https://alltogethernow.io\">Together</a> and got it working when launched from a PWA as well. </p>",
            "url": "https://grant.codes/2020/07/28/09-39-05",
            "title": "#100days 88 - Launched a new start view for Togeth…",
            "date_modified": "2020-07-28T21:39:05.602Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/27/10-40-16",
            "content_html": "<p>#100days 87 - I have been working a little on a new start page for Together which adds quicker access to all the channels and some key actions.</p><p>There were also lots of recent Micropub spec improvements which I'd like to work on integrating with Together and PostrChild.</p>",
            "url": "https://grant.codes/2020/07/27/10-40-16",
            "title": "#100days 87 - I have been working a little on a ne…",
            "date_modified": "2020-07-27T22:40:16.017Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/26/10-20-37",
            "content_html": "<p>#100days 86 - Also today I worked on my bank transaction auto importer, and I actually have the basics of it working, only big problem is that my main bank account seems to have an issue with their auth flow and I can't get myself authenticated 🤦‍♂️ </p>",
            "url": "https://grant.codes/2020/07/26/10-20-37",
            "title": "#100days 86 - Also today I worked on my bank trans…",
            "date_modified": "2020-07-26T22:20:37.790Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/26/10-16-23",
            "content_html": "<p>#100days 85 - Made a first attempt at adding yearly summaries to my site. They are basically the same as the monthly archives and are just made by taking all the data files for the year and adding the statistics together</p>",
            "url": "https://grant.codes/2020/07/26/10-16-23",
            "title": "#100days 85 - Made a first attempt at adding yearl…",
            "date_modified": "2020-07-26T22:16:23.737Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/25/100days-84-i-updated-how-my-site-stores-and",
            "content_html": "<p>#100days 84 - I updated how my site stores and applies the custom theme color from the color picker.</p>\n<p>So now there should hopefully be no flash of the color changing when the page loads</p>\n",
            "url": "https://grant.codes/2020/07/25/100days-84-i-updated-how-my-site-stores-and",
            "title": "#100days 84 - I updated how my site stores and app…",
            "date_modified": "2020-07-25T07:09:10.459Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/24/01-29-38",
            "content_html": "<p>#100days 83 - Finished up and launched the Next.js preview mode on my site, so now I can log in and view trash, drafts and journal entries. </p><p>Was actually pretty easy to set up :)</p>",
            "url": "https://grant.codes/2020/07/24/01-29-38",
            "title": "#100days 83 - Finished up and launched the Next.js…",
            "date_modified": "2020-07-24T13:29:38.578Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/23/10-12-19",
            "content_html": "<p>#100days 82 - More Next.js tinkering! Tonight I've also been playing with preview mode, which is a really cool built in piece of functionality.</p><p>I don't actually need it to generate previews of my posts though, since I generally write inline on my site anyway - but what I can use it for is to tell when I am logged in, and show me drafts and trash directly on my site, and potentially some admin controls. And all of the main site gets to stay mainly static thanks to Next.js fanciness.</p>",
            "url": "https://grant.codes/2020/07/23/10-12-19",
            "title": "#100days 82 - More Next.js tinkering! Tonight I've…",
            "date_modified": "2020-07-23T22:12:19.017Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/23/10-12-18",
            "content_html": "<p>#100days 82 - More Next.js tinkering! Tonight I've also been playing with preview mode, which is a really cool built in piece of functionality.</p><p>I don't actually need it to generate previews of my posts though, since I generally write inline on my site anyway - but what I can use it for is to tell when I am logged in, and show me drafts and trash directly on my site, and potentially some admin controls. And all of the main site gets to stay mainly static thanks to Next.js fanciness.</p>",
            "url": "https://grant.codes/2020/07/23/10-12-18",
            "title": "#100days 82 - More Next.js tinkering! Tonight I've…",
            "date_modified": "2020-07-23T22:12:18.734Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/23/08-30-50",
            "content_html": "<p>#100days 81 - Added a GitHub workflow that should automatically add and commit new monthly summaries on the 1st of every month. Guess I have a week of waiting to see if it will actually work 🤷‍♂️</p>",
            "url": "https://grant.codes/2020/07/23/08-30-50",
            "title": "#100days 81 - Added a GitHub workflow that should …",
            "date_modified": "2020-07-23T20:30:50.759Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/22/09-54-52",
            "content_html": "<p>#100days 80 - Another couple of small updates to my monthly summary pages today: I added better SEO titles and pagination buttons to go between months.</p><p>There may be an issue with the maps not loading unless the page is reloaded, but hopefully I should be able to work around that somehow</p>",
            "url": "https://grant.codes/2020/07/22/09-54-52",
            "title": "#100days 80 - Another couple of small updates to m…",
            "date_modified": "2020-07-22T21:54:52.321Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/21/09-08-35",
            "content_html": "<p>#100days 79 - More monthly summary improvements. This time tidying up some of the map code as well as adding better titles and some nicer styles to the post type statistics</p>",
            "url": "https://grant.codes/2020/07/21/09-08-35",
            "title": "#100days 79 - More monthly summary improvements. T…",
            "date_modified": "2020-07-21T21:08:35.028Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/21/06-53-23",
            "content_html": "<p>#100days 78 - Yesterday I worked on improving my new monthly summary pages, mostly regarding the maps, I ended up moving to leaflet as it is easier to zoom to the geojson that I load into the map, and updated all my data files to use a more streamlined geojson format</p>",
            "url": "https://grant.codes/2020/07/21/06-53-23",
            "title": "#100days 78 - Yesterday I worked on improving my n…",
            "date_modified": "2020-07-21T18:53:23.703Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/20/07-04-28",
            "content_html": "<p>#100days 77 - got a first (broken) version of my monthly summaries online yesterday. So on pages like <a href=\"https://grant.codes/2018/03\">/2018/03</a> there is a list of the content I created and a map - although the map currently doesn't actually show anything...</p>",
            "url": "https://grant.codes/2020/07/20/07-04-28",
            "title": "#100days 77 - got a first (broken) version of my m…",
            "date_modified": "2020-07-20T19:04:28.092Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/19/11-20-57",
            "content_html": "<p>#100days 76 - Continued working on my monthly summaries for my site, and got a script working to generate the data and save it as a json file.</p><p>Next step is to use those files to generate summary pages, then work on automatically generating them every month so I don't need to touch them again.</p>",
            "url": "https://grant.codes/2020/07/19/11-20-57",
            "title": "#100days 76 - Continued working on my monthly summ…",
            "date_modified": "2020-07-19T11:20:57.820Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/17/11-27-49",
            "content_html": "<p>#100days 75 - Also started working on generating monthly summaries for my site, which may end up being quite in depth and useful.</p><p>At the moment I am looking at summarizing all the content added to the site in a given month, as well as tracking my location and weight.</p>",
            "url": "https://grant.codes/2020/07/17/11-27-49",
            "title": "#100days 75 - Also started working on generating m…",
            "date_modified": "2020-07-17T23:27:49.291Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/17/11-17-32",
            "content_html": "<p>#100days 74 - Just a quick one to fix the links in my pagination. They should all be working now 🤞</p>",
            "url": "https://grant.codes/2020/07/17/11-17-32",
            "title": "#100days 74 - Just a quick one to fix the links in…",
            "date_modified": "2020-07-17T23:17:32.341Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/16/09-09-21",
            "content_html": "<p>#100days 73 - Along with adding more feeds to my site I figured I should add a <a href=\"https://grant.codes/feeds\">/feeds</a> page too to help make it easier to find them all.</p>",
            "url": "https://grant.codes/2020/07/16/09-09-21",
            "title": "#100days 73 - Along with adding more feeds to my s…",
            "date_modified": "2020-07-16T21:09:21.978Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/15/11-26-57",
            "content_html": "<p>#100days 72 - Added a <em>lot</em> more feeds to my site. Now there are feeds available for each post type and each category, all available in multiple types of formats.</p>",
            "url": "https://grant.codes/2020/07/15/11-26-57",
            "title": "#100days 72 - Added a lot more feeds to my site. N…",
            "date_modified": "2020-07-15T23:26:57.409Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/15/08-38-12",
            "content_html": "<p>#100days 71 - updated my <a href=\"https://grant.codes/where\">where page</a> on the new site to work a bit more consistently by removing some overly aggressive timeouts</p>",
            "url": "https://grant.codes/2020/07/15/08-38-12",
            "title": "#100days 71 - updated my where page https://grant.…",
            "date_modified": "2020-07-15T20:38:12.225Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/14/06-39-53",
            "content_html": "<p>#100days 70 - Readded a token endpoint to my site letting me publish to it and log into indieauth enabled services again like <a href=\"https://alltogethernow.io\">Together</a></p>",
            "url": "https://grant.codes/2020/07/14/06-39-53",
            "title": "#100days 70 - Readded a token endpoint to my site …",
            "date_modified": "2020-07-14T18:39:53.790Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/14/06-21-14",
            "content_html": "<p>#100days 69 - So I'm pretty far behind now with a lot of catching up to do. Last week I did launch the rebuild of my site 🥳. It's looking pretty good but I did accidentally break a bunch of stuff, like the token endpoint, notifications and accidentally deleted all my images (again).</p><p>I already made a few fixes over the last couple of days so will count those as separate updates.</p>",
            "url": "https://grant.codes/2020/07/14/06-21-14",
            "title": "#100days 69 - So I'm pretty far behind now with a …",
            "date_modified": "2020-07-14T18:21:14.655Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/07/11-54-58",
            "content_html": "<p>#100days 68 - Added a new custom font to my new site. I think it's looking really good. It's probably ready to launch now I think 😃</p>",
            "url": "https://grant.codes/2020/07/07/11-54-58",
            "title": "#100days 68 - Added a new custom font to my new si…",
            "date_modified": "2020-07-07T11:54:58.624Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/06/10-28-54",
            "content_html": "<p><a href=\"#\">#</a>100days 67 - Also updated the PostrChild extension to cache new post content so to try and prevent losing what you are working on. </p><p>Storing the content works fine, but I need to figure out how to load it back into the editor content without causing issues. </p><p>This is also pretty vital to get edit support going again, as is uses a similar mechanism of loading in html and converting it to the editor js object format</p>",
            "url": "https://grant.codes/2020/07/06/10-28-54",
            "title": "#100days 67 - Also updated the PostrChild extensio…",
            "date_modified": "2020-07-06T10:28:54.405Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/06/09-16-41",
            "content_html": "<p>#100days 66 - Just a quick update on the new site to make article titles not quite so crazy large on small screens.</p>",
            "url": "https://grant.codes/2020/07/06/09-16-41",
            "title": "#100days 66 - Just a quick update on the new site …",
            "date_modified": "2020-07-06T09:16:41.314Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/04/05-52-14",
            "content_html": "<p>#100days 65 - Doing some catch up with multiple updates today. I fixed the where page on my new site as well as updating some of the styles.</p><p>I think it's more or less ready to go now, so it might be time to launch it after a couple more little tweaks.</p>",
            "url": "https://grant.codes/2020/07/04/05-52-14",
            "title": "#100days 65 - Doing some catch up with multiple up…",
            "date_modified": "2020-07-04T17:52:14.909Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/04/01-58-22",
            "content_html": "<p>#100days 64 - Updated the 404 code from yesterday to use my own custom component instead of the default Next.js one.</p><p>I'm also heading off for a little holiday tomorrow, hopefully I'll be able to keep up this challenge, but I'm not too bothered if I miss a few days.</p>",
            "url": "https://grant.codes/2020/07/04/01-58-22",
            "title": "#100days 64 - Updated the 404 code from yesterday …",
            "date_modified": "2020-07-04T13:58:22.494Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/03/11-44-16",
            "content_html": "<p>#100days 63 - updated my next js site to better handle fallbacks and dynamic routes, so valid post urls that 404 will actually 404 and posts that are dynamically loaded will show a loading indicator.</p>",
            "url": "https://grant.codes/2020/07/03/11-44-16",
            "title": "#100days 63 - updated my next js site to better ha…",
            "date_modified": "2020-07-03T23:44:16.282Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/02/10-18-09",
            "content_html": "<p>#100days 62 - Made a little update to my new site to fix the navigation sizing on large screens.</p>",
            "url": "https://grant.codes/2020/07/02/10-18-09",
            "title": "#100days 62 - Made a little update to my new site …",
            "date_modified": "2020-07-02T22:18:09.748Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/01/11-02-45",
            "content_html": "<p><a href=\"#\">#</a>100days 61 - Fixed a few styles on my new site so that previews of articles on my archive pages look more similar to the rest of the posts.</p>",
            "url": "https://grant.codes/2020/07/01/11-02-45",
            "title": "#100days 61 - Fixed a few styles on my new site so…",
            "date_modified": "2020-07-01T23:02:45.648Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/07/01/08-55-00",
            "content_html": "<p>#100days 60 - Made a small but long overdue change to my site, so that it only sends me notifications about new webmentions. My notifications were filling up with duplicate mentions because of people sending them every time they build their site (which is totally fine)</p>",
            "url": "https://grant.codes/2020/07/01/08-55-00",
            "title": "#100days 60 - Made a small but long overdue change…",
            "date_modified": "2020-07-01T08:55:00.550Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/28/09-30-54",
            "content_html": "<p>#100days 59 - Made a decent amount of progress on the PostrChild extension as my IndieWebCamp project, but still not very near ready for release 😣</p><p>What I did manage to do was: make the autocompletion system for emoji, blocks and contacts much more reliable, fix the button to easily reply to any page and some updates to inserting and uploading images.</p><p>I still <a href=\"https://github.com/grantcodes/postrchild-extension/projects/1\">have a lot left to do</a> but I am really hoping I now have the biggest hurdles out of the way and future development will go more smoothly.</p>",
            "url": "https://grant.codes/2020/06/28/09-30-54",
            "title": "#100days 59 - Made a decent amount of progress on …",
            "date_modified": "2020-06-28T21:30:54.288Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/27/micropub-queries",
            "content_html": "<p>With <a href=\"https://indieweb.org/2020/West\">IndieWebCamp West just about to start</a> I figured this would be a good time to write up some of my thoughts on one of the missing pieces of the IndieWeb ecosystem: Micropub Queries.</p><h2>What is Micropub</h2><p>The quick version is that <a href=\"https://indieweb.org/Micropub\">Micropub</a> is an open standard to allow publishing to your own website from a variety of apps or clients. It's great. I love it. But it's <em>mostly</em> a one way experience, publishing only.</p><p>The spec does define ways to query and update specific posts, but they are generally not implemented by very many clients - perhaps because they are more complex to design and develop or perhaps because it's not the most useful thing.</p><h3>Increase in usage</h3><p>Recently we've also seen a couple of large projects add Micropub support in <a href=\"https://ia.net/writer\">iA Writer</a> and <a href=\"https://threadreaderapp.com/\">Thread Reader</a>. Which is awesome, but I think if queries become more mainstream there is the potential for much better apps and a more convincing reason for Micropub to be integrated into more existing apps.</p><h2>Queries</h2><p><a href=\"https://github.com/indieweb/micropub-extensions/issues/4\">Proposals for Micropub Queries</a> have been around for a while without a huge amount of movement. Maybe it's a chicken and egg type scenario, if no clients add support, then why add support to your site?</p><h3>Existing examples</h3><p>I've made a couple of things that use queries myself. My <a href=\"https://postrchild.com/\">chatbot</a> can query posts (although it's not very useful) and <a href=\"https://alltogethernow.io\">Together</a> has a useful view of your published posts as well, and <a href=\"https://indieweb.org/Indigenous_for_Android\">Indigenous for Android</a> also can show a basic list of your published posts.</p><p>But for me all those examples are fairly basic, and there is a lot of potential for more powerful and compelling experiences.</p><h3>A vision of the future</h3><p>There are so many possibilities for super useful experiences for Micropub Queries that I'm just going to list off a bunch of things I can think of:</p><ul><li>Readers could check if you have already liked, bookmarked, replied etc. to a url</li><li>Apps like <a href=\"https://indiebookclub.biz/\">indiebookclub</a> could query for books you have already read, or even track your reading progress</li><li>Save drafts to your own site and then edit and publish them from a Micropub client</li><li>Full admin UIs like the WordPress admin menu or <a href=\"https://getpublii.com/\">Publii</a> (recently mentioned in the IndieWeb chat) could support Micropub with the ability to query for drafts, trash, different post types etc.</li><li>Find your last location by querying the last post with a location included</li><li>Gallery posting apps that can query for already created photos like <a href=\"https://indieweb.org/best_nine\">best nine</a></li><li>Collection apps that can find existing posts</li><li>Search your own posts via the API</li><li>Create generic sites just using the Micropub Query API, eg. checkin views are hard, an app could query your site and generate a nice UI for you</li></ul><p>There are so many more that I've thought of and forgotten or that I've not though of yet.</p><p>Although there are plenty of nice, usable apps on the Indieweb I still think we are missing a next level experience to really highlight the power and potential of Indieweb technologies, maybe Micropub Queries could help bring that about...</p>",
            "url": "https://grant.codes/2020/06/27/micropub-queries",
            "title": "Are Micropub Queries the missing link?",
            "date_modified": "2020-06-27T16:14:37.887Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/27/03-12-14",
            "content_html": "<p><a href=\"#\">#</a>100days 57 - Updated some more styles on the next version of my site and made pretty much all images lazyloaded. So my pages of photos should be a bit more performant 😃 </p>",
            "url": "https://grant.codes/2020/06/27/03-12-14",
            "title": "#100days 57 - Updated some more styles on the next…",
            "date_modified": "2020-06-27T15:12:14.970Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/26/11-34-20",
            "content_html": "<p><a href=\"#\">#</a>100days 56 - Also been working on my updated site as well. Managed to completely remove styled components from it now and converted everything to more plain sass.</p><p>I'm sure there are little things that have broken or can be improved but I definitely prefer this setup to styled components - I can see the appeal but I find them to be limiting or hard to use when you hit edge cases that don't really fit in the \"component\" mold.</p>",
            "url": "https://grant.codes/2020/06/26/11-34-20",
            "title": "#100days 56 - Also been working on my updated site…",
            "date_modified": "2020-06-26T23:34:20.500Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/26/11-29-02",
            "content_html": "<p>#100days 55 - So my failure with the PostrChild extension yesterday was not so much of a failure as I thought.</p><p>Turns out that web extensions don't support having both a \"browser action\" and a \"page action\" in one extension. But it's no so bad, it was just providing a one click alternative to a 2 click flow.</p>",
            "url": "https://grant.codes/2020/06/26/11-29-02",
            "title": "#100days 55 - So my failure with the PostrChild ex…",
            "date_modified": "2020-06-26T23:29:02.925Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/25/10-19-20",
            "content_html": "<p>#100days 54 - Just continued converting some of my new site styles to sass.</p><p>Also tried another update to the PostrChild extension but it was a bit of a failure for reasons unknown to me right now</p>",
            "url": "https://grant.codes/2020/06/25/10-19-20",
            "title": "#100days 54 - Just continued converting some of my…",
            "date_modified": "2020-06-25T22:19:20.285Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/24/10-27-14",
            "content_html": "<p><a href=\"#\">#</a>100days 53 - And another small update in my efforts to catch up!</p><p>To <em>attempt</em> to add images to that last post I made sure that the PostrChild extension will always add an empty paragraph to the end of the content if the last item is not a paragraph. So you can always write something after an image or different type of block.</p><p>If only the image handling wasn't so broken though 😅...</p>",
            "url": "https://grant.codes/2020/06/24/10-27-14",
            "title": "#100days 53 - And another small update in my effor…",
            "date_modified": "2020-06-24T22:27:14.297Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        },
        {
            "id": "https://grant.codes/2020/06/24/10-23-23",
            "content_html": "<p><a href=\"#\">#</a>100days 52 - I spent a bit of time cleaning up my Home Assistant dashboard and making it nice and pretty 🤩</p><p>The main view is much more organised and clean now by moving everything into sections and using cards for lots of controls.</p><img alt=\"\" src=\"blob:https://grantcodes.now.sh/e3ceb8ea-30f0-4ef0-a785-2733d9d56d63\" class=\"alignwide\" /><p>And I also have a nice little person view which shows my body stats as well as my home status with the emoji 🏠</p><img alt=\"\" src=\"blob:https://grantcodes.now.sh/3b3e55fe-0d18-4cf1-8932-8a04fdd0acc8\" class=\"alignnone\" /><p></p>",
            "url": "https://grant.codes/2020/06/24/10-23-23",
            "title": "#100days 52 - I spent a bit of time cleaning up my…",
            "date_modified": "2020-06-24T22:23:23.081Z",
            "author": {
                "name": "Grant Richmond",
                "url": "https://grant.codes"
            }
        }
    ]
}