<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Journal — Tsetso Nikolov</title>
    <link>https://nikolov.design/blog</link>
    <atom:link href="https://nikolov.design/feed.xml" rel="self" type="application/rss+xml" />
    <description>Notes and writing on design, product and technology by Tsetso Nikolov.</description>
    <language>en</language>
    <lastBuildDate>Sat, 04 Jul 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>This site was designed to be read by machines</title>
      <link>https://nikolov.design/blog/this-site-was-designed-to-be-read-by-machines</link>
      <guid isPermaLink="true">https://nikolov.design/blog/this-site-was-designed-to-be-read-by-machines</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <description>The most frequent visitor to this website isn't human. That changes what design means — and it may be the best thing to happen to our profession in twenty years.</description>
      <content:encoded><![CDATA[<article><h2>The visitor without eyes</h2><p>The most frequent visitor to this website isn't human. It's a machine — a crawler sent by ChatGPT, Perplexity or Claude, reading these pages so it can answer questions about me that I will never see being asked.</p><p>That sentence would have sounded like science fiction when I started my career. Today it's just how the web works. When someone asks an AI &quot;who is Tsetso Nikolov?&quot;, the answer is assembled from whatever machines managed to read. If they read nothing, I don't exist.</p><h2>What a machine sees when it opens a website</h2><p>Here's the uncomfortable part. Most modern websites — beautifully designed, carefully built — are invisible to these visitors. They're built as JavaScript applications: the browser downloads an empty page and the content appears only after code runs. Humans never notice. But most AI crawlers don't run that code. They open the page and see a blank wall.</p><p>I tested this site the way a bot would: request the page, read the raw response. Everything had to be there — the text, the structure, the meaning — before any code runs. If it wasn't, no amount of good writing would matter, because nobody's reading a page they can't see.</p><h2>Designing for a reader that reads differently</h2><p>Machines don't browse. They don't scroll, get curious, or give you a second chance. They take pages apart into passages and judge each one alone. So this site is written so that every section answers a question by itself, without needing the paragraph above it.</p><p>There's also a quieter layer, invisible to human visitors. A structured description that tells machines, in their own format, who I am, what I do, and which LinkedIn profile is mine — the machine version of a firm handshake and a business card. And a plain-text file, llms.txt, that works like a cover letter for AI systems: here's what this site is, here's what's worth reading.</p><p>None of this changed how the site looks. That's the point. Designing for machines isn't a different aesthetic — it's a second audience, standing quietly behind the first. We've done this before: designing for screen readers made the web better for everyone. This is the same discipline with a new reader.</p><h2>A new era for the oldest job in design</h2><p>Our job has never really been about pixels. It's about making things understandable — to someone, or now, to something. For twenty years we designed for screens and the people looking at them. Now we design for readers without eyes, interfaces without pixels, and conversations we'll never witness.</p><p>I find that genuinely exciting. The designer has always stood between art and technology, translating one to the other. That position just became more valuable, not less. The tools will keep changing. The job — making meaning legible — hasn't changed since someone first carved a sign above a shop door.</p><p>We live in the future. It reads.</p></article>]]></content:encoded>
    </item>
  </channel>
</rss>
