Astro の Service Worker が新着記事を1回分遅れて表示していた — 一覧ページをネットワーク優先にする
Astro の Service Worker がすべてのナビゲーションをキャッシュ優先で返していたため、新着記事が1回分遅れて出ていました。一覧ページはネットワークを先に見るようにしています。
Astro の Service Worker がすべてのナビゲーションをキャッシュ優先で返していたため、新着記事が1回分遅れて出ていました。一覧ページはネットワークを先に見るようにしています。
AstroブログのService Workerで、サイト共通のCSSとJS 205KBを事前キャッシュします。記事は読んだ分だけ50件まで保持し、図版スタイルは必要になった時点でキャッシュします。
被リンクとrel=canonicalが何をするのか、ZennとQiitaで方針が変わる理由、そして記事の転載を作業ではなく貼り付けに変えたパイプラインの話。
AstroブログをGoogleとBingに載せた方法。AIクローラーを名指しするrobots.txt、headに置いたJSON-LD、記事のプレーンテキスト版、デプロイごとのIndexNow送信を紹介します。
プライベートリポジトリでは依存関係グラフが既定でオフのため、DependabotはnpmのPRを1件も出さず、自動マージのワークフローはCI完了の45秒前にマージしていた。
このブログが人気記事にバッジを付ける仕組み。ビルド中に Vercel Web Analytics へ 1 回問い合わせ、3 つのロケールを合算して静的 HTML に焼き込みます。
Claude Code は .claude/ を保護対象パスとして扱うため、許可ルールでは事前承認できません。書き換わり続ける用語集を CLAUDE_PROJECT_DIR で外に出した記録です。
Chrome DevTools MCP と Playwright MCP がコーディングエージェントに渡すものは違います。それぞれが何を提供するのか、そして Astro ブログが一方を残して他方を拒否した理由。
完全な静的Astroサイトにサーバーレスなルートをひとつだけ足し、「いいね」を共有カウントする方法。Upstash Redisのキー設計と、動作を確かめるまでに踏んだCIのバグをまとめます。
IME の変換中に Pagefind がページ遷移していました。isComposing は必要ですが十分ではありません。WebKit は keydown より先に compositionend を発火します。
Astroでwidth:100%が256pxのスクリーンショットをぼかしていた理由と、ネイティブダイアログでスマートフォンでも図版が読めるようになるまで。設計を正したのは7つの計測でした。
Pagefindはビルドのたびに日本語と中国語のステミング未対応を警告していました。本当の不具合は別にあり、検索語と索引のトークナイザーの不一致が誤ったページを返していました。