<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>galah</title><description>blog.brianfarnhill.com — articles, notes and links.</description><link>https://blog.brianfarnhill.com/</link><item><title>cdk synth is doing more work than most people give it credit for — every archite…</title><link>https://blog.brianfarnhill.com/notes/2026-02-10-coffee-and-cdk-synth/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/notes/2026-02-10-coffee-and-cdk-synth/</guid><description>cdk synth is doing more work than most people give it credit for — every architectural rule this project cares about gets checked before a single byte reaches AWS. Nice to have the failure show up on a laptop instead of in a rollback.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate><category>aws</category></item><item><title>The Case For Boring Technology</title><link>https://blog.brianfarnhill.com/links/the-case-for-boring-technology/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/links/the-case-for-boring-technology/</guid><description>The &quot;innovation tokens&quot; framing is doing a lot of work here: spend them on the thing that&apos;s actually novel about your project, and default to boring for everything else. This project spends its tokens on the publishing pipeline, not the hosting layer.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>architecture</category></item><item><title>Static Sites Age Better Than Frameworks</title><link>https://blog.brianfarnhill.com/posts/static-sites-age-better-than-frameworks/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/posts/static-sites-age-better-than-frameworks/</guid><description>The framework a five-year-old blog was built on is usually the first thing that has to be dragged forward before anything else can change. Dependency upgrades cascade, a plugin stops being maintained, and eventually a &quot;quick post&quot; turns into an afternoon fighting the build. A sta…</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>architecture</category></item><item><title>Worth Reading This Week</title><link>https://blog.brianfarnhill.com/links/worth-reading-this-week/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/links/worth-reading-this-week/</guid><description>A roundup that&apos;s worth the click purely for the linked bibliography at the bottom — half of it ended up in this project&apos;s own reading list.</description><pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate><category>meta</category></item><item><title>Notes don&apos;t get a title, and that&apos;s the entire point. If it needed a headline it…</title><link>https://blog.brianfarnhill.com/notes/2026-01-22-a-note-about-notes/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/notes/2026-01-22-a-note-about-notes/</guid><description>Notes don&apos;t get a title, and that&apos;s the entire point. If it needed a headline it would have been an article — this is just what &quot;I don&apos;t have anything more to say than this&quot; looks like.</description><pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate><category>meta</category></item><item><title>Three Post Types And Why They Exist</title><link>https://blog.brianfarnhill.com/posts/three-post-types-and-why-they-exist/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/posts/three-post-types-and-why-they-exist/</guid><description>Most blogs have one shape: the long-form post, written and published in a single sitting. That shape is also the reason most blogs go quiet — the bar for &quot;worth publishing&quot; creeps up until nothing clears it. This one has three: - Articles — the long-form pieces, like this one. -…</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>meta</category></item><item><title>A Great Piece On Static Site Architecture</title><link>https://blog.brianfarnhill.com/links/a-great-piece-on-static-site-architecture/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/links/a-great-piece-on-static-site-architecture/</guid><description>Good breakdown of why &quot;static&quot; doesn&apos;t have to mean &quot;no logic&quot; — it just means the logic runs at build time instead of on every request. Matches almost exactly how this blog&apos;s own publishing pipeline is shaped.</description><pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate><category>architecture</category></item><item><title>Building A Blog With No Servers</title><link>https://blog.brianfarnhill.com/posts/building-a-blog-with-no-servers/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/posts/building-a-blog-with-no-servers/</guid><description>I wanted a blog that costs almost nothing to run and needs almost nothing from me between posts. No server to patch, no database to back up, no container to keep warm. The result is a static site on CloudFront, backed by S3, with Lambda used only where logic is genuinely required…</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>meta</category><category>aws</category></item><item><title>Shipped the CloudFront Function that turns /posts/some-slug/ into a real S3 look…</title><link>https://blog.brianfarnhill.com/notes/2026-01-05-shipped-the-clean-urls-function/</link><guid isPermaLink="true">https://blog.brianfarnhill.com/notes/2026-01-05-shipped-the-clean-urls-function/</guid><description>Shipped the CloudFront Function that turns /posts/some-slug/ into a real S3 lookup today. Small file, big relief — private buckets and clean URLs don&apos;t get along without it.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate><category>meta</category></item></channel></rss>