<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[Yusufhan Sacak - Blog]]></title>
        <description><![CDATA[Articles on software engineering, web development, and building products.]]></description>
        <link>https://yusufhan.dev</link>
        <generator>RSS for Node</generator>
        <lastBuildDate>Mon, 01 Jun 2026 23:14:27 GMT</lastBuildDate>
        <atom:link href="https://yusufhan.dev/blog/rss.xml" rel="self" type="application/rss+xml"/>
        <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
        <language><![CDATA[en]]></language>
        <item>
            <title><![CDATA[CVE-2026-44429: Stored XSS on the MCP Registry Catalogue UI]]></title>
            <description><![CDATA[The official Model Context Protocol registry escaped HTML on the way out — but not quote characters. A publisher-controlled `websiteUrl` could break out of an `href` attribute and execute JavaScript on every catalogue visitor's session.]]></description>
            <link>https://yusufhan.dev/blog/cve-2026-44429-stored-xss-mcp-registry</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/cve-2026-44429-stored-xss-mcp-registry</guid>
            <category><![CDATA[security]]></category>
            <category><![CDATA[cve]]></category>
            <category><![CDATA[mcp]]></category>
            <category><![CDATA[xss]]></category>
            <category><![CDATA[disclosure]]></category>
            <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Developer Experience with Claude Code]]></title>
            <description><![CDATA[How I integrated a terminal-native AI coding tool into my daily workflow — hooks, MCP servers, plan mode, and real-world lessons from months of daily use.]]></description>
            <link>https://yusufhan.dev/blog/developer-experience-with-claude-code</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/developer-experience-with-claude-code</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[developer-tools]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[claude-code]]></category>
            <pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Building a Secure Content Hosting Service for AI-Generated Artefacts]]></title>
            <description><![CDATA[How I built a dedicated hosting service that lets Claude publish rich HTML artefacts directly to production — covering subdomain isolation, dual authentication, MCP integration, and the security thinking behind it all.]]></description>
            <link>https://yusufhan.dev/blog/building-rubica-content-hosting</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/building-rubica-content-hosting</guid>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[mcp]]></category>
            <category><![CDATA[node]]></category>
            <category><![CDATA[typescript]]></category>
            <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[301 vs 308 Redirects in Next.js]]></title>
            <description><![CDATA[Next.js uses 308 Permanent Redirect by default. Learn why, how it differs from 301, and where the real SEO problems actually come from — redirect chains, not status codes.]]></description>
            <link>https://yusufhan.dev/blog/301-vs-308-redirects-in-nextjs</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/301-vs-308-redirects-in-nextjs</guid>
            <category><![CDATA[nextjs]]></category>
            <category><![CDATA[seo]]></category>
            <category><![CDATA[redirects]]></category>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Designing an AI-Native Content Publishing Pipeline]]></title>
            <description><![CDATA[How we built a system that lets AI tools generate and publish structured content directly into production, turning publishing from a manual process into an infrastructure action.]]></description>
            <link>https://yusufhan.dev/blog/designing-an-ai-native-content-publishing-pipeline</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/designing-an-ai-native-content-publishing-pipeline</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[mcp]]></category>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[automation]]></category>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Why Google Isn't Indexing Your Next.js Site (And How to Find Out in 3 Seconds)]]></title>
            <description><![CDATA[You've spent weeks building your Next.js site. You've deployed to Vercel. Everything looks beautiful. There's just one problem — Google doesn't seem to know your site exists.]]></description>
            <link>https://yusufhan.dev/blog/why-google-isnt-indexing-your-nextjs-site</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/why-google-isnt-indexing-your-nextjs-site</guid>
            <category><![CDATA[nextjs]]></category>
            <category><![CDATA[seo]]></category>
            <category><![CDATA[vercel]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[web-development]]></category>
            <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[I Shipped a Fix. The PR Got Closed. And That's Exactly How Open Source Works Sometimes.]]></title>
            <description><![CDATA[I fixed a real production bug in an open-source project, added tests, handled edge cases — and the PR still got closed. Not because the code was wrong, but because product decisions beat engineering.]]></description>
            <link>https://yusufhan.dev/blog/i-shipped-a-fix-the-pr-got-closed</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/i-shipped-a-fix-the-pr-got-closed</guid>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[career]]></category>
            <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Why Google Refuses to Index Your Next.js Site]]></title>
            <description><![CDATA[You deploy your site, it loads fast, Lighthouse looks great — and yet Google refuses to index it. If you're building with Next.js on Vercel, this is far more common than you think.]]></description>
            <link>https://yusufhan.dev/blog/why-google-refuses-to-index-your-nextjs-site</link>
            <guid isPermaLink="true">https://yusufhan.dev/blog/why-google-refuses-to-index-your-nextjs-site</guid>
            <category><![CDATA[nextjs]]></category>
            <category><![CDATA[seo]]></category>
            <category><![CDATA[vercel]]></category>
            <pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>