[{"data":1,"prerenderedAt":138},["ShallowReactive",2],{"tag-articles-cloudflare-pages":3},[4,16,25,32,40,50,58,68,82,91,100,110,121,129],{"title":5,"description":6,"path":7,"tags":8,"publishedAt":14,"updatedAt":15},"サイトマップ実装の対応方針","@nuxtjs/sitemapモジュールを使用したサイトマップ実装の調査結果と実装完了報告","/sitemap-implementation-plan",[9,10,11,12,13],"sitemap","seo","nuxt","cloudflare-pages","nuxt-content","2025-12-02T00:00:00.000Z","2026-01-05T00:00:00.000Z",{"title":17,"description":18,"path":19,"tags":20,"publishedAt":23,"updatedAt":24},"Blog再読み込みで一覧が消える＆記事遷移が遅い調査メモ","Cloudflare Pages 本番で発生したブログ一覧非表示と初回遷移遅延の原因と対応の記録","/blog-reload-and-slow-transition-investigation",[11,12,21,22],"performance","troubleshooting","2025-12-06T00:00:00.000Z",null,{"title":26,"description":27,"path":28,"tags":29,"publishedAt":31,"updatedAt":24},"Nuxt Content v3 + Cloudflare Pages で直リンク時に404になる問題の解決","Nuxt Content v3をCloudflare Pagesに静的デプロイすると、URLを直接入力したときだけ404になる。原因はトレイリングスラッシュによるuseAsyncDataのキー不一致だった。","/nuxt-content-cloudflare-404-fix",[11,13,12,30,22],"ssg","2026-02-11T00:00:00.000Z",{"title":33,"description":34,"path":35,"tags":36,"publishedAt":31,"updatedAt":24},"WordPressブログをNuxt 3 + Cloudflare Pagesに移行した記録","ponponpopopoon.com（17ページ・169記事）をWordPressからNuxt 3 + @nuxt/content v3に移行。Pythonクローリング、日本語ファイル名問題、permalinkルーティング、SSG設定、404トラブルシューティングまでの全工程をまとめた。","/pon-blog-wordpress-to-nuxt3-migration-2026-02-11",[11,13,37,38,12,39,30],"wordpress","migration","python",{"title":41,"description":42,"path":43,"tags":44,"publishedAt":49,"updatedAt":24},"業種別LP新規構築から全サイト一括デプロイまでの一日","Googleビジネスプロフィール向け新規LPの構築、英語版対応、フォームバリデーション改善、全サイト一括デプロイまでの作業ログ","/tax-lp-construction-2026-02-13",[45,12,46,47,48],"landing-page","i18n","deploy","form-validation","2026-02-13T00:00:00.000Z",{"title":51,"description":52,"path":53,"tags":54,"publishedAt":57,"updatedAt":24},"Nuxt 3でサウンドアーカイブサイトを構築してCloudflare Pagesにデプロイした","Nuxt 3 + Nuxt Contentでサウンドアーカイブのウェブサイトを構築し、Cloudflare Pagesへデプロイするまでの作業ログ。コンポーネント設計、Nuxt 4の命名規則問題、デプロイスクリプトの改善、OGP/SEO設定などを記録する。","/sound-archive-site-build-2026-02-14",[55,12,47,10,56],"nuxt3","tokyo-soundscape","2026-02-14T00:00:00.000Z",{"title":59,"description":60,"path":61,"tags":62,"publishedAt":67,"updatedAt":24},"音アーカイブ本番サイトを多言語化・リブランド・ナビ再構成・機材更新した","@nuxtjs/i18n v10で日英中3言語対応を実装し、Tokyo Soundscape Archiveから音アーカイブへリブランド。ライブラリを消えゆく音・残り続ける音の2カテゴリに再構成し、機材情報も実機ベースに更新した。","/oto-archive-production-site-2026-02-17",[63,46,64,65,66,12,56],"nuxtjs-i18n","rebrand","navigation","equipment","2026-02-17T00:00:00.000Z",{"title":69,"description":70,"path":71,"tags":72,"publishedAt":81,"updatedAt":24},"2026年2月20日の開発日記 - Eurekapu大規模移行・税務アシスタント機能拡張・書籍OCR一括処理","簿記問題集のNuxt4移行とCloudflare Pagesデプロイ、Better Auth認証基盤構築、税務アシスタントの税区分機能実装、書籍OCRバッチクリーンアップなど、5プロジェクトを横断した開発ログ。","/2026-02-20-diary",[73,74,75,76,77,78,12,79,80],"日記","eurekapu","tax-assistant","book-knowledge-base","tokyo-onkei","nuxt4","better-auth","OCR","2026-02-20T00:00:00.000Z",{"title":83,"description":84,"path":85,"tags":86,"publishedAt":81,"updatedAt":24},"Eurekapu Cloudflare Pages SSR化とBetter Auth認証基盤の構築","eurekapu-nuxt4をSSGからSSR化してCloudflare Pagesにデプロイ。D1データベースのセットアップ、Better Auth + Google OAuthの認証スケルトン実装、認証テスト7件全パスまでの記録。","/eurekapu-infra-auth-2026-02-20",[74,78,12,87,88,79,89,90,73],"ssr","d1","google-oauth","認証",{"title":92,"description":93,"path":94,"tags":95,"publishedAt":99,"updatedAt":24},"独立型ダッシュボードを作って壊した日 — 1ドメイン統合型への方針転換","eurekapu-dashboardを独立アプリとして設計・実装・デプロイまで通したが、ユーザー体験を掘り下げた結果、サブドメイン分離の問題に気づき1ドメイン統合型に方針転換。作って壊すまでの経緯と、得られた技術知見の記録。","/eurekapu-dashboard-development-2026-02-21",[74,96,78,12,88,79,97,98,73],"dashboard","管理画面","設計変更","2026-02-21T00:00:00.000Z",{"title":101,"description":102,"path":103,"tags":104,"publishedAt":109,"updatedAt":24},"テスト失敗修正・Cloudflareデプロイの日本語コミットメッセージ問題・公開記事3本","pnpm test:run の失敗を keydown ガードと useQuizSeoMeta で潰し、本番が404のままだったwranglerデプロイを4.91.0更新と --commit-message で復旧、ついでに公開記事3本を書いた一日","/tests-deploy-and-misc-articles",[105,106,12,107,108,10],"testing","vitest","wrangler","prefecture-quiz","2026-05-15T00:00:00.000Z",{"title":111,"description":112,"path":113,"tags":114,"publishedAt":120,"updatedAt":24},"2026年5月17日の開発日記 - 家族旅行アーカイブを Astro + Cloudflare で立ち上げて一日で形にした","日曜の朝に eurekapu-nuxt4 の積み残し 3 系統を片付け、その流れで家族旅行アーカイブを Astro + Cloudflare Pages でゼロから立ち上げた。ガントチャート、Leaflet 地図、意思決定ページ、家族年齢の動的計算まで一日で着地させた記録。","/2026-05-17-diary",[73,115,116,12,117,118,119],"family-trips","astro","leaflet","gantt","eurekapu-nuxt4","2026-05-17T00:00:00.000Z",{"title":122,"description":123,"path":124,"tags":125,"publishedAt":120,"updatedAt":24},"家族旅行アーカイブを Astro + Cloudflare Pages で立ち上げた記録（pnpm の minimumReleaseAge で躓いた話含む）","8月の大分帰省を起点に、家族旅行の計画と記録を残すサイトを Astro でゼロから立ち上げた。Nuxt ではなく Astro を選んだ理由、pnpm のサプライチェーン攻撃対策設定でハマったところ、Cloudflare Pages の Direct Upload と GitHub 連携モードの違い、Wikimedia 画像の ORB ブロック対処までを一気通貫で残す。","/family-trips-astro-cloudflare-launch",[116,12,126,127,117,115,128],"pnpm","cloudflare-access","supply-chain-security",{"title":130,"description":131,"path":132,"tags":133,"publishedAt":137,"updatedAt":24},"/blog のカレンダーが一瞬光って消える hydration mismatch を payload null 化で突き止めた","Cloudflare Pages にデプロイした /blog で当月の記事27本が一切表示されない。SSR の HTML には載っているのに、ブラウザで見ると一瞬出てから空に化ける。原因は queryCollection の戻り値が payload reducer で null に落ちることだった。plain POJO に詰め替えて修復し、再発防止ルールを .claude/rules/ に固定した。","/blog-payload-null-root-fix",[11,13,30,134,12,135,136],"hydration","payload","trouble-shooting","2026-06-05T00:00:00.000Z",1781076243814]