<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://allan.ltd/</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://allan.ltd/blog</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allan.ltd/blog/disclosure-is-a-component-now</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/disclosure-is-a-component-now/cover.jpg</image:loc>
      <image:title>Disclosure is a component now, so put it in the system</image:title>
      <image:caption>A sine curve crossing a centre rule</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/dont-build-on-one-model</loc>
    <lastmod>2026-08-14</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/dont-build-on-one-model/cover.jpg</image:loc>
      <image:title>Ten models in two weeks is an architecture warning</image:title>
      <image:caption>A grid of small squares with a diagonal highlighted</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/being-citable-not-just-crawlable</loc>
    <lastmod>2026-08-13</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/being-citable-not-just-crawlable/cover.jpg</image:loc>
      <image:title>Being citable is a different job from being crawlable</image:title>
      <image:caption>Nested rectangles on a blueprint grid</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/your-spa-is-invisible-to-ai</loc>
    <lastmod>2026-08-12</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/your-spa-is-invisible-to-ai/cover.jpg</image:loc>
      <image:title>Your single-page app is invisible to the systems answering questions about you</image:title>
      <image:caption>Diagonal rule lines on a blueprint grid</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/ai-fluency-is-now-a-hiring-filter</loc>
    <lastmod>2026-08-11</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/ai-fluency-is-now-a-hiring-filter/cover.jpg</image:loc>
      <image:title>AI fluency became a hiring filter, and portfolios have not caught up</image:title>
      <image:caption>Concentric circles on a blueprint grid</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/designing-for-the-agent-that-acts</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/designing-for-the-agent-that-acts/cover.jpg</image:loc>
      <image:title>Designing for the agent that acts, not the one that answers</image:title>
      <image:caption>A sine curve crossing a centre rule</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/components-an-agent-can-reason-about</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/components-an-agent-can-reason-about/cover.jpg</image:loc>
      <image:title>Components an agent can reason about</image:title>
      <image:caption>A grid of small squares with one row highlighted</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/crawled-a-lot-referred-nothing</loc>
    <lastmod>2026-08-08</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/crawled-a-lot-referred-nothing/cover.jpg</image:loc>
      <image:title>Crawled a lot, referred nothing</image:title>
      <image:caption>Nested rectangles on a blueprint grid</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/who-decided-your-site-blocks-ai</loc>
    <lastmod>2026-08-07</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/who-decided-your-site-blocks-ai/cover.jpg</image:loc>
      <image:title>I found out my own site was blocking AI crawlers, and I never chose it</image:title>
      <image:caption>Diagonal rule lines on a blueprint grid</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/the-ai-act-is-a-ui-requirement</loc>
    <lastmod>2026-08-06</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/the-ai-act-is-a-ui-requirement/cover.jpg</image:loc>
      <image:title>The AI Act stopped being a legal problem and became a UI requirement</image:title>
      <image:caption>Concentric circles on a blueprint grid</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/testing-ai-features</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/testing-ai-features/cover.jpg</image:loc>
      <image:title>Testing a feature that answers differently every time</image:title>
      <image:caption>Rows of laboratory test tubes in a rack</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/ai-features-have-a-unit-cost</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/ai-features-have-a-unit-cost/cover.jpg</image:loc>
      <image:title>AI features have a unit cost, and design decides it</image:title>
      <image:caption>Dials on a mechanical electricity meter</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/week-two-problem</loc>
    <lastmod>2026-07-30</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/week-two-problem/cover.jpg</image:loc>
      <image:title>Why AI products lose people in week two</image:title>
      <image:caption>Empty chairs outside a cafe in the morning</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/the-accessibility-deadline</loc>
    <lastmod>2026-07-27</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/the-accessibility-deadline/cover.jpg</image:loc>
      <image:title>The accessibility deadline that already passed</image:title>
      <image:caption>Tactile paving strip on a pavement</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/documentation-agents-read</loc>
    <lastmod>2026-07-23</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/documentation-agents-read/cover.jpg</image:loc>
      <image:title>Writing documentation that an agent will read</image:title>
      <image:caption>An open technical manual with diagrams</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/designers-are-being-sorted</loc>
    <lastmod>2026-07-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/designers-are-being-sorted/cover.jpg</image:loc>
      <image:title>What actually happened to design roles in the last two years</image:title>
      <image:caption>Stacked vintage metal filing cabinets</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/your-design-system-isnt-ready-for-ai</loc>
    <lastmod>2026-07-20</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/your-design-system-isnt-ready-for-ai/cover.jpg</image:loc>
      <image:title>Your design system isn't ready for AI agents</image:title>
      <image:caption>Overlapping architectural blueprint drawings</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/ai-made-imitation-free</loc>
    <lastmod>2026-07-15</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/ai-made-imitation-free/cover.jpg</image:loc>
      <image:title>When visual style stops being a moat</image:title>
      <image:caption>A wooden box of rubber alphabet stamps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/screens-are-becoming-an-output</loc>
    <lastmod>2026-07-13</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/screens-are-becoming-an-output/cover.jpg</image:loc>
      <image:title>Designing for generative UI: constraints instead of screens</image:title>
      <image:caption>Arched windows and the shadow of a bell on a wall</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/vibe-coding-isnt-the-flex</loc>
    <lastmod>2026-07-08</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/vibe-coding-isnt-the-flex/cover.jpg</image:loc>
      <image:title>Reviewing AI-generated code: what to keep and what to delete</image:title>
      <image:caption>A person carving a piece of wood by hand</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/seven-tools-and-no-faster</loc>
    <lastmod>2026-07-06</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/seven-tools-and-no-faster/cover.jpg</image:loc>
      <image:title>How to tell whether your AI tools actually made the team faster</image:title>
      <image:caption>Spanners hanging in a row on a workshop wall</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/clients-are-doing-the-math</loc>
    <lastmod>2026-06-30</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/clients-are-doing-the-math/cover.jpg</image:loc>
      <image:title>Pricing design work when AI made you faster</image:title>
      <image:caption>Close-up of old typewriter keys</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/half-your-users-arent-human</loc>
    <lastmod>2026-06-26</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/half-your-users-arent-human/cover.jpg</image:loc>
      <image:title>Designing interfaces that AI agents can actually use</image:title>
      <image:caption>An industrial robot arm on a workbench</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/if-your-ai-cant-say-im-not-sure</loc>
    <lastmod>2026-06-24</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/if-your-ai-cant-say-im-not-sure/cover.jpg</image:loc>
      <image:title>Designing for uncertainty in AI features</image:title>
      <image:caption>A footbridge disappearing into thick fog</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/the-most-impressive-thing-is-boring</loc>
    <lastmod>2026-06-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/the-most-impressive-thing-is-boring/cover.jpg</image:loc>
      <image:title>The case for calm interfaces in AI products</image:title>
      <image:caption>A plain white building against a blue sky</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/micro-interactions-are-back</loc>
    <lastmod>2026-06-15</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/micro-interactions-are-back/cover.jpg</image:loc>
      <image:title>Why interaction detail matters more than layout now</image:title>
      <image:caption>Flat grey interface cards on the left, the same cards lit and animating under a fingertip on the right</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/ai-killed-one-design-job</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/ai-killed-one-design-job/cover.jpg</image:loc>
      <image:title>The production tier of design work is gone</image:title>
      <image:caption>The word PLEASE in stamped letterforms</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/prototype-to-decide</loc>
    <lastmod>2026-06-03</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/prototype-to-decide/cover.jpg</image:loc>
      <image:title>Prototyping to make a decision, not to get approval</image:title>
      <image:caption>A craft table covered in model-making supplies</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/your-design-tokens-are-an-api</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/your-design-tokens-are-an-api/cover.jpg</image:loc>
      <image:title>Naming design tokens for machine consumers</image:title>
      <image:caption>Paint colour swatches spread across a table</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/nobody-cares-about-your-pixels</loc>
    <lastmod>2026-05-26</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/nobody-cares-about-your-pixels/cover.jpg</image:loc>
      <image:title>What belongs in a design portfolio now that polish is free</image:title>
      <image:caption>Film negatives on a lightbox being scanned</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/we-stopped-selling-hours</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/we-stopped-selling-hours/cover.jpg</image:loc>
      <image:title>Moving a studio off hourly billing: what broke</image:title>
      <image:caption>Open watch face with the gears exposed</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/personalized-doesnt-mean-good</loc>
    <lastmod>2026-05-14</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/personalized-doesnt-mean-good/cover.jpg</image:loc>
      <image:title>The limits of adaptive interfaces</image:title>
      <image:caption>A corridor of identical repeating doors</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/small-team-shouldnt-ship-like-this</loc>
    <lastmod>2026-05-07</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/small-team-shouldnt-ship-like-this/cover.jpg</image:loc>
      <image:title>Why small senior teams now ship like large ones</image:title>
      <image:caption>Hands working with tools at a bench</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/ai-slop-has-a-look</loc>
    <lastmod>2026-04-30</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/ai-slop-has-a-look/cover.jpg</image:loc>
      <image:title>The visual signature of generated work, and how to break it</image:title>
      <image:caption>A row of identical white cones</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/blog/the-handoff-was-never-the-problem</loc>
    <lastmod>2026-04-23</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://allan.ltd/blog-media/the-handoff-was-never-the-problem/cover.jpg</image:loc>
      <image:title>Design handoff: the specification was never the problem</image:title>
      <image:caption>Suspension bridge cables against a pale sky</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://allan.ltd/privacy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.2</priority>
  </url>
</urlset>
