<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Elliot Vance — Writing</title>
    <link>https://elliotvance.dev/blog.html</link>
    <description>Essays on web performance, PostgreSQL, design systems, accessibility and the operational habits behind software that stays up.</description>
    <language>en-gb</language>
    <copyright>Elliot Vance</copyright>
    <managingEditor>hello@elliotvance.dev (Elliot Vance)</managingEditor>
    <webMaster>hello@elliotvance.dev (Elliot Vance)</webMaster>
    <generator>hand-written static HTML</generator>
    <lastBuildDate>Fri, 18 Apr 2025 09:00:00 +0200</lastBuildDate>
    <ttl>1440</ttl>
    <atom:link href="https://elliotvance.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <image>
      <url>https://elliotvance.dev/assets/img/icon-512.png</url>
      <title>Elliot Vance — Writing</title>
      <link>https://elliotvance.dev/blog.html</link>
      <width>512</width>
      <height>512</height>
    </image>

    <item>
      <title>Boring infrastructure is a feature</title>
      <link>https://elliotvance.dev/blog/boring-infrastructure.html</link>
      <guid isPermaLink="true">https://elliotvance.dev/blog/boring-infrastructure.html</guid>
      <pubDate>Fri, 18 Apr 2025 09:00:00 +0200</pubDate>
      <category>Engineering</category>
      <description>Every novel technology you add is something you will one day debug at 3am, with no documentation and eleven people asking whether it is DNS. How I decide what earns a place in a production system, and what novelty actually costs.</description>
    </item>

    <item>
      <title>Shipping a design system in six weeks</title>
      <link>https://elliotvance.dev/blog/design-system-in-six-weeks.html</link>
      <guid isPermaLink="true">https://elliotvance.dev/blog/design-system-in-six-weeks.html</guid>
      <pubDate>Thu, 06 Mar 2025 09:00:00 +0100</pubDate>
      <category>Design systems</category>
      <description>How a three-person team replaced four competing button components with 64 documented ones, why the token layer mattered more than the components, and the week where it nearly fell apart.</description>
    </item>

    <item>
      <title>A performance budget you will actually keep</title>
      <link>https://elliotvance.dev/blog/performance-budget.html</link>
      <guid isPermaLink="true">https://elliotvance.dev/blog/performance-budget.html</guid>
      <pubDate>Wed, 22 Jan 2025 09:00:00 +0100</pubDate>
      <category>Performance</category>
      <description>Most performance budgets die in a spreadsheet because nobody owns the number and nothing blocks the merge. The version that survived two years of feature work, plus the CI job that enforces it.</description>
    </item>

    <item>
      <title>Cascade layers changed how I write CSS</title>
      <link>https://elliotvance.dev/blog/cascade-layers.html</link>
      <guid isPermaLink="true">https://elliotvance.dev/blog/cascade-layers.html</guid>
      <pubDate>Thu, 14 Nov 2024 09:00:00 +0100</pubDate>
      <category>CSS</category>
      <description>Twelve years of fighting specificity, solved by an at-rule I ignored for two years because it sounded like a build-tool feature. How I structure a stylesheet now, and what I deleted to get there.</description>
    </item>

    <item>
      <title>The five Postgres indexes I actually use</title>
      <link>https://elliotvance.dev/blog/postgres-indexes.html</link>
      <guid isPermaLink="true">https://elliotvance.dev/blog/postgres-indexes.html</guid>
      <pubDate>Mon, 30 Sep 2024 09:00:00 +0200</pubDate>
      <category>Databases</category>
      <description>Not a tour of everything the manual lists: the five index types that earn their place in production, when each one is the wrong answer, and how to find the indexes that have become dead weight.</description>
    </item>

    <item>
      <title>An accessibility audit in one afternoon</title>
      <link>https://elliotvance.dev/blog/accessibility-afternoon.html</link>
      <guid isPermaLink="true">https://elliotvance.dev/blog/accessibility-afternoon.html</guid>
      <pubDate>Mon, 12 Aug 2024 09:00:00 +0200</pubDate>
      <category>Accessibility</category>
      <description>You do not need a consultancy to find the first eighty percent of accessibility problems. The four-hour pass that caught 212 issues across a fintech product, in the order that makes the findings fixable.</description>
    </item>
  </channel>
</rss>
