<?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>Fri, 07 Aug 2026 13:17:29 GMT</lastBuildDate>
    <item>
      <title>Fix Tailwind Container Query Layout Bugs in Real Components</title>
      <description>Understand why a Tailwind container query does nothing or changes the wrong card, then fix the container boundary, query name, and responsive fallback.</description>
      <link>https://loke.dev/blog/fix-tailwind-container-query-layout-bugs</link>
      <guid isPermaLink="true">https://loke.dev/blog/fix-tailwind-container-query-layout-bugs</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/9f925c5e350b7d3f35c8b6a1caf4be2a54d5d643-1376x768.jpg?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/blog/fix-slow-nextjs-server-actions-data-fetching</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/6f4ca9e94a8a46546c08be71fec211b2372f766d-1376x768.jpg?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/blog/fix-nextjs-hydration-errors-production</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/2ddacc8cad94d2eced1a0312c610e1da53402648-1376x768.jpg?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/blog/fix-nextjs-16-3-next-server-nft-enoent-vercel</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/da9ef69434003b032db6bd2dc90ed29ba0abcd28-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Fix pnpm ERR_PNPM_AUDIT_BAD_RESPONSE HTTP 410</title>
      <description>Fix pnpm audit&apos;s HTTP 410 failure by moving from pnpm 10 to v11&apos;s bulk advisory endpoint, then migrate ignored advisories safely.</description>
      <link>https://loke.dev/blog/fix-pnpm-audit-bad-response-http-410</link>
      <guid isPermaLink="true">https://loke.dev/blog/fix-pnpm-audit-bad-response-http-410</guid>
      <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
      
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/b7b2e8837f6c77e27b3e76fa9d2fa53e3409ba6b-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Fix pnpm “Cannot Use &apos;in&apos; Operator” in GitHub Actions</title>
      <description>Fix pnpm&apos;s integrity undefined crash in GitHub Actions by replacing broken 11.12.0, pinning one version, and updating the setup step safely.</description>
      <link>https://loke.dev/blog/fix-pnpm-integrity-undefined-github-actions</link>
      <guid isPermaLink="true">https://loke.dev/blog/fix-pnpm-integrity-undefined-github-actions</guid>
      <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
      
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/558031cd344bf0521c8ec02ad2955858d4a0b9eb-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>Next.js 16 “Module Factory Is Not Available”: Diagnose Turbopack HMR</title>
      <description>Identify the Cache Components and lazy-loading Turbopack HMR regression, isolate it with Webpack, and validate production separately.</description>
      <link>https://loke.dev/blog/nextjs-module-factory-not-available-turbopack-hmr</link>
      <guid isPermaLink="true">https://loke.dev/blog/nextjs-module-factory-not-available-turbopack-hmr</guid>
      <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
      
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/f84df4dc95bc74c7b50775ef89ebbf0ddc383872-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>GPT-5.6 Sol vs Terra vs Luna: Which Model Should You Use?</title>
      <description>Compare GPT-5.6 Sol, Terra, and Luna for coding, agents, high-volume API work, context limits, reasoning controls, and current pricing.</description>
      <link>https://loke.dev/blog/gpt-5-6-sol-vs-terra-vs-luna</link>
      <guid isPermaLink="true">https://loke.dev/blog/gpt-5-6-sol-vs-terra-vs-luna</guid>
      <pubDate>Sun, 02 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/39ff20734566ce34a2a8628ae5976fe599041c12-1376x768.jpg?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/blog/typescript-7-typescript-eslint-side-by-side</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/f5311ac911e2e0174269da2b513cbb6518e4cd0d-1376x768.jpg?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/blog/nextjs-sharp-vulnerability-audit-vercel-override</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/034eec1fab75481e7acb84aa98d8ef012dfdb87b-1376x768.jpg?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/blog/fix-cloudflare-workers-types-v5-dated-entrypoints</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/45cacc7c2d29011b6b8a862dda09fd2524ae1f97-1376x768.jpg?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/blog/node-20-eol-find-runtime-pins</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/15ad2fa5cd53ec17555616ebd18537aeb62dfeeb-1376x768.jpg?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/blog/compare-preview-production-before-merge</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/125f6911a400f600bc8a697bc5a408918a3a8e8b-1376x768.jpg?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/blog/run-multiple-cloudflare-workers-locally</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/46a414aa25b4348d350da6b7e00227fb2cb1d96e-1376x768.jpg?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/blog/lint-wrangler-jsonc-github-actions</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/74603c9a62d4ef1f6fc065aafed96faf5e946719-1376x768.jpg?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/blog/upgrade-astro-6-cloudflare-workerd</link>
      <guid isPermaLink="true">https://loke.dev/blog/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/1422952b8542caa3c5a641d42093168af4e3e599-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>1Password for Docker Compose: Protect Secret Zero</title>
      <description>Use 1Password with Docker Compose without hiding the hard part: protect the service-account token, prefer file secrets, and test revocation and recovery.</description>
      <link>https://loke.dev/blog/1password-docker-compose-service-account-token</link>
      <guid isPermaLink="true">https://loke.dev/blog/1password-docker-compose-service-account-token</guid>
      <pubDate>Fri, 24 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/73e43dd8af569e717b72c3b0620a0cbfead69cf9-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>1Password vs Bitwarden for Developers: Choose by Workflow</title>
      <description>Compare 1Password and Bitwarden for developer workflows: SSH agents, CLIs, local and CI secrets, self-hosting, EU regions, pricing, and recovery.</description>
      <link>https://loke.dev/blog/1password-vs-bitwarden-developers</link>
      <guid isPermaLink="true">https://loke.dev/blog/1password-vs-bitwarden-developers</guid>
      <pubDate>Fri, 24 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/c91641b4b4a4661de02d4e42691919ec3af1d78d-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>1Password in GitHub Actions: Protect the Bootstrap Token</title>
      <description>Use 1Password load-secrets-action with a scoped service account, then isolate fork pull requests, job outputs, environments, logs, and token rotation.</description>
      <link>https://loke.dev/blog/1password-github-actions-service-account-secrets</link>
      <guid isPermaLink="true">https://loke.dev/blog/1password-github-actions-service-account-secrets</guid>
      <pubDate>Fri, 24 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/29bc0b61ae0c6999c7e70ae37e25951ffaad6385-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
    <item>
      <title>1Password MCP for Codex: What the Agent Can Actually See</title>
      <description>Set up the 1Password Environments MCP server for Codex, then test model context, local mounts, process access, approvals, and CI boundaries.</description>
      <link>https://loke.dev/blog/1password-mcp-codex-secrets</link>
      <guid isPermaLink="true">https://loke.dev/blog/1password-mcp-codex-secrets</guid>
      <pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
      <category>Platform and cloud</category>
      <author>hello@loke.dev (Loke)</author>
      <media:content url="https://cdn.sanity.io/images/l25uat4p/production/57033e4682508eca68bd94917675d23017e327e3-1376x768.jpg?w=1200&amp;fm=jpg&amp;q=80" type="image/jpeg" medium="image" />
    </item>
  </channel>
</rss>