<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Loke.dev</title>
    <description>Articles, guides, and thoughts on web development and technology</description>
    <link>https://loke.dev</link>
    <language>en-us</language>
    <ttl>60</ttl>
    <atom:link href="https://loke.dev/rss.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Mon, 24 Aug 2026 11:20:44 GMT</lastBuildDate>
    <item>
      <title>How I made loke.dev easier for AI agents to use</title>
      <description>A practical look at the routes, APIs, DNS, and checks I added so AI agents can find and use loke.dev without guessing.</description>
      <link>https://loke.dev/writing/how-i-made-loke-dev-easier-for-ai-agents-to-use</link>
      <guid isPermaLink="true">https://loke.dev/writing/how-i-made-loke-dev-easier-for-ai-agents-to-use</guid>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
      <category>AI engineering</category><category>Platform and cloud</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/434e3f06541525d900e83122283c0a72e1d4322e-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Don&apos;t be a meat proxy</title>
      <description>AI can help you investigate, draft, and review. The useful part starts when you turn its output into a short, checked answer you can stand behind.</description>
      <link>https://loke.dev/writing/dont-be-a-meat-proxy</link>
      <guid isPermaLink="true">https://loke.dev/writing/dont-be-a-meat-proxy</guid>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <category>AI engineering</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/a53812cd55219a76fe138a73abaa5f6d029d5375-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Fix Slow Next.js Server Actions and Data Fetching</title>
      <description>Find why a Next.js App Router page or Server Action feels slow, then fix waterfalls, duplicate queries, uncached fetches, and slow post-action refreshes.</description>
      <link>https://loke.dev/writing/fix-slow-nextjs-server-actions-data-fetching</link>
      <guid isPermaLink="true">https://loke.dev/writing/fix-slow-nextjs-server-actions-data-fetching</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category><category>Performance</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/3dc0d5c692e4ea762d3b2a62ddbf0c77c64c0717-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Fix Next.js Hydration Errors in Production Without Guessing</title>
      <description>A practical way to find the first server and browser difference behind a Next.js hydration error, with fixes for dates, browser APIs, HTML nesting, and extensions.</description>
      <link>https://loke.dev/writing/fix-nextjs-hydration-errors-production</link>
      <guid isPermaLink="true">https://loke.dev/writing/fix-nextjs-hydration-errors-production</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category><category>Performance</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/563507f42f8d8644e9374a1a995ec7150565e537-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Fix Next.js 16.3 standalone output failing on Vercel</title>
      <description>A hands-on fix for the Next.js 16.3 ENOENT trace-file error on Vercel, with checks for Docker and self-hosted standalone builds.</description>
      <link>https://loke.dev/writing/fix-nextjs-16-3-next-server-nft-enoent-vercel</link>
      <guid isPermaLink="true">https://loke.dev/writing/fix-nextjs-16-3-next-server-nft-enoent-vercel</guid>
      <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category><category>Platform and cloud</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/698ee2cfd5147d6fe5fe72734f4d70af217b1404-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Run TypeScript 7 Without Breaking typescript-eslint</title>
      <description>Fix TypeScript 7 ESLint peer conflicts and Cjs crashes by running TypeScript 7 beside the TypeScript 6 compatibility API, with a verified npm setup.</description>
      <link>https://loke.dev/writing/typescript-7-typescript-eslint-side-by-side</link>
      <guid isPermaLink="true">https://loke.dev/writing/typescript-7-typescript-eslint-side-by-side</guid>
      <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
      <category>TypeScript and validation</category><category>Package management and CI</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/53ea22f62c9a5ae10fdc68a01ae32b530ddb5656-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Next.js npm Audit Flags sharp: Test the Override on Vercel</title>
      <description>Triage the sharp advisory in Next.js 16.2, apply a package-manager override carefully, and test the real image path before deploying on Vercel.</description>
      <link>https://loke.dev/writing/nextjs-sharp-vulnerability-audit-vercel-override</link>
      <guid isPermaLink="true">https://loke.dev/writing/nextjs-sharp-vulnerability-audit-vercel-override</guid>
      <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category><category>Package management and CI</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/9fa7a6d274cff89938c2376ab02a566e38cf641e-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Fix Missing Cloudflare Workers Types After the v5 Upgrade</title>
      <description>Fix missing dated Cloudflare Workers type entrypoints after v5, migrate app types to wrangler types, and keep generated declarations current in CI.</description>
      <link>https://loke.dev/writing/fix-cloudflare-workers-types-v5-dated-entrypoints</link>
      <guid isPermaLink="true">https://loke.dev/writing/fix-cloudflare-workers-types-v5-dated-entrypoints</guid>
      <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
      <category>Platform and cloud</category><category>TypeScript and validation</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/36eb186c0b613c861438213325a9bbe8ce800327-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Node 20 Is EOL: Find Every Runtime Pin Before a Failed Deploy</title>
      <description>Node 20 is EOL. Audit package metadata, CI, Docker, and host settings, choose a supported target, then verify every runtime pin before a deploy fails.</description>
      <link>https://loke.dev/writing/node-20-eol-find-runtime-pins</link>
      <guid isPermaLink="true">https://loke.dev/writing/node-20-eol-find-runtime-pins</guid>
      <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
      <category>Package management and CI</category><category>Platform and cloud</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/f5c67143a4ff4a6e39ab5517182ffcb41126ed27-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Compare Preview and Production Before You Merge</title>
      <description>Catch preview deployment drift in status codes, redirects, headers, cookie attributes, canonical URLs, and robots metadata before production.</description>
      <link>https://loke.dev/writing/compare-preview-production-before-merge</link>
      <guid isPermaLink="true">https://loke.dev/writing/compare-preview-production-before-merge</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <category>Package management and CI</category><category>Platform and cloud</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/6031abe8e6bc984b5c0e29c3726521964e3ecf7a-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Run Multiple Cloudflare Workers Locally With One Safe Plan</title>
      <description>Resolve Wrangler environments, service bindings, and remote resources before starting a multi-Worker stack, then launch it in dependency order.</description>
      <link>https://loke.dev/writing/run-multiple-cloudflare-workers-locally</link>
      <guid isPermaLink="true">https://loke.dev/writing/run-multiple-cloudflare-workers-locally</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <category>Platform and cloud</category><category>TypeScript and validation</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/523cebead6cd8fd025e303975a97efe12903e71f-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Lint wrangler.jsonc in GitHub Actions Before You Deploy</title>
      <description>Run Cloudflare Workers config checks in GitHub Actions, annotate exact Wrangler lines, scan monorepos, and upload SARIF when you need it.</description>
      <link>https://loke.dev/writing/lint-wrangler-jsonc-github-actions</link>
      <guid isPermaLink="true">https://loke.dev/writing/lint-wrangler-jsonc-github-actions</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <category>Platform and cloud</category><category>Package management and CI</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/b1aa9f9e254f4dab92a00dace9042f1c731d600c-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Upgrade Astro 6 on Cloudflare Without a Runtime Surprise</title>
      <description>Upgrade Astro 6 on Cloudflare safely: replace removed runtime APIs, isolate Node-only prerender work, build each environment, and test in workerd.</description>
      <link>https://loke.dev/writing/upgrade-astro-6-cloudflare-workerd</link>
      <guid isPermaLink="true">https://loke.dev/writing/upgrade-astro-6-cloudflare-workerd</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category><category>Platform and cloud</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/41cbae212a24fe155ff3fbf358aad0f0f3508a53-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Upgrade Vite 7 to Vite 8 Without a Surprise</title>
      <description>Use a safe Vite 7 to Vite 8 migration path: check Node support, isolate Rolldown, update optimizer config, and test HMR and production output.</description>
      <link>https://loke.dev/writing/upgrade-vite-7-to-vite-8-rolldown</link>
      <guid isPermaLink="true">https://loke.dev/writing/upgrade-vite-7-to-vite-8-rolldown</guid>
      <pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
      <category>Package management and CI</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/4387e95b5bf8da8a57693f2da783f7ddecc98712-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Next.js 16 Cache Components: Choose cacheLife Before You Cache Data</title>
      <description>Use a clear freshness contract for Next.js 16 Cache Components: decide what can be shared, set cacheLife deliberately, tag reads, and test invalidation.</description>
      <link>https://loke.dev/writing/nextjs-16-cache-components-cachelife-guide</link>
      <guid isPermaLink="true">https://loke.dev/writing/nextjs-16-cache-components-cachelife-guide</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/7041a6360466c8561f9186b3d507dcb89d1d6d7b-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Migrate Next.js Pages Router to App Router Without Breaking Everything</title>
      <description>A detailed Pages Router to App Router migration guide covering layouts, route structure, Server Components, caching, metadata, forms, auth, testing, and a safe rollout.</description>
      <link>https://loke.dev/writing/migrate-nextjs-pages-router-to-app-router</link>
      <guid isPermaLink="true">https://loke.dev/writing/migrate-nextjs-pages-router-to-app-router</guid>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>Web frameworks</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/c489628fd8cc79b4cbe31e9ede537e61e93fd710-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>pnpm 11 Ignored Your Overrides: Move Config Before CI Rewrites It</title>
      <description>pnpm 11 moved project settings out of package.json. Migrate overrides and build policy to pnpm-workspace.yaml before CI rewrites your lockfile.</description>
      <link>https://loke.dev/writing/pnpm-11-overrides-not-working-migration</link>
      <guid isPermaLink="true">https://loke.dev/writing/pnpm-11-overrides-not-working-migration</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <category>Package management and CI</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/f921e2897f2ae41b1e45a11d7ec3ab276e18ecff-1672x941.png?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
  </channel>
</rss>