JSON Feed Validator

Check whether your feed is valid. For more information about JSON Feed, see the specification.

{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Notes |  Andrew Burgess | shaky.sh",
  "home_page_url": "https://shaky.sh",
  "feed_url": "https://shaky.sh/notes.json",
  "description": "Microblogging by Andrew Burgess",
  "icon": "https://shaky.sh/assets/avatar.webp",
  "favicon": "https://shaky.sh/assets/shaky.png",
  "authors": [
    {
      "name": "Andrew Burgess",
      "url": "https://shaky.sh",
      "avatar": "https://shaky.sh/assets/avatar.webp"
    }
  ],
  "language": "en-CA",
  "items": [
    {
      "id": "https://shaky.sh/notes/2024/07/23/20-13-07/",
      "url": "https://shaky.sh/notes/2024/07/23/20-13-07/",
      "content_text": "New video and accompanying blog post: https://youtu.be/bH61wRMqp-o",
      "date_published": "2024-07-23T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/21/00-37-00/",
      "url": "https://shaky.sh/notes/2024/07/21/00-37-00/",
      "content_text": "Ah, another Saturday of social deduction games. Taking a break from Avalon and playing Secret Hitler. And wow, very different energy.",
      "date_published": "2024-07-21T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/16/14-10-08/",
      "url": "https://shaky.sh/notes/2024/07/16/14-10-08/",
      "content_text": "Minimal style changes really refresh my site! Happy with the progress.",
      "date_published": "2024-07-16T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/16/17-10-38/",
      "url": "https://shaky.sh/notes/2024/07/16/17-10-38/",
      "content_text": "New post: https://shaky.sh/links/ten-years-of-overcast/",
      "date_published": "2024-07-16T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/13/12-33-15/",
      "url": "https://shaky.sh/notes/2024/07/13/12-33-15/",
      "content_text": "Switched to the eleventy 3 alpha so I could use TypeScript and TSX ... and realized that most of my pain hasn't been with 11ty, but with the templating options! Need some better types on the 11ty context and stuff, but it's way easier now! So much easier to share components between pages.",
      "date_published": "2024-07-13T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/13/17-01-10/",
      "url": "https://shaky.sh/notes/2024/07/13/17-01-10/",
      "content_text": "Giving my YT background wall a fresh coat of paint, and doing my Eleventy TSX conversion between coats. Only the notes index pages left.",
      "date_published": "2024-07-13T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/12/04-05-48/",
      "url": "https://shaky.sh/notes/2024/07/12/04-05-48/",
      "content_text": "New post: July 2024 Site Update\n\nI've been making a lot of tweaks to the site this week, and this is the list.",
      "date_published": "2024-07-12T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/12/15-43-40/",
      "url": "https://shaky.sh/notes/2024/07/12/15-43-40/",
      "content_text": "Just published a new video about Typescript's NoInfer utility: https://youtu.be/mkuChhuHO50",
      "date_published": "2024-07-12T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/11/11-42-08/",
      "url": "https://shaky.sh/notes/2024/07/11/11-42-08/",
      "content_text": "More posse setup yesterday, this time for media (mainly photos). S3 bucket and cloudfront were simple enough to set up. \n\nI wanna make it easy to upload photos from my phone, so I set up a vercel function to handle it. But I'm running into file uploads limits from vercel. So I think I'll change the function to return a signed URL and set the client upload the file directly.",
      "date_published": "2024-07-11T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/11/15-41-07/",
      "url": "https://shaky.sh/notes/2024/07/11/15-41-07/",
      "content_text": "Turns out, it's easy to upload photos of any size to S3 from an iOS shortcut by using a vercel function to get a signed URL that I can PUT the photo to!",
      "date_published": "2024-07-11T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/11/22-02-06/",
      "url": "https://shaky.sh/notes/2024/07/11/22-02-06/",
      "content_text": "Ok, I'm using Echo (https://echo.rknight.me/) in a GitHub action to cross post this note to my social.lol mastodon account. It's a really easy to use script, thanks @robb@social.lol!",
      "date_published": "2024-07-11T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/10/11-17-31/",
      "url": "https://shaky.sh/notes/2024/07/10/11-17-31/",
      "content_text": "Working on #POSSE stuff. This should be published to my site first, and then my now page on omg.lol (https://shaky.omg.lol/now). \n\nPushing to mastodon is still handled by micro.blog, but planning to change that next.",
      "date_published": "2024-07-10T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/08/01-26-58/",
      "url": "https://shaky.sh/notes/2024/07/08/01-26-58/",
      "content_text": "Are there no intuitive static site generators? After fighting with Eleventy yet again, I really wanna try to build my own. Part of the problem, I think, is that the docs are abysmal in every way. \n\nHacked long enough to get what I want from Eleventy for now, but I'm going to be noodling on a better model for this.",
      "date_published": "2024-07-08T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2024/07/06/23-24-53/",
      "url": "https://shaky.sh/notes/2024/07/06/23-24-53/",
      "content_text": "I haven't written notes here for close to a year, but I wanna get back to it! Just created an iOS shortcut to do so, and it's trivial with Working Copy (a git client for iOS).",
      "date_published": "2024-07-06T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/10/14-23-08/",
      "url": "https://shaky.sh/notes/2023/08/10/14-23-08/",
      "content_text": "I love that when I start Firefox after restarting my machine, it not only reopens all windows with the right tabs, but even puts the windows in the right places across multiple displays. Even minimized windows remain in the dock.",
      "date_published": "2023-08-10T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/07/02-34-56/",
      "url": "https://shaky.sh/notes/2023/08/07/02-34-56/",
      "content_text": "Bram Moolenaar is the reason I'm using Vim today. And not just because he built it. So sad to hear of his passing, my condolences to his family. \n\nhttps://shaky.sh/bram/",
      "date_published": "2023-08-07T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/06/12-56-10/",
      "url": "https://shaky.sh/notes/2023/08/06/12-56-10/",
      "content_text": "Connections Puzzle #56\n\nLove this game.\n\nhttps://www.nytimes.com/games/connections",
      "date_published": "2023-08-06T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/04/15-26-57/",
      "url": "https://shaky.sh/notes/2023/08/04/15-26-57/",
      "content_text": "I've been having fun with restyling my blog recently. Probably not fair to call it redesigning. But I did come up with a clever (?) CSS hack for styling headings. \n\nhttps://shaky.sh/css-text-decoration-and-headings/",
      "date_published": "2023-08-04T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/02/09-51-39/",
      "url": "https://shaky.sh/notes/2023/08/02/09-51-39/",
      "content_text": "Often when I'm without wifi and I come across a link to a YouTube video, I want to add it to my watch later playlist, rather than "spend" my cell data on that. The YouTube app really adds insult to injury by immediately playing an ad as I'm adding the link to the playlist.",
      "date_published": "2023-08-02T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/02/16-05-57/",
      "url": "https://shaky.sh/notes/2023/08/02/16-05-57/",
      "content_text": "Ugh, the macOS Slack client won't load anything when offline ... pretty terrible experience for 2023. Would be really useful to reference some recent messages while on this flight.",
      "date_published": "2023-08-02T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/01/13-28-34/",
      "url": "https://shaky.sh/notes/2023/08/01/13-28-34/",
      "content_text": "Working on a video about how I'm syndicating this content from my own site to both micro.blog and mastodon.",
      "date_published": "2023-08-01T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/08/01/15-12-37/",
      "url": "https://shaky.sh/notes/2023/08/01/15-12-37/",
      "content_text": "X no longer marks the spot where I wanna be sharing thoughts. Here's how I'm publishing and syndicating "notes" now: \n\nhttps://www.youtube.com/watch?v=WYqnxCFJoLE",
      "date_published": "2023-08-01T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/31/01-50-41/",
      "url": "https://shaky.sh/notes/2023/07/31/01-50-41/",
      "content_text": "Is there a privacy-conscious way to track rss feed subscriptions on a static site? It'd be cool to have some idea of how many people subscribe to a feed.\n\nProbably simplest to self-host and check out the nginx logs, I guess.",
      "date_published": "2023-07-31T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/31/15-25-15/",
      "url": "https://shaky.sh/notes/2023/07/31/15-25-15/",
      "content_text": "Generating a new Github access token for your company's private NPM repo? Don't forget to include the read:packages scope! Just doesn't work the same (read: at all) without it. Spent 10 minutes learning that lesson.",
      "date_published": "2023-07-31T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/28/18-02-49/",
      "url": "https://shaky.sh/notes/2023/07/28/18-02-49/",
      "content_text": "Just spend 30 minutes figuring out why myPOST request was getting a 400 response. Turns out I was missing the "Content-Type": "application/json" header 😅",
      "date_published": "2023-07-28T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/27/10-07-06/",
      "url": "https://shaky.sh/notes/2023/07/27/10-07-06/",
      "content_text": "Here's a note that has a UTC timestamp. Sorry for the test noise 😬",
      "date_published": "2023-07-27T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/27/17-52-49/",
      "url": "https://shaky.sh/notes/2023/07/27/17-52-49/",
      "content_text": "It's 2023. I can't believe how brittle Cypress tests still are. All front-end UI tests, for that matter.",
      "date_published": "2023-07-27T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/26/06-49-05/",
      "url": "https://shaky.sh/notes/2023/07/26/06-49-05/",
      "content_text": "Here's my first note! Manually created for now: I'm just starting to develop the system.\n\n#POSSE",
      "date_published": "2023-07-26T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/26/17-39-41/",
      "url": "https://shaky.sh/notes/2023/07/26/17-39-41/",
      "content_text": "I'm still doing Wordle most days, and also a few other pretty cool little mini-games:\n\nIdentifive: a word search puzzle with a single five-letter word.\nConnections (NYT): Make four groups of four words (Only Connect fans will love it).\nDigits (NYT): a math puzzle ... but they aren't keeping it around, it seems 🙁.\n\nIf you know of others, send them my way!",
      "date_published": "2023-07-26T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/26/22-17-11/",
      "url": "https://shaky.sh/notes/2023/07/26/22-17-11/",
      "content_text": "The first version of my custom microblogging platform is in place. This'll be the first post that, if everything works, goes through the entire flow:\n\nDrafts.app\npidge on Vercel\nstatic site repo in GitHub\nNetlify\nmicro.blog\nmastodon",
      "date_published": "2023-07-26T00:00:00Z"
    },
    {
      "id": "https://shaky.sh/notes/2023/07/26/22-42-02/",
      "url": "https://shaky.sh/notes/2023/07/26/22-42-02/",
      "content_text": "As usual, dates are pretty tricky. I wanted to record these notes in my local time zone, but now I see that causing issues on micro.blog. Tomorrow, I'll fix this to use UTC everywhere and display in local times where they makes sense.",
      "date_published": "2023-07-26T00:00:00Z"
    }
  ]
}