<!DOCTYPE html><html lang="en" class="inter_7b064e0d-module__MOT0tq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=640&amp;q=75&amp;fm=webp 640w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=750&amp;q=75&amp;fm=webp 750w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=828&amp;q=75&amp;fm=webp 828w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1080&amp;q=75&amp;fm=webp 1080w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1200&amp;q=75&amp;fm=webp 1200w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1920&amp;q=75&amp;fm=webp 1920w" imageSizes="(max-width: 768px) 100vw, 1024px" fetchPriority="high"/><link rel="stylesheet" href="/_next/static/chunks/1br_htvux8b86.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2397lih9amjkz.js"/><script src="/_next/static/chunks/1_0v6exngdege.js" async=""></script><script src="/_next/static/chunks/26leodf0a3dzz.js" async=""></script><script src="/_next/static/chunks/3eezpr2sj3odv.js" async=""></script><script src="/_next/static/chunks/turbopack-1gvgyld7bkt0i.js" async=""></script><script src="/_next/static/chunks/3mzlyx1l53jq5.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><script src="/_next/static/chunks/2mnr3lt7l5jd1.js" async=""></script><script src="/_next/static/chunks/2hvsg5fpwjoo1.js" async=""></script><script src="/_next/static/chunks/15_isjt4dijyg.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://images.ctfassets.net"/><meta name="theme-color" content="#1E3A8A"/><title>Be Useful.</title><meta name="description" content="Content &amp; Code, with a little help from Generative AI."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="canonical" href="https://bulentyusuf.com"/><meta property="og:title" content="Be Useful."/><meta property="og:description" content="Content &amp; Code, with a little help from Generative AI."/><meta property="og:url" content="https://bulentyusuf.com"/><meta property="og:site_name" content="Be Useful."/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://bulentyusuf.com/be_useful.jpg"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Be Useful."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Be Useful."/><meta name="twitter:description" content="Content &amp; Code, with a little help from Generative AI."/><meta name="twitter:image" content="https://bulentyusuf.com/be_useful.jpg"/><link rel="icon" href="/favicon.ico?favicon.1ajzmov86i9wh.ico" sizes="48x48" type="image/x-icon"/><link rel="apple-touch-icon" href="/apple-icon.png"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body class="min-h-screen flex flex-col bg-brand-bg"><div hidden=""><!--$--><!--/$--></div><a href="#main" class="sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-[100] focus:rounded-md focus:bg-brand-header focus:px-4 focus:py-2 focus:text-sm focus:font-bold focus:text-white focus:outline-hidden focus-visible:ring-2 focus-visible:ring-white">Skip to content</a><header class="sticky top-0 z-50 w-full bg-brand-header shadow-xs"><div class="max-w-5xl mx-auto px-5 py-3 flex items-center justify-between gap-4"><div class="flex items-baseline gap-3"><a class="text-base font-bold text-white" href="/">Be Useful.</a><p class="hidden lg:block text-sm text-white/90">Content &amp; Code, with a little help from Generative AI.</p></div><nav aria-label="Primary" class="flex items-center gap-4 md:gap-6"><a class="text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200" href="/categories">Categories</a><a class="text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200" href="/about">About</a></nav></div></header><main id="main" class="grow"><div class="max-w-5xl mx-auto px-5 pt-8 pb-section"><section class="mx-auto max-w-5xl mb-section"><div class="mb-6 md:mb-8"><div class="shadow-lg sm:mx-0"><div class="relative overflow-hidden aspect-3/2 md:aspect-video cursor-pointer"><a aria-label="Kinds of blue: Design tokens for contrast and accessibility" class="block h-full" href="/posts/design-tokens-accessibility"><img alt="" fetchPriority="high" decoding="async" data-nimg="fill" class="object-cover hover:opacity-90 transition-opacity duration-200" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 1024px" srcSet="https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=640&amp;q=75&amp;fm=webp 640w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=750&amp;q=75&amp;fm=webp 750w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=828&amp;q=75&amp;fm=webp 828w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1080&amp;q=75&amp;fm=webp 1080w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1200&amp;q=75&amp;fm=webp 1200w, https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1920&amp;q=75&amp;fm=webp 1920w" src="https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg?w=1920&amp;q=75&amp;fm=webp"/></a></div></div></div><div><h1 class="mb-4 text-5xl md:text-6xl lg:text-7xl leading-tight font-bold"><a class="hover:text-brand-crimson transition-colors duration-200" href="/posts/design-tokens-accessibility">Kinds of blue: Design tokens for contrast and accessibility</a></h1><p class="text-lg leading-relaxed mb-6">I woke up today and decided to change the header colour from crimson to blue. Let&#x27;s talk about design tokens, contrast and accessibility.</p><div class="flex items-center"><div class="flex items-center"><div class="mr-4 w-12 h-12 shrink-0"><img alt="" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="object-cover h-full w-full rounded-full" style="color:transparent" srcSet="https://images.ctfassets.net/rczsnwq9z69e/66dNFPD8r8ujbl2QrwGOii/cbe3976783ea064cc20968432fbb8aba/byusuf.png?w=48&amp;q=75&amp;fm=webp 1x, https://images.ctfassets.net/rczsnwq9z69e/66dNFPD8r8ujbl2QrwGOii/cbe3976783ea064cc20968432fbb8aba/byusuf.png?w=96&amp;q=75&amp;fm=webp 2x" src="https://images.ctfassets.net/rczsnwq9z69e/66dNFPD8r8ujbl2QrwGOii/cbe3976783ea064cc20968432fbb8aba/byusuf.png?w=96&amp;q=75&amp;fm=webp"/></div><div class="leading-tight"><div class="text-xl font-bold"><a class="hover:text-brand-crimson transition-colors duration-200" href="/authors/bulent-yusuf">Bulent Yusuf</a></div><div class="mt-1 text-sm font-normal text-gray-600"><time dateTime="2026-06-09T02:00:00.000Z">June 9, 2026</time></div></div></div></div></div></section><section class="mx-auto max-w-5xl"><h2 class="mb-8 text-4xl md:text-5xl font-bold tracking-tighter leading-tight">Latest posts</h2><div class="flex flex-col divide-y divide-gray-200"><article class="grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0"><div><div class="shadow-lg sm:mx-0"><div class="relative overflow-hidden aspect-3/2 cursor-pointer"><a aria-label="Pay it forward: Fork this blog template and make it yours" class="block h-full" href="/posts/fork-blog-template"><img alt="" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:opacity-90 transition-opacity duration-200" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 40vw" srcSet="https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=256&amp;q=75&amp;fm=webp 256w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=384&amp;q=75&amp;fm=webp 384w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=640&amp;q=75&amp;fm=webp 640w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=750&amp;q=75&amp;fm=webp 750w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=828&amp;q=75&amp;fm=webp 828w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=1080&amp;q=75&amp;fm=webp 1080w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=1200&amp;q=75&amp;fm=webp 1200w, https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=1920&amp;q=75&amp;fm=webp 1920w" src="https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg?w=1920&amp;q=75&amp;fm=webp"/></a></div></div></div><div><h3 class="text-2xl md:text-3xl mb-2 leading-snug font-bold"><a class="hover:text-brand-crimson transition-colors duration-200" href="/posts/fork-blog-template">Pay it forward: Fork this blog template and make it yours</a></h3><div class="text-base text-brand-muted mb-3"><time dateTime="2026-06-07T02:00:00.000Z">June 7, 2026</time></div><p class="text-lg leading-relaxed">The code behind this site is now a template you can clone and deploy for yourself. A sneaky peek at the journey from a public repo to a forkable template.</p></div></article><article class="grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0"><div><div class="shadow-lg sm:mx-0"><div class="relative overflow-hidden aspect-3/2 cursor-pointer"><a aria-label="Maintaining an llms.txt that nobody&#x27;s reading" class="block h-full" href="/posts/llms-txt-nobody-reading"><img alt="" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:opacity-90 transition-opacity duration-200" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 40vw" srcSet="https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=256&amp;q=75&amp;fm=webp 256w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=384&amp;q=75&amp;fm=webp 384w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=640&amp;q=75&amp;fm=webp 640w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=750&amp;q=75&amp;fm=webp 750w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=828&amp;q=75&amp;fm=webp 828w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=1080&amp;q=75&amp;fm=webp 1080w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=1200&amp;q=75&amp;fm=webp 1200w, https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=1920&amp;q=75&amp;fm=webp 1920w" src="https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg?w=1920&amp;q=75&amp;fm=webp"/></a></div></div></div><div><h3 class="text-2xl md:text-3xl mb-2 leading-snug font-bold"><a class="hover:text-brand-crimson transition-colors duration-200" href="/posts/llms-txt-nobody-reading">Maintaining an llms.txt that nobody&#x27;s reading</a></h3><div class="text-base text-brand-muted mb-3"><time dateTime="2026-06-03T10:00:00.000Z">June 3, 2026</time></div><p class="text-lg leading-relaxed">This site had an llms.txt that went stale in just over a week. Easy enough to fix, but what&#x27;s the point of maintaining them if they&#x27;re not being read?</p></div></article><article class="grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0"><div><div class="shadow-lg sm:mx-0"><div class="relative overflow-hidden aspect-3/2 cursor-pointer"><a aria-label="Structuring content like a trail of breadcrumbs" class="block h-full" href="/posts/structuring-content-breadcrumbs"><img alt="" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:opacity-90 transition-opacity duration-200" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 40vw" srcSet="https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=256&amp;q=75&amp;fm=webp 256w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=384&amp;q=75&amp;fm=webp 384w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=640&amp;q=75&amp;fm=webp 640w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=750&amp;q=75&amp;fm=webp 750w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=828&amp;q=75&amp;fm=webp 828w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=1080&amp;q=75&amp;fm=webp 1080w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=1200&amp;q=75&amp;fm=webp 1200w, https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=1920&amp;q=75&amp;fm=webp 1920w" src="https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg?w=1920&amp;q=75&amp;fm=webp"/></a></div></div></div><div><h3 class="text-2xl md:text-3xl mb-2 leading-snug font-bold"><a class="hover:text-brand-crimson transition-colors duration-200" href="/posts/structuring-content-breadcrumbs">Structuring content like a trail of breadcrumbs</a></h3><div class="text-base text-brand-muted mb-3"><time dateTime="2026-06-02T22:00:00.000Z">June 2, 2026</time></div><p class="text-lg leading-relaxed">A deep dive into pagination, breadcrumbs, category and author pages, and sitemap maintenance. All this, and content modeling too!</p></div></article><article class="grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0"><div><div class="shadow-lg sm:mx-0"><div class="relative overflow-hidden aspect-3/2 cursor-pointer"><a aria-label="How to boot straight into PICO-8 on a Raspberry Pi" class="block h-full" href="/posts/pico-8-raspberry-pi"><img alt="" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:opacity-90 transition-opacity duration-200" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 40vw" srcSet="https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=256&amp;q=75&amp;fm=webp 256w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=384&amp;q=75&amp;fm=webp 384w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=640&amp;q=75&amp;fm=webp 640w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=750&amp;q=75&amp;fm=webp 750w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=828&amp;q=75&amp;fm=webp 828w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=1080&amp;q=75&amp;fm=webp 1080w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=1200&amp;q=75&amp;fm=webp 1200w, https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=1920&amp;q=75&amp;fm=webp 1920w" src="https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg?w=1920&amp;q=75&amp;fm=webp"/></a></div></div></div><div><h3 class="text-2xl md:text-3xl mb-2 leading-snug font-bold"><a class="hover:text-brand-crimson transition-colors duration-200" href="/posts/pico-8-raspberry-pi">How to boot straight into PICO-8 on a Raspberry Pi</a></h3><div class="text-base text-brand-muted mb-3"><time dateTime="2026-05-31T00:00:00.000Z">May 31, 2026</time></div><p class="text-lg leading-relaxed">A single-purpose fantasy console, built from a headless Pi and about 30 minutes of patience. Power on, get PICO-8. No RetroPie, no desktop, no menu.</p></div></article></div></section><nav aria-label="Pagination" class="mx-auto max-w-5xl border-t border-gray-200 pt-10 md:pt-12"><ul class="flex items-center justify-center gap-2"><li><span aria-hidden="true" class="inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted">← Prev</span></li><li><span aria-current="page" class="inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 font-bold text-brand-crimson">1</span></li><li><a aria-label="Go to page 2" class="inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted hover:text-brand-crimson" href="/page/2">2</a></li><li><a aria-label="Go to page 3" class="inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted hover:text-brand-crimson" href="/page/3">3</a></li><li><a rel="next" aria-label="Go to next page" class="inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted hover:text-brand-crimson" href="/page/2">Next →</a></li></ul></nav></div><!--$--><!--/$--></main><footer class="bg-brand-dark"><div class="max-w-5xl mx-auto px-5"><div class="py-16 flex flex-col lg:flex-row items-center justify-between"><p class="text-sm text-center text-white/90 lg:text-left mb-4 lg:mb-0">© <!-- -->2026<!-- --> Bulent Yusuf · Built with Next.js &amp; Contentful</p><div class="flex items-center gap-6"><a class="text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200" href="/authors">Authors</a><a class="text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200" href="/privacy">Privacy</a><a href="https://github.com/bulentyusuf/nextjs-blog-draft-mode" class="text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200" target="_blank" rel="noopener noreferrer">GitHub</a><a href="/feed.xml" class="text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200">RSS</a></div></div></div></footer><button type="button" aria-label="Back to top" class="fixed bottom-6 right-12 z-50 flex h-11 w-11 items-center justify-center rounded-full border-2 border-gray-400 bg-brand-dark text-white shadow-lg transition-opacity duration-200 hover:bg-brand-crimson focus:outline-hidden focus-visible:ring-2 focus-visible:ring-black focus-visible:ring-offset-2 pointer-events-none opacity-0"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5"></path><path d="m5 12 7-7 7 7"></path></svg></button><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><script src="/_next/static/chunks/2397lih9amjkz.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n4:I[97367,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nb:I[53348,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/2mnr3lt7l5jd1.js\"],\"default\"]\n:HL[\"/_next/static/chunks/1br_htvux8b86.css\",\"style\"]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"index\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/1br_htvux8b86.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L3\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2hvsg5fpwjoo1.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/1br_htvux8b86.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"dQZ1XAs-5DlESvRptWm1c\"}\n"])</script><script>self.__next_f.push([1,"c:I[22016,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/2hvsg5fpwjoo1.js\"],\"\"]\nd:I[39756,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\ne:I[8821,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/15_isjt4dijyg.js\"],\"default\"]\nf:I[37457,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n10:I[51536,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/2hvsg5fpwjoo1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"inter_7b064e0d-module__MOT0tq__variable\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen flex flex-col bg-brand-bg\",\"children\":[[\"$\",\"a\",null,{\"href\":\"#main\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-[100] focus:rounded-md focus:bg-brand-header focus:px-4 focus:py-2 focus:text-sm focus:font-bold focus:text-white focus:outline-hidden focus-visible:ring-2 focus-visible:ring-white\",\"children\":\"Skip to content\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://images.ctfassets.net\"}],[\"$\",\"header\",null,{\"className\":\"sticky top-0 z-50 w-full bg-brand-header shadow-xs\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-5xl mx-auto px-5 py-3 flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline gap-3\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/\",\"className\":\"text-base font-bold text-white\",\"children\":\"Be Useful.\"}],[\"$\",\"p\",null,{\"className\":\"hidden lg:block text-sm text-white/90\",\"children\":\"Content \u0026 Code, with a little help from Generative AI.\"}]]}],[\"$\",\"nav\",null,{\"aria-label\":\"Primary\",\"className\":\"flex items-center gap-4 md:gap-6\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/categories\",\"className\":\"text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200\",\"children\":\"Categories\"}],[\"$\",\"$Lc\",null,{\"href\":\"/about\",\"className\":\"text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200\",\"children\":\"About\"}]]}]]}]}],[\"$\",\"main\",null,{\"id\":\"main\",\"className\":\"grow\",\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$e\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/15_isjt4dijyg.js\",\"async\":true}]],\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"max-w-5xl mx-auto px-5 pt-8 pb-section\",\"children\":[[\"$\",\"style\",null,{\"children\":\"\\n        @keyframes gremlin-wobble {\\n          0%, 100% { transform: rotate(-2deg); }\\n          50% { transform: rotate(2deg); }\\n        }\\n        .gremlin-img { animation: gremlin-wobble 2.4s ease-in-out infinite; transform-origin: center bottom; }\\n        @media (prefers-reduced-motion: reduce) {\\n          .gremlin-img { animation: none; }\\n        }\\n      \"}],[\"$\",\"section\",null,{\"className\":\"mx-auto max-w-2xl text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-8 flex justify-center\",\"children\":[\"$\",\"$L10\",null,{\"src\":\"/404-gremlin.webp\",\"alt\":\"A gremlin sitting in a tangle of wires, holding the two ends of an unplugged cable\",\"width\":720,\"height\":480,\"priority\":true,\"className\":\"gremlin-img w-full max-w-md h-auto rounded-lg\"}]}],[\"$\",\"p\",null,{\"className\":\"text-lg font-bold uppercase tracking-wide text-brand-crimson\",\"children\":\"Whoops\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 text-4xl lg:text-6xl leading-tight font-bold\",\"children\":\"404: A gremlin pulled the plug.\"}],[\"$\",\"p\",null,{\"className\":\"mt-6 text-lg leading-relaxed\",\"children\":\"The page you seek isn't available or never existed. Apologies!\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Helpful links\",\"className\":\"mt-8 flex flex-wrap items-center justify-center gap-x-6 gap-y-3\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/\",\"className\":\"text-base font-bold text-brand-crimson hover:opacity-80 transition-opacity duration-200\",\"children\":\"Home\"}],[\"$\",\"$Lc\",null,{\"href\":\"/categories\",\"className\":\"text-base font-bold text-brand-crimson hover:opacity-80 transition-opacity duration-200\",\"children\":\"Categories\"}],[\"$\",\"$Lc\",null,{\"href\":\"/authors\",\"className\":\"text-base font-bold text-brand-crimson hover:opacity-80 transition-opacity duration-200\",\"children\":\"Authors\"}]]}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"bg-brand-dark\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-5xl mx-auto px-5\",\"children\":[\"$\",\"div\",null,{\"className\":\"py-16 flex flex-col lg:flex-row items-center justify-between\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm text-center text-white/90 lg:text-left mb-4 lg:mb-0\",\"children\":[\"© \",2026,\" Bulent Yusuf · Built with Next.js \u0026 Contentful\"]}],\"$L11\"]}]}]}],false,\"$L12\",\"$L13\",\"$L14\"]}]}]\n"])</script><script>self.__next_f.push([1,"15:I[2312,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n16:I[43880,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"Analytics\"]\n17:I[57215,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"SpeedInsights\"]\n11:[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/authors\",\"className\":\"text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200\",\"children\":\"Authors\"}],[\"$\",\"$Lc\",null,{\"href\":\"/privacy\",\"className\":\"text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200\",\"children\":\"Privacy\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/bulentyusuf/nextjs-blog-draft-mode\",\"className\":\"text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub\"}],[\"$\",\"a\",null,{\"href\":\"/feed.xml\",\"className\":\"text-sm font-bold text-white hover:opacity-80 transition-opacity duration-200\",\"children\":\"RSS\"}]]}]\n12:[\"$\",\"$L15\",null,{}]\n13:[\"$\",\"$L16\",null,{}]\n14:[\"$\",\"$L17\",null,{}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1E3A8A\"}]]\n"])</script><script>self.__next_f.push([1,"18:I[27201,[\"/_next/static/chunks/3mzlyx1l53jq5.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"IconMark\"]\n6:null\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"title\",\"0\",{\"children\":\"Be Useful.\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Content \u0026 Code, with a little help from Generative AI.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://bulentyusuf.com\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Be Useful.\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Content \u0026 Code, with a little help from Generative AI.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"https://bulentyusuf.com\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:site_name\",\"content\":\"Be Useful.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://bulentyusuf.com/be_useful.jpg\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:alt\",\"content\":\"Be Useful.\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:title\",\"content\":\"Be Useful.\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:description\",\"content\":\"Content \u0026 Code, with a little help from Generative AI.\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image\",\"content\":\"https://bulentyusuf.com/be_useful.jpg\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.1ajzmov86i9wh.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"19\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png\"}],[\"$\",\"$L18\",\"20\",{}]]\n"])</script><script>self.__next_f.push([1,"3:[\"$\",\"div\",null,{\"className\":\"max-w-5xl mx-auto px-5 pt-8 pb-section\",\"children\":[[\"$\",\"section\",null,{\"className\":\"mx-auto max-w-5xl mb-section\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 md:mb-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"shadow-lg sm:mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden aspect-3/2 md:aspect-video cursor-pointer\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/design-tokens-accessibility\",\"aria-label\":\"Kinds of blue: Design tokens for contrast and accessibility\",\"className\":\"block h-full\",\"children\":[\"$\",\"$L10\",null,{\"alt\":\"\",\"priority\":true,\"fetchPriority\":\"high\",\"fill\":true,\"sizes\":\"(max-width: 768px) 100vw, 1024px\",\"className\":\"object-cover hover:opacity-90 transition-opacity duration-200\",\"src\":\"https://images.ctfassets.net/rczsnwq9z69e/46HQF7HeKclwmz55E7ROYi/a86866ef5106f681b795bb5868c31ca0/terry_meets_julie.jpg\"}]}]}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-4 text-5xl md:text-6xl lg:text-7xl leading-tight font-bold\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/design-tokens-accessibility\",\"className\":\"hover:text-brand-crimson transition-colors duration-200\",\"children\":\"Kinds of blue: Design tokens for contrast and accessibility\"}]}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-relaxed mb-6\",\"children\":\"I woke up today and decided to change the header colour from crimson to blue. Let's talk about design tokens, contrast and accessibility.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mr-4 w-12 h-12 shrink-0\",\"children\":[\"$\",\"$L10\",null,{\"alt\":\"\",\"className\":\"object-cover h-full w-full rounded-full\",\"height\":48,\"width\":48,\"src\":\"https://images.ctfassets.net/rczsnwq9z69e/66dNFPD8r8ujbl2QrwGOii/cbe3976783ea064cc20968432fbb8aba/byusuf.png\"}]}],[\"$\",\"div\",null,{\"className\":\"leading-tight\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-xl font-bold\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/authors/bulent-yusuf\",\"className\":\"hover:text-brand-crimson transition-colors duration-200\",\"children\":\"Bulent Yusuf\"}]}],[\"$\",\"div\",null,{\"className\":\"mt-1 text-sm font-normal text-gray-600\",\"children\":[[\"$\",\"time\",null,{\"dateTime\":\"2026-06-09T02:00:00.000Z\",\"children\":\"June 9, 2026\"}],null]}]]}]]}]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mx-auto max-w-5xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-8 text-4xl md:text-5xl font-bold tracking-tighter leading-tight\",\"children\":\"Latest posts\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col divide-y divide-gray-200\",\"children\":[[\"$\",\"article\",\"fork-blog-template\",{\"className\":\"grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"shadow-lg sm:mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden aspect-3/2 cursor-pointer\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/fork-blog-template\",\"aria-label\":\"Pay it forward: Fork this blog template and make it yours\",\"className\":\"block h-full\",\"children\":[\"$\",\"$L10\",null,{\"alt\":\"\",\"priority\":false,\"fetchPriority\":\"$undefined\",\"fill\":true,\"sizes\":\"(max-width: 768px) 100vw, 40vw\",\"className\":\"object-cover hover:opacity-90 transition-opacity duration-200\",\"src\":\"https://images.ctfassets.net/rczsnwq9z69e/6EThJpWQbcQFNm2uTLf1yr/7dbb2bb3c8f6caab98747bdc05da5270/to_build_a_home.jpg\"}]}]}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl md:text-3xl mb-2 leading-snug font-bold\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/fork-blog-template\",\"className\":\"hover:text-brand-crimson transition-colors duration-200\",\"children\":\"Pay it forward: Fork this blog template and make it yours\"}]}],[\"$\",\"div\",null,{\"className\":\"text-base text-brand-muted mb-3\",\"children\":[\"$\",\"time\",null,{\"dateTime\":\"2026-06-07T02:00:00.000Z\",\"children\":\"June 7, 2026\"}]}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-relaxed\",\"children\":\"The code behind this site is now a template you can clone and deploy for yourself. A sneaky peek at the journey from a public repo to a forkable template.\"}]]}]]}],\"$L19\",\"$L1a\",\"$L1b\"]}]]}],\"$L1c\"]}]\n"])</script><script>self.__next_f.push([1,"19:[\"$\",\"article\",\"llms-txt-nobody-reading\",{\"className\":\"grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"shadow-lg sm:mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden aspect-3/2 cursor-pointer\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/llms-txt-nobody-reading\",\"aria-label\":\"Maintaining an llms.txt that nobody's reading\",\"className\":\"block h-full\",\"children\":[\"$\",\"$L10\",null,{\"alt\":\"\",\"priority\":false,\"fetchPriority\":\"$undefined\",\"fill\":true,\"sizes\":\"(max-width: 768px) 100vw, 40vw\",\"className\":\"object-cover hover:opacity-90 transition-opacity duration-200\",\"src\":\"https://images.ctfassets.net/rczsnwq9z69e/FkXcleTw236SuhWNJu1yO/908aa59a07310a00b1c988abc772b365/workinglate.jpg\"}]}]}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl md:text-3xl mb-2 leading-snug font-bold\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/llms-txt-nobody-reading\",\"className\":\"hover:text-brand-crimson transition-colors duration-200\",\"children\":\"Maintaining an llms.txt that nobody's reading\"}]}],[\"$\",\"div\",null,{\"className\":\"text-base text-brand-muted mb-3\",\"children\":[\"$\",\"time\",null,{\"dateTime\":\"2026-06-03T10:00:00.000Z\",\"children\":\"June 3, 2026\"}]}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-relaxed\",\"children\":\"This site had an llms.txt that went stale in just over a week. Easy enough to fix, but what's the point of maintaining them if they're not being read?\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1a:[\"$\",\"article\",\"structuring-content-breadcrumbs\",{\"className\":\"grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"shadow-lg sm:mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden aspect-3/2 cursor-pointer\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/structuring-content-breadcrumbs\",\"aria-label\":\"Structuring content like a trail of breadcrumbs\",\"className\":\"block h-full\",\"children\":[\"$\",\"$L10\",null,{\"alt\":\"\",\"priority\":false,\"fetchPriority\":\"$undefined\",\"fill\":true,\"sizes\":\"(max-width: 768px) 100vw, 40vw\",\"className\":\"object-cover hover:opacity-90 transition-opacity duration-200\",\"src\":\"https://images.ctfassets.net/rczsnwq9z69e/5nExhff1XZbS8MUOc45TGA/3854fbac4e69d651f1fc8ce2601354b3/breadcrumbs.jpg\"}]}]}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl md:text-3xl mb-2 leading-snug font-bold\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/structuring-content-breadcrumbs\",\"className\":\"hover:text-brand-crimson transition-colors duration-200\",\"children\":\"Structuring content like a trail of breadcrumbs\"}]}],[\"$\",\"div\",null,{\"className\":\"text-base text-brand-muted mb-3\",\"children\":[\"$\",\"time\",null,{\"dateTime\":\"2026-06-02T22:00:00.000Z\",\"children\":\"June 2, 2026\"}]}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-relaxed\",\"children\":\"A deep dive into pagination, breadcrumbs, category and author pages, and sitemap maintenance. All this, and content modeling too!\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"article\",\"pico-8-raspberry-pi\",{\"className\":\"grid grid-cols-1 gap-5 py-10 first:pt-0 md:grid-cols-[2fr_3fr] md:gap-8 md:items-start md:py-12 md:first:pt-0\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"shadow-lg sm:mx-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden aspect-3/2 cursor-pointer\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/pico-8-raspberry-pi\",\"aria-label\":\"How to boot straight into PICO-8 on a Raspberry Pi\",\"className\":\"block h-full\",\"children\":[\"$\",\"$L10\",null,{\"alt\":\"\",\"priority\":false,\"fetchPriority\":\"$undefined\",\"fill\":true,\"sizes\":\"(max-width: 768px) 100vw, 40vw\",\"className\":\"object-cover hover:opacity-90 transition-opacity duration-200\",\"src\":\"https://images.ctfassets.net/rczsnwq9z69e/CpFO637UOIF51SwqyMFwF/247e9d2dc0f79a3d757124099fc23587/sunlit_classroom.jpg\"}]}]}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl md:text-3xl mb-2 leading-snug font-bold\",\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/posts/pico-8-raspberry-pi\",\"className\":\"hover:text-brand-crimson transition-colors duration-200\",\"children\":\"How to boot straight into PICO-8 on a Raspberry Pi\"}]}],[\"$\",\"div\",null,{\"className\":\"text-base text-brand-muted mb-3\",\"children\":[\"$\",\"time\",null,{\"dateTime\":\"2026-05-31T00:00:00.000Z\",\"children\":\"May 31, 2026\"}]}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-relaxed\",\"children\":\"A single-purpose fantasy console, built from a headless Pi and about 30 minutes of patience. Power on, get PICO-8. No RetroPie, no desktop, no menu.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1c:[\"$\",\"nav\",null,{\"aria-label\":\"Pagination\",\"className\":\"mx-auto max-w-5xl border-t border-gray-200 pt-10 md:pt-12\",\"children\":[\"$\",\"ul\",null,{\"className\":\"flex items-center justify-center gap-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"className\":\"inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted\",\"children\":\"← Prev\"}]}],[[\"$\",\"li\",\"1\",{\"children\":[\"$\",\"span\",null,{\"aria-current\":\"page\",\"className\":\"inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 font-bold text-brand-crimson\",\"children\":1}]}],[\"$\",\"li\",\"2\",{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/page/2\",\"aria-label\":\"Go to page 2\",\"className\":\"inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted hover:text-brand-crimson\",\"children\":2}]}],[\"$\",\"li\",\"3\",{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/page/3\",\"aria-label\":\"Go to page 3\",\"className\":\"inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted hover:text-brand-crimson\",\"children\":3}]}]],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/page/2\",\"rel\":\"next\",\"aria-label\":\"Go to next page\",\"className\":\"inline-flex h-10 min-w-10 items-center justify-center rounded-md px-3 text-base transition-colors duration-200 text-brand-muted hover:text-brand-crimson\",\"children\":\"Next →\"}]}]]}]}]\n"])</script></body></html>