<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Reef - the Astro theme for people who write</title>
    <link>https://reef.alohapixel.app/</link>
    <description>Every post published on Reef Notes, newest first: build logs, performance work, typography, and the business of a small studio.</description>
    <language>en-us</language>
    <atom:link href="https://reef.alohapixel.app/rss.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Tue, 16 Jun 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>A type scale you can defend</title>
      <link>https://reef.alohapixel.app/blog/a-type-scale-you-can-defend/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/a-type-scale-you-can-defend/</guid>
      <description>Ratios are easy to pick and mostly wrong. A scale earns its place when every step has a job on a real page: five sizes, a measure that holds at 320 and at 1440 pixels, and clamp() written so a designer can read it out loud.</description>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <category>Typography</category>
      <dc:creator>Tomas Abaroa</dc:creator>
    </item>
    <item>
      <title>Measuring what the reader actually feels</title>
      <link>https://reef.alohapixel.app/blog/measuring-what-the-reader-feels/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/measuring-what-the-reader-feels/</guid>
      <description>Lab tools measure a robot on fibre. Field data measures your readers on a bus. Here is the smallest honest setup we could build: three metrics, one endpoint, no third party script, and the week our two sets of numbers disagreed by two and a half seconds.</description>
      <pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
      <category>Performance</category>
      <dc:creator>Noor Benali</dc:creator>
    </item>
    <item>
      <title>What a good brief looks like</title>
      <link>https://reef.alohapixel.app/blog/what-a-good-brief-looks-like/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/what-a-good-brief-looks-like/</guid>
      <description>Most projects that went wrong were already wrong on page one. This is the brief we now refuse to start without: who decides, what already exists, what counts as done, and the three questions that reveal a budget before anyone has to say a number.</description>
      <pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate>
      <category>Studio</category>
      <dc:creator>Mara Lindqvist</dc:creator>
    </item>
    <item>
      <title>Dark mode is a content problem</title>
      <link>https://reef.alohapixel.app/blog/dark-mode-is-a-content-problem/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/dark-mode-is-a-content-problem/</guid>
      <description>Inverting a palette is an afternoon of work. The hard part is everything the palette does not control: photographs, screenshots, charts, embedded video, and the one brand colour that stops meaning anything once the background goes dark.</description>
      <pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate>
      <category>Design</category>
      <dc:creator>Tomas Abaroa</dc:creator>
    </item>
    <item>
      <title>Content collections are a contract, not a folder</title>
      <link>https://reef.alohapixel.app/blog/content-collections-are-a-contract/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/content-collections-are-a-contract/</guid>
      <description>A schema that fails the build is worth more than a CMS that lets anyone publish a broken page. What we validate in Astro, what we deliberately leave alone, and the three rules that keep a Zod schema from slowly turning into a second CMS.</description>
      <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
      <category>Craft</category>
      <dc:creator>Mara Lindqvist</dc:creator>
    </item>
    <item>
      <title>The real cost of a web font</title>
      <link>https://reef.alohapixel.app/blog/the-real-cost-of-a-web-font/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/the-real-cost-of-a-web-font/</guid>
      <description>A variable font is not automatically cheaper than two static weights, subsetting saves less than people think, and the expensive part is usually the fallback nobody designed. What a typeface actually costs, measured in bytes, requests and reflow.</description>
      <pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate>
      <category>Typography</category>
      <dc:creator>Tomas Abaroa</dc:creator>
    </item>
    <item>
      <title>A performance budget that survives contact with a client</title>
      <link>https://reef.alohapixel.app/blog/a-performance-budget-that-survives-contact/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/a-performance-budget-that-survives-contact/</guid>
      <description>A budget is not a Lighthouse score and it is not a Slack message. Here is the one we now write into the contract: four numbers, the device they are measured on, and the sentence that decides what happens when someone asks for a video header in week nine.</description>
      <pubDate>Tue, 21 Oct 2025 00:00:00 GMT</pubDate>
      <category>Performance</category>
      <dc:creator>Noor Benali</dc:creator>
    </item>
    <item>
      <title>Writing HTML that ages well</title>
      <link>https://reef.alohapixel.app/blog/writing-html-that-ages-well/</link>
      <guid isPermaLink="true">https://reef.alohapixel.app/blog/writing-html-that-ages-well/</guid>
      <description>We rebuilt a site we first shipped in 2016, and the markup that survived was never the clever markup. What holds up: elements chosen for meaning, state left where the browser can see it, and a hard limit on what a class name is allowed to know.</description>
      <pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate>
      <category>Craft</category>
      <dc:creator>Mara Lindqvist</dc:creator>
    </item>
  </channel>
</rss>
