<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Orvain UI</title>
    <link>https://orvain.dev/blogs</link>
    <description>Engineering writing on design systems, design tokens, bundle discipline and the Model Context Protocol.</description>
    <language>en</language>
    <atom:link href="https://orvain.dev/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Inside the Orvain MCP server</title>
      <link>https://orvain.dev/blogs/inside-the-orvain-mcp-server</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/inside-the-orvain-mcp-server</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <description>Why a schema an assistant can query beats a training snapshot, and what a hosted MCP endpoint changes about generated UI code.</description>
    </item>
    <item>
      <title>Design systems designers and engineers share</title>
      <link>https://orvain.dev/blogs/design-system-designers-and-engineers-share</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/design-system-designers-and-engineers-share</guid>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <category>Design</category>
      <description>A design system only works when both sides trust it. How a Figma kit and a code library drift apart, and what keeps them together.</description>
    </item>
    <item>
      <title>White-label tokens from one config file</title>
      <link>https://orvain.dev/blogs/white-label-tokens-one-config</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/white-label-tokens-one-config</guid>
      <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <description>Colours, radii, spacing and type resolve from one config. How a token pipeline turns a rebrand into a single edit rather than a sweep.</description>
    </item>
    <item>
      <title>Prompt to production in Cursor and Claude Code</title>
      <link>https://orvain.dev/blogs/prompt-to-production-cursor-claude-code</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/prompt-to-production-cursor-claude-code</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <category>Guides</category>
      <description>A working loop for generating a screen in your editor and getting it typed, themed and reviewed before any of it reaches a branch.</description>
    </item>
    <item>
      <title>Orvain 1.4 preview: Vue and 40 new blocks</title>
      <link>https://orvain.dev/blogs/orvain-1-4-vue-support-40-blocks</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/orvain-1-4-vue-support-40-blocks</guid>
      <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
      <category>Product Updates</category>
      <description>Vue support is coming alongside React, with forty new blocks. A preview of 1.4 while it is being built, and what a second framework target changes underneath.</description>
    </item>
    <item>
      <title>Building RSC-safe components to a 12 kB budget</title>
      <link>https://orvain.dev/blogs/rsc-safe-components-under-12kb</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/rsc-safe-components-under-12kb</guid>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <description>Tree-shaking, the client boundary and zero runtime CSS: the three decisions that decide how much JavaScript a component library costs, and the budget Orvain&apos;s core is built to.</description>
    </item>
    <item>
      <title>Accessible components without guesswork</title>
      <link>https://orvain.dev/blogs/accessible-components-without-guesswork</link>
      <guid isPermaLink="true">https://orvain.dev/blogs/accessible-components-without-guesswork</guid>
      <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
      <category>Design</category>
      <description>Keyboard paths, focus ownership and announcements are contracts a component owes its user, not a pass somebody schedules for later.</description>
    </item>
  </channel>
</rss>
