{
  "posts": {
    "src/content/post/spring-website-updates.mdx": {
      "contentHash": "4b01a2e0242b9871f6e24636fe5709b3d087cf8e0ed19a49a2a6a99ed234aff6",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mkgvv37nsk2q",
      "lastPublished": "2026-05-15T02:49:35.237Z",
      "slug": "spring-website-updates"
    },
    "src/content/post/building-personal-software-in-rust.mdx": {
      "contentHash": "c82d099cf754dbfb0483d49ca5101e9089d86e88ced72128c8b8002a1fd245c5",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mjvh4pgklc2q",
      "lastPublished": "2026-04-19T04:00:00.000Z",
      "slug": "building-personal-software-in-rust"
    },
    "src/content/post/indexing-standard-site.mdx": {
      "contentHash": "965ec45ab4d5c04707bea03f2e46030b62d533010c5f10a0a684784501a2c0c0",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mji5ysxzfi2h",
      "lastPublished": "2026-04-14T04:00:00.000Z",
      "slug": "indexing-standard-site"
    },
    "src/content/post/returning-to-neovim.mdx": {
      "contentHash": "ec1b41fc347faea124c432c3aa0fec4e62893c9ad4c831be65a7393025a78699",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mh5mi4ngdd2h",
      "lastPublished": "2026-03-16T04:00:00.000Z",
      "slug": "returning-to-neovim"
    },
    "src/content/post/back-to-basic.mdx": {
      "contentHash": "6a92872196e984818644e247dfcedc637629c676115dfd8f9d94a83249399dd2",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mggpic7sdd2h",
      "lastPublished": "2026-03-06T05:00:00.000Z",
      "slug": "back-to-basic"
    },
    "src/content/post/programmers-on-the-verge-of-extinction.mdx": {
      "contentHash": "5e3228a5e64439ee60c5c050dac8eb92e61e436e18b0971ce403294e530186a3",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mfv2rjkplk2h",
      "lastPublished": "2026-02-27T05:00:00.000Z",
      "slug": "programmers-on-the-verge-of-extinction"
    },
    "src/content/post/my-developer-journey.md": {
      "contentHash": "49bace7b3b4c147edb9c05631652d0b39e3a8ba6bc6886988094f49e53793d04",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvusmkjn2v",
      "lastPublished": "2023-02-28T05:00:00.000Z",
      "slug": "my-developer-journey"
    },
    "src/content/post/48-hours-disconnected.mdx": {
      "contentHash": "68439789addacc60f56c5537833a7a7af3603c7b31eb94a67e498556c60c3152",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvusirgn2v",
      "lastPublished": "2023-05-02T04:00:00.000Z",
      "slug": "48-hours-disconnected"
    },
    "src/content/post/why-i-learned-vim.mdx": {
      "contentHash": "2cca56786780765264aee6b88b0b1fb6e5a527b64413b39f99170426907800c0",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvurxbuf2v",
      "lastPublished": "2024-01-05T05:00:00.000Z",
      "slug": "why-i-learned-vim"
    },
    "src/content/post/a-terminal-based-workflow.mdx": {
      "contentHash": "af3f1e81963bd79bb457ef1f39279ac1296b4b1023864985d6ff6cc03b20e701",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvurvdef2v",
      "lastPublished": "2024-03-06T05:00:00.000Z",
      "slug": "a-terminal-based-workflow"
    },
    "src/content/post/leaving-neovim-for-zed.mdx": {
      "contentHash": "3a3137e43bca53d25fe6776d6a7dc7981183818ff2ca64196973d4d45cde7a23",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvurqlyn2v",
      "lastPublished": "2024-08-16T04:00:00.000Z",
      "slug": "leaving-neovim-for-zed"
    },
    "src/content/post/building-a-guestbook-with-pglite-clerk-and-pinata.mdx": {
      "contentHash": "5c4f20fe4803399413736294f15f2becc7499fa1ecbc95dc016d0f203f8f2c6e",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvurhwnn2v",
      "lastPublished": "2024-09-24T04:00:00.000Z",
      "slug": "building-a-guestbook-with-pglite-clerk-and-pinata"
    },
    "src/content/post/why-you-should-learn-jq-in-2024.mdx": {
      "contentHash": "0e9b26031a628883754700efda0a7dec48a72fd2519f2949e4e98881864da00c",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvurdwpv2v",
      "lastPublished": "2024-10-12T04:00:00.000Z",
      "slug": "why-you-should-learn-jq-in-2024"
    },
    "src/content/post/vibe-coding-and-kodak-cameras.mdx": {
      "contentHash": "43986b7c0b1501efb6f9e9a2e7af560fe6ff6d3ac232f0be79bd3256b0d5b3eb",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvur3ysv2v",
      "lastPublished": "2025-03-30T04:00:00.000Z",
      "slug": "vibe-coding-and-kodak-cameras"
    },
    "src/content/post/learning-rust-with-ai.mdx": {
      "contentHash": "b0a73bd8748391d7c158aa7553263d00e9aba7292f6f2f331fab5b7b21c97eca",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuqzawf2v",
      "lastPublished": "2025-07-11T04:00:00.000Z",
      "slug": "learning-rust-with-ai"
    },
    "src/content/post/the-meaning-of-life.mdx": {
      "contentHash": "e21ec45efa25aaf09fcdafb2cd445cd36cd0fd46ca9779f04db315122aa7a937",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuqqzav2v",
      "lastPublished": "2025-08-15T04:00:00.000Z",
      "slug": "the-meaning-of-life"
    },
    "src/content/post/turning-natspec-into-markdown-ui.mdx": {
      "contentHash": "10de6adbe00094335735ae5feea4ecce54dda53b7d7296cf6d3cadc244731a2a",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuqmxen2v",
      "lastPublished": "2025-08-31T04:00:00.000Z",
      "slug": "turning-natspec-into-markdown-ui"
    },
    "src/content/post/resurrect-the-old-web.mdx": {
      "contentHash": "bf9d3913e7e19884675b125e96d9ead8fde5c14084b10252e5e6ac034b8c0d00",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuqbfav2v",
      "lastPublished": "2026-05-15T02:49:36.334Z",
      "slug": "resurrect-the-old-web"
    },
    "src/content/post/when-ai-gives-the-ick.mdx": {
      "contentHash": "6c8cec72f93d9cc10c98c8741fdd7a1b5c8a40f79f2ac5821f6a0e636267ec7c",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuq2x752v",
      "lastPublished": "2026-06-01T12:28:34.949Z",
      "slug": "when-ai-gives-the-ick"
    },
    "src/content/post/programming-bowls.mdx": {
      "contentHash": "3390a2dde7b324f62b325db04fa187a01a21cf635dc2283e6a89e2bb72afc9ef",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuposjn2v",
      "lastPublished": "2025-10-16T04:00:00.000Z",
      "slug": "programming-bowls"
    },
    "src/content/post/concerning-omarchy-and-distro-philosophy.mdx": {
      "contentHash": "8c597d97e15b3a503fd0d77a7789c76599c2f537b7e1be6a29627ee3b7af8c55",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvupkguv2v",
      "lastPublished": "2025-11-09T05:00:00.000Z",
      "slug": "concerning-omarchy-and-distro-philosophy"
    },
    "src/content/post/introducing-alcove.mdx": {
      "contentHash": "27c4cca04508c69748c0e908db586f2fb411187ef5f2f22a0a7efd10c3252f77",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvupi6mf2v",
      "lastPublished": "2026-05-15T02:49:36.179Z",
      "slug": "introducing-alcove"
    },
    "src/content/post/how-gemini-gives-me-hope.mdx": {
      "contentHash": "61a7207305c9e88a1f4da8f36bedfeb474852a1de3913f8f0d427f68cd1ab1ed",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvupdcef2v",
      "lastPublished": "2025-12-18T05:00:00.000Z",
      "slug": "how-gemini-gives-me-hope"
    },
    "src/content/post/2026-site-plans.mdx": {
      "contentHash": "eab873c37ecc554a2e86edb1d1a7f8b1c59bd734079063ed85b7e0359eb64019",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvup73lv2v",
      "lastPublished": "2026-05-15T02:49:35.989Z",
      "slug": "2026-site-plans"
    },
    "src/content/post/using-atproto-for-posse.mdx": {
      "contentHash": "bd866cc1c898e340ac492536e32ab1828d6f134ca8e4088ac8abd51d6b226e8a",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvup2mzf2v",
      "lastPublished": "2026-05-15T02:49:35.787Z",
      "slug": "using-atproto-for-posse"
    },
    "src/content/post/standard-site-the-publishing-gateway.mdx": {
      "contentHash": "728dba6e10b855e233f29fdd8450cb81209c469889c29eba4c36481bb74fa224",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuovxm52v",
      "lastPublished": "2026-05-15T02:49:35.607Z",
      "slug": "standard-site-the-publishing-gateway"
    },
    "src/content/post/atproto-starter.mdx": {
      "contentHash": "a9503d1d76f357a0c8b7892949aaf2f76fec168ff3091f4c7996651be4ef80d4",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mcxxqjgspk26",
      "lastPublished": "2026-01-21T05:00:00.000Z",
      "slug": "atproto-starter"
    },
    "src/content/post/introducing-sequoia.mdx": {
      "contentHash": "82e9846c8d729674e3089d35d1d7a0169a9691a67d19485c83a91af633aa77ce",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mdzvuohmmn2v",
      "lastPublished": "2026-05-15T02:49:35.401Z",
      "slug": "introducing-sequoia"
    },
    "src/content/post/wisdom-from-a-clear-pen.mdx": {
      "contentHash": "f59c764f7110d22fc2dea4cac29de32adc9c886e523d2ababa5d3755d7a22b40",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3ml5jocdgdc2q",
      "lastPublished": "2026-05-15T02:49:35.066Z",
      "slug": "wisdom-from-a-clear-pen"
    },
    "src/content/post/feeds.mdx": {
      "contentHash": "827ebf0b0eabe6cb7d4f302f232dca2d0a65ff5abbb08c17765c0a34dbe6e429",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mlud3oypqs2q",
      "lastPublished": "2026-05-15T02:49:34.555Z",
      "slug": "feeds"
    },
    "src/content/post/how-to-hate-ai.mdx": {
      "contentHash": "797ad69f1c2ada30e0d4e4ea0621326ee91fb6af7f94651a91f5aa967a78e61f",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mmk4tz57tk2q",
      "lastPublished": "2026-05-23T18:56:28.526Z",
      "slug": "how-to-hate-ai"
    },
    "src/content/post/api-calls-in-ios-shortcuts.mdx": {
      "contentHash": "27c1dd88f40d25f3b717389708b44691e4cf777dfd6c5eec958a9538c961b102",
      "atUri": "at://did:plc:ia2zdnhjaokf5lazhxrmj6eu/site.standard.document/3mna3eogq3c2y",
      "lastPublished": "2026-06-01T12:28:34.548Z",
      "slug": "api-calls-in-ios-shortcuts"
    }
  }
}