[{"data":1,"prerenderedAt":69},["ShallowReactive",2],{"tag-articles-astro":3},[4,10,14,18,22,26,31,36,40,45,49,54,59,64],{"title":5,"description":6,"path":7,"publishedAt":8,"updatedAt":9},"家族旅行サイトに『意思決定ページ』と動的年齢計算を仕込んだ — import.meta.glob で個人情報を防御する","宿泊先を選ぶ意思決定をテーブルで可視化し、家族の生年月から年齢を動的計算するヘルパーを Astro サイトに組み込んだ。個人情報は .gitignore で除外し、import.meta.glob で『あれば読む、無ければ空配列』に倒した記録。","/decision-pages-and-dynamic-family-ages","2026-05-17T00:00:00.000Z",null,{"title":11,"description":12,"path":13,"publishedAt":8,"updatedAt":9},"2026年5月17日の開発日記 - 家族旅行アーカイブを Astro + Cloudflare で立ち上げて一日で形にした","日曜の朝に eurekapu-nuxt4 の積み残し 3 系統を片付け、その流れで家族旅行アーカイブを Astro + Cloudflare Pages でゼロから立ち上げた。ガントチャート、Leaflet 地図、意思決定ページ、家族年齢の動的計算まで一日で着地させた記録。","/2026-05-17-diary",{"title":15,"description":16,"path":17,"publishedAt":8,"updatedAt":9},"家族旅行アーカイブを Astro + Cloudflare Pages で立ち上げた記録（pnpm の minimumReleaseAge で躓いた話含む）","8月の大分帰省を起点に、家族旅行の計画と記録を残すサイトを Astro でゼロから立ち上げた。Nuxt ではなく Astro を選んだ理由、pnpm のサプライチェーン攻撃対策設定でハマったところ、Cloudflare Pages の Direct Upload と GitHub 連携モードの違い、Wikimedia 画像の ORB ブロック対処までを一気通貫で残す。","/family-trips-astro-cloudflare-launch",{"title":19,"description":20,"path":21,"publishedAt":8,"updatedAt":9},"旅行日程ガントチャートのレーン構成・転置レイアウトを試行錯誤した記録","Astroで作った家族旅行アーカイブの旅程ガントチャートを、レーン構成2→6→7、横長→縦長、時間目盛り、日付またぎ線、短バー潰れ対策と段階的に組み直した試行錯誤の記録。devサーバを4つも増やしてしまった失敗込み。","/gantt-chart-layout-iterations",{"title":23,"description":24,"path":25,"publishedAt":8,"updatedAt":9},"大分の行きたい場所60件＋福岡ガイド2本をLeafletで地図化：左カードリスト×右マップの分割UIをClaude Codeに組ませた一日","大分エリアの行きたい場所リスト60件超を座標付きで地図にプロットし、左サイドにスクロール可能なカードリスト、右側にLeafletマップを置いたGoogleマップ風の分割レイアウトに作り変えた。福岡2泊3日の家族ガイドと1泊2日の下見ガイドも同じ構造で立て、ガントバークリックで地図ズーム＋ピンハイライト＋詳細パネル表示まで連動させた。Tooltip→Popup切替、ラベル常時表示トグル、白地図切替＋localStorage保存、座標ミスの修正までの試行錯誤を残す","/leaflet-map-points-of-interest",{"title":27,"description":28,"path":29,"publishedAt":30,"updatedAt":9},"Astroガントで8/28最終便が見切れる問題を表示用endDate+1日バッファで直した","family-trips（Astro + Cloudflare Pages）の旅行詳細ページで、ガント右端の18:35便が枠外に飛び出していた。コンテンツのendDateは触らず、描画用にganttEndDate = endDate + 1日のダミー終点を渡して右側にのれんを足した。","/family-trips-gantt-buffer","2026-05-20T00:00:00.000Z",{"title":32,"description":33,"path":34,"publishedAt":35,"updatedAt":9},"大分帰省の家族旅行マップに阿蘇エリアのピンを25件まで増やした","星野リゾートのガイド・アソキャンの口コミ・周辺で自然にそのまま遊べるスポットを追加。dev server のキャッシュとポート競合に振り回された日。","/family-trip-map-aso-area-2026-05-21","2026-05-21T00:00:00.000Z",{"title":37,"description":38,"path":39,"publishedAt":35,"updatedAt":9},"高千穂峡貸しボートの研究ノートを、矢印キーで進めるスライド形式UIに変えた","公式画像とレビューをまとめた検討メモを、h2分割のスライドUIに改修。右上フロート目次と \u003Cp> ラップ問題のアンカー検出対応まで。","/takachiho-boat-research-slide-ui-2026-05-21",{"title":41,"description":42,"path":43,"publishedAt":44,"updatedAt":9},"家族旅行アーカイブの行程ガントを実日程に合わせて大幅更新した話","Astro製の家族旅行アーカイブで、宿泊・移動・観光をガント（タイムライン）へ反映。開始日と終了日を延ばし、宿泊を均一ブロックに揃え、便変更・宿候補探しまで一気に詰めた作業ログ。","/oita-trip-itinerary-gantt","2026-05-29T00:00:00.000Z",{"title":46,"description":47,"path":48,"publishedAt":44,"updatedAt":9},"旅行ページの『参加者』をSingle Source of Truthへ寄せたリファクタ","家族旅行アーカイブで、frontmatterの手入力membersとfamily.tsの二重管理を解消。参加者をfamily由来に一本化し、スキーマをparticipantsへ置き換えた記録。","/trip-family-members-ssot-refactor",{"title":50,"description":51,"path":52,"publishedAt":53,"updatedAt":9},"家族旅行の費用比較ページを作る — 宿泊プランの実質宿泊費を逆算する","家族旅行プロジェクトを立ち上げ、レンタカーの取消条件を反映し、宿泊プランから体験費を差し引いて実質の宿泊費を逆算するページを作った開発ログ。","/family-trips-cost-comparison-page","2026-06-02T00:00:00.000Z",{"title":55,"description":56,"path":57,"publishedAt":58,"updatedAt":9},"家族5人で世界の行きたい場所を全部回るといくら？12並列ワークフローで費用シミュレーションを作った","ピラミッドやイースター島など行きたい場所12ヶ所のカード一覧と2泊3日ガイドをSonnet 5の12並列ワークフローで生成し、家族5人分の総額シミュレーションページを構築。航空券が費用の8割超と判明し、南極を除外する意思決定までの記録。","/family-trip-wishlist-cost-simulation","2026-07-13T00:00:00.000Z",{"title":60,"description":61,"path":62,"publishedAt":63,"updatedAt":9},"Webサービスの技術構成 2026年版 — Vue.js/Nuxt/Astroの使い分けとその理由","個人的な技術選定メモをVue.jsベースに統一し、React+ViteとNext+Viteの関係、Vue+ViteとNuxtの分かれ目、Astroとの使い分け、Workers直接とHonoの使い分け、DB・ストレージ・メール配信の規模別実例までを整理する","/web-tech-stack-2026","2026-07-22T00:00:00.000Z",{"title":65,"description":66,"path":67,"publishedAt":68,"updatedAt":9},"「汎用的にはAstro」は何を指しているのか","静的サイトの技術選定でAstroが「汎用的」と評される理由を、Nuxtとの比較で整理する。汎用性には機能の広さと適合度という二つの軸があり、勝つ側が違うだけである","/astro-vs-nuxt-general-purpose","2026-07-23T00:00:00.000Z",1785654924483]