[{"data":1,"prerenderedAt":518},["ShallowReactive",2],{"/blog/comment-feat/":3,"related-map":128,"/blog/comment-feat-surround":513},{"id":4,"title":5,"body":6,"category":113,"coverImage":114,"date":115,"description":16,"draft":116,"extension":117,"meta":118,"navigation":119,"path":120,"rawbody":121,"seo":122,"stem":123,"tags":124,"__hash__":127},"blog/blog/comment-feat/index.md","ブログにコメント機能つけたぞ！（いらない）",{"type":7,"value":8,"toc":103},"minimark",[9,13,17,20,23,26,33,36,44,47,51,54,57,63,66,69,72,78,88,91,94,97],[10,11,12],"h2",{"id":12},"概要",[14,15,16],"p",{},"Claudeのレートリミット余ってる！？ならなんか作りてえよなぁ！？ということで、このブログにコメント機能を追加してきました。ので、そのあれこれと技術的なつまらない話を書きます。",[14,18,19],{},"誰が使うんだ？というのはともかく、匿名可だしメアドもいらないので、荒らさない程度になんか書いてってくれると嬉しいかも。いつも通りカバー画像は無関係です、トモコレ楽しいね。",[10,21,22],{"id":22},"中身",[14,24,25],{},"設計の中身の話を軽くします。興味のない人は読み飛ばしてください。",[14,27,28],{},[29,30],"img",{"alt":31,"src":32},"簡単な図","https://images.bokukoha.dev/blog/comment-feat/__________2026-05-17_195940.webp",[14,34,35],{},"と、このようにいいね機能同様AWSフル活用のサーバーレス構成です。管理は以前作ったヘッドレスCMSからやってるので、そこだけはサーバーレスではないんですが。",[14,37,38,39,43],{},"モデレーションにひと工夫というか面白い要素を取り入れたかったので、今回は",[40,41,42],"code",{},"Claude-haiku-4.5","にモデレーションの一部を丸投げする方式を取ってみました。あんまし中身をべらべら喋るのも運用上良くないと思うので詳しくは言えませんが、攻撃的なコンテンツや宣伝コンテンツを排除するために2段階で判定するアプローチをとっています。",[14,45,46],{},"今回もいつも通りAWSの権限周りが一番の難所だった気がしますね。他はこっちが設計決めてClaudeに任せるだけだったのでそこまでという感じ。ほぼClaudeに鞭打ちしていただけでした。",[10,48,50],{"id":49},"uiの工夫","UIの工夫",[14,52,53],{},"これ、下スクロールして見ていただいたらわかるんですがかなり自信作です。めっちゃ見やすくないですか？",[14,55,56],{},"RedditとYoutubeのいいところどりをしたようなUIに気合で仕上げてきました。中身はほとんどClaude製なので僕は鞭打ってただけなんですがね……。",[14,58,59],{},[29,60],{"alt":61,"src":62},"これはプロトタイプ① 色々悩んだけど結局Youtubeのコメ欄を大いに参考にした","https://images.bokukoha.dev/blog/comment-feat/__________2026-05-17_200707.webp",[10,64,65],{"id":65},"コーディングエージェントありがとう",[14,67,68],{},"かんたん構成図見ていただいたらわかると思うんですが、今回の実装は①ブログページ, ②CMS, ③AWSの三か所を横断する形でのプロジェクトとなりました。",[14,70,71],{},"Misskeyで同じ話をしたのですが、1つのものを作るだけなら全然自力でもなんとかなりますが、複数プロジェクトを横断するような大規模プロジェクトだと、コーディングエージェントの有能さがほんとに際立つなあと痛感しました。俺が忘れてることでも覚えててくれてありがとう。",[14,73,74],{},[29,75],{"alt":76,"src":77},"この謎生物はナニ？","https://images.bokukoha.dev/blog/comment-feat/__________2026-05-17_201309.webp",[14,79,80,81],{},"それはそれとして、逆に俺が覚えてるのにClaudeが忘れてることもちょくちょくあって、「君、その修正ここ変えるだけじゃね？」みたいなことを言ったら「鋭い視点ですね😎」とか返してきて殴りたくなる瞬間もありましたが。 ",[82,83,84],"small",{},[85,86,87],"del",{},"それくらい自分で直せってことですかね",[10,89,90],{"id":90},"おわり",[14,92,93],{},"物の関係上あまり中身を詳しく話せないのが悲しいところですね。こういったモデレーションが必要なコンテンツ（要するにユーザーからの入力を受け付けるもの）を作ったのって実は初めてなので、モデレーション設計が自分でもわかるくらいガバガバな気がします。",[14,95,96],{},"良ければ下のコメント欄で僕とClaudeの検閲の穴をかいくぐってくてみてください。正直実用しながら検閲の調整して行くのがちょうどいいよな❓",[14,98,99],{},[29,100],{"alt":101,"src":102},"おまけ　ロビンの歌を聞いて感動するサンデー。近親相姦、一番いい歌詞","https://images.bokukoha.dev/blog/comment-feat/2026051117091700_s.webp",{"title":104,"searchDepth":105,"depth":105,"links":106},"",4,[107,109,110,111,112],{"id":12,"depth":108,"text":12},2,{"id":22,"depth":108,"text":22},{"id":49,"depth":108,"text":50},{"id":65,"depth":108,"text":65},{"id":90,"depth":108,"text":90},"技術系","https://images.bokukoha.dev/blog/test/2026051117085800_s.webp","2026-05-17",false,"md",{},true,"/blog/comment-feat","---\ntitle: \"ブログにコメント機能つけたぞ！（いらない）\"\ndate: \"2026-05-17\"\ncategory: \"技術系\"\ntags:\n  - \"AWS\"\n  - \"Claude\"\ncoverImage: \"https://images.bokukoha.dev/blog/test/2026051117085800_s.webp\"\ndraft: false\ndescription: \"Claudeのレートリミット余ってる！？ならなんか作りてえよなぁ！？ということで、このブログにコメント機能を追加してきました。ので、そのあれこれと技術的なつまらない話を書きます。\"\n---\n\n## 概要\n\nClaudeのレートリミット余ってる！？ならなんか作りてえよなぁ！？ということで、このブログにコメント機能を追加してきました。ので、そのあれこれと技術的なつまらない話を書きます。\n\n誰が使うんだ？というのはともかく、匿名可だしメアドもいらないので、荒らさない程度になんか書いてってくれると嬉しいかも。いつも通りカバー画像は無関係です、トモコレ楽しいね。\n\n## 中身\n\n設計の中身の話を軽くします。興味のない人は読み飛ばしてください。\n\n![簡単な図](https://images.bokukoha.dev/blog/comment-feat/__________2026-05-17_195940.webp)\n\nと、このようにいいね機能同様AWSフル活用のサーバーレス構成です。管理は以前作ったヘッドレスCMSからやってるので、そこだけはサーバーレスではないんですが。\n\nモデレーションにひと工夫というか面白い要素を取り入れたかったので、今回は`Claude-haiku-4.5`にモデレーションの一部を丸投げする方式を取ってみました。あんまし中身をべらべら喋るのも運用上良くないと思うので詳しくは言えませんが、攻撃的なコンテンツや宣伝コンテンツを排除するために2段階で判定するアプローチをとっています。\n\n今回もいつも通りAWSの権限周りが一番の難所だった気がしますね。他はこっちが設計決めてClaudeに任せるだけだったのでそこまでという感じ。ほぼClaudeに鞭打ちしていただけでした。\n\n## UIの工夫\n\nこれ、下スクロールして見ていただいたらわかるんですがかなり自信作です。めっちゃ見やすくないですか？\n\nRedditとYoutubeのいいところどりをしたようなUIに気合で仕上げてきました。中身はほとんどClaude製なので僕は鞭打ってただけなんですがね……。\n\n![これはプロトタイプ① 色々悩んだけど結局Youtubeのコメ欄を大いに参考にした](https://images.bokukoha.dev/blog/comment-feat/__________2026-05-17_200707.webp)\n\n## コーディングエージェントありがとう\n\nかんたん構成図見ていただいたらわかると思うんですが、今回の実装は①ブログページ, ②CMS, ③AWSの三か所を横断する形でのプロジェクトとなりました。\n\nMisskeyで同じ話をしたのですが、1つのものを作るだけなら全然自力でもなんとかなりますが、複数プロジェクトを横断するような大規模プロジェクトだと、コーディングエージェントの有能さがほんとに際立つなあと痛感しました。俺が忘れてることでも覚えててくれてありがとう。\n\n![この謎生物はナニ？](https://images.bokukoha.dev/blog/comment-feat/__________2026-05-17_201309.webp)\n\nそれはそれとして、逆に俺が覚えてるのにClaudeが忘れてることもちょくちょくあって、「君、その修正ここ変えるだけじゃね？」みたいなことを言ったら「鋭い視点ですね😎」とか返してきて殴りたくなる瞬間もありましたが。 \u003Csmall>~~それくらい自分で直せってことですかね~~\u003C/small>\n\n## おわり\n\n物の関係上あまり中身を詳しく話せないのが悲しいところですね。こういったモデレーションが必要なコンテンツ（要するにユーザーからの入力を受け付けるもの）を作ったのって実は初めてなので、モデレーション設計が自分でもわかるくらいガバガバな気がします。\n\n良ければ下のコメント欄で僕とClaudeの検閲の穴をかいくぐってくてみてください。正直実用しながら検閲の調整して行くのがちょうどいいよな❓\n\n![おまけ　ロビンの歌を聞いて感動するサンデー。近親相姦、一番いい歌詞](https://images.bokukoha.dev/blog/comment-feat/2026051117091700_s.webp)",{"title":5,"description":16},"blog/comment-feat/index",[125,126],"AWS","Claude","Q-2UMDqsWTGSIdWg0H1jw_VWEcdDhU9aftiwqCSPwyo",{"/blog/music-history":129,"/blog/chichibu":153,"/blog/comment-feat":179,"/blog/stop-drunk":205,"/blog/build-pc":215,"/blog/cms-dev":229,"/blog/kansai_day3to4":243,"/blog/kansai_ryokou":269,"/blog/hiroshima":279,"/blog/chokaguya":285,"/blog/yamaokaya":295,"/blog/tonalite":301,"/blog/new_year_2026":311,"/blog/year_2025":317,"/blog/pixel10":327,"/blog/gpt-to-gemini":333,"/blog/za_log":339,"/blog/misskey-setting":345,"/blog/docker-on-lxc":359,"/blog/md_components":369,"/blog/nuxt_new_site":379,"/blog/simokita_moon":385,"/blog/mc_server":395,"/blog/aws_like_button":405,"/blog/sendai":411,"/blog/taityo":417,"/blog/add-share-button":423,"/blog/aws_summit":429,"/blog/drive_nikki":435,"/blog/2025-06-12":441,"/blog/cf_build":447,"/blog/ota_sanpo":457,"/blog/nuxt_content":463,"/blog/sushi":469,"/blog/misskey-docker":475,"/blog/server-make":481,"/blog/sanpo-log":491,"/blog/hugo-blog":501,"/blog/1":507},[130,136,141,147,152],{"title":131,"path":132,"date":133,"category":134,"coverImage":135},"秩父にレズアニメの看板探しに行ったぞ！","/blog/chichibu","2026-05-30","おでかけログ","https://images.bokukoha.dev/blog/chichibu/PXL_20260529_044435415.webp",{"title":137,"path":138,"date":139,"category":113,"coverImage":140},"Hugo + Stackテーマで楽に作る個人ブログ","/blog/hugo-blog","2025-02-20","https://images.bokukoha.dev/blog/hugo-blog/main.jpg",{"title":142,"path":143,"date":144,"category":145,"coverImage":146},"超かぐや姫！を見たぞ！～オタクの感想編～","/blog/chokaguya","2026-02-26","雑記","https://images.bokukoha.dev/blog/chokaguya/main.png",{"title":148,"path":149,"date":150,"category":145,"coverImage":151},"2025年楽しかったことまとめ","/blog/year_2025","2025-12-30","https://images.bokukoha.dev/blog/year_2025/main.jpg",{"title":5,"path":120,"date":115,"category":113,"coverImage":114},[154,159,164,169,174],{"title":155,"path":156,"date":157,"category":134,"coverImage":158},"ムーンアートナイト下北沢に行った日記","/blog/simokita_moon","2025-10-03","https://images.bokukoha.dev/blog/simokita_moon/main.jpg",{"title":160,"path":161,"date":162,"category":113,"coverImage":163},"ClaudePro契約してCMS作ったぞ！！！","/blog/cms-dev","2026-04-09","https://images.bokukoha.dev/blog/cms-dev/PXL_20260327_034729621.jpg",{"title":165,"path":166,"date":167,"category":145,"coverImage":168},"超久しぶりにPC自作したぞ！！の雑ログ","/blog/build-pc","2026-04-10","https://images.bokukoha.dev/blog/build-pc/1716.jpg",{"title":170,"path":171,"date":172,"category":134,"coverImage":173},"スタレのスシローコラボ行ってきた","/blog/sushi","2025-04-27","https://images.bokukoha.dev/blog/sushi/main.jpg",{"title":175,"path":176,"date":177,"category":134,"coverImage":178},"海ほたるにドライブ行ってきた","/blog/drive_nikki","2025-06-16","https://images.bokukoha.dev/blog/drive_nikki/main.jpg",[180,185,190,195,200],{"title":181,"path":182,"date":183,"category":113,"coverImage":184},"Hugo + StackのブログにAWSでいいねボタン実装した","/blog/aws_like_button","2025-09-21","https://images.bokukoha.dev/blog/aws_like_button/main.jpg",{"title":186,"path":187,"date":188,"category":113,"coverImage":189},"Nuxt Content3のコンポーネント呼び出し機能で遊んでみよう","/blog/md_components","2025-11-17","https://images.bokukoha.dev/blog/md_components/6.jpg",{"title":191,"path":192,"date":193,"category":145,"coverImage":194},"ワイヤレスイヤホンを買い替えたぞ！（Final TONALITE）","/blog/tonalite","2026-02-12","https://images.bokukoha.dev/blog/tonalite/main.jpg",{"title":196,"path":197,"date":198,"category":145,"coverImage":199},"おい、1カ月禁酒したのに何も効果ない件","/blog/stop-drunk","2026-04-19","https://images.bokukoha.dev/blog/stop-drunk/PXL_20260222_113942551.MACRO_FOCUS.MP.jpg",{"title":201,"path":202,"date":203,"category":145,"coverImage":204},"ブログ作った","/blog/1","2025-02-19","https://images.bokukoha.dev/blog/1/main.jpg",[206,207,208,209,210],{"title":5,"path":120,"date":115,"category":113,"coverImage":114},{"title":181,"path":182,"date":183,"category":113,"coverImage":184},{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":131,"path":132,"date":133,"category":134,"coverImage":135},{"title":211,"path":212,"date":213,"category":113,"coverImage":214},"Hugo + Stackのブログにシェアボタン実装した","/blog/add-share-button","2025-06-30","https://images.bokukoha.dev/blog/add-share-button/main.jpg",[216,217,222,223,228],{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":218,"path":219,"date":220,"category":145,"coverImage":221},"ポケモンZAクリアしたぞ！の感想","/blog/za_log","2025-12-01","https://images.bokukoha.dev/blog/za_log/main.jpg",{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":224,"path":225,"date":226,"category":145,"coverImage":227},"滑り込み1月まとめ！！","/blog/new_year_2026","2026-01-30","https://images.bokukoha.dev/blog/new_year_2026/main.jpg",{"title":142,"path":143,"date":144,"category":145,"coverImage":146},[230,231,232,237,238],{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},"個人サイトを0から作ったぞ！","/blog/nuxt_new_site","2025-11-13","https://images.bokukoha.dev/blog/nuxt_new_site/2.png",{"title":224,"path":225,"date":226,"category":145,"coverImage":227},{"title":239,"path":240,"date":241,"category":134,"coverImage":242},"突発で仙台旅行してきたぞ！日記","/blog/sendai","2025-09-17","https://images.bokukoha.dev/blog/sendai/main.jpg",[244,249,254,259,264],{"title":245,"path":246,"date":247,"category":134,"coverImage":248},"春休みラストの京都旅行してきたぞ！～関西1,2日目～","/blog/kansai_ryokou","2026-03-30","https://images.bokukoha.dev/blog/kansai_ryokou/main.jpg",{"title":250,"path":251,"date":252,"category":134,"coverImage":253},"ウルトラバカ散歩～山岡家を目指すぞ！編～","/blog/yamaokaya","2026-02-23","https://images.bokukoha.dev/blog/yamaokaya/main.jpg",{"title":255,"path":256,"date":257,"category":134,"coverImage":258},"初スカイメイト＆広島バカ散歩してきたぞ！","/blog/hiroshima","2026-03-15","https://images.bokukoha.dev/blog/hiroshima/main.jpg",{"title":260,"path":261,"date":262,"category":145,"coverImage":263},"オタクはバカ散歩をしろ！","/blog/ota_sanpo","2025-05-10","https://images.bokukoha.dev/blog/ota_sanpo/main.jpg",{"title":265,"path":266,"date":267,"category":134,"coverImage":268},"池袋から飯田橋まで散歩した","/blog/sanpo-log","2025-02-21","https://images.bokukoha.dev/blog/sanpo-log/main.jpg",[270,275,276,277,278],{"title":271,"path":272,"date":273,"category":134,"coverImage":274},"京都お花見バカ散歩＆名古屋メシ部～関西3,4日目～","/blog/kansai_day3to4","2026-03-31","https://images.bokukoha.dev/blog/kansai_day3to4/main.jpg",{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":175,"path":176,"date":177,"category":134,"coverImage":178},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":170,"path":171,"date":172,"category":134,"coverImage":173},[280,281,282,283,284],{"title":260,"path":261,"date":262,"category":145,"coverImage":263},{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":245,"path":246,"date":247,"category":134,"coverImage":248},{"title":250,"path":251,"date":252,"category":134,"coverImage":253},{"title":271,"path":272,"date":273,"category":134,"coverImage":274},[286,287,288,289,290],{"title":218,"path":219,"date":220,"category":145,"coverImage":221},{"title":260,"path":261,"date":262,"category":145,"coverImage":263},{"title":250,"path":251,"date":252,"category":134,"coverImage":253},{"title":245,"path":246,"date":247,"category":134,"coverImage":248},{"title":291,"path":292,"date":293,"category":134,"coverImage":294},"無知オタク、AWS Summitに行く","/blog/aws_summit","2025-06-26","https://images.bokukoha.dev/blog/AWS_summit/main.jpg",[296,297,298,299,300],{"title":271,"path":272,"date":273,"category":134,"coverImage":274},{"title":260,"path":261,"date":262,"category":145,"coverImage":263},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":142,"path":143,"date":144,"category":145,"coverImage":146},{"title":245,"path":246,"date":247,"category":134,"coverImage":248},[302,307,308,309,310],{"title":303,"path":304,"date":305,"category":145,"coverImage":306},"メインスマホをPixel10に乗り換えたぞ！","/blog/pixel10","2025-12-24","https://images.bokukoha.dev/blog/pixel10/main.jpg",{"title":5,"path":120,"date":115,"category":113,"coverImage":114},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":170,"path":171,"date":172,"category":134,"coverImage":173},[312,313,314,315,316],{"title":148,"path":149,"date":150,"category":145,"coverImage":151},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":303,"path":304,"date":305,"category":145,"coverImage":306},{"title":265,"path":266,"date":267,"category":134,"coverImage":268},[318,319,320,321,322],{"title":224,"path":225,"date":226,"category":145,"coverImage":227},{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":265,"path":266,"date":267,"category":134,"coverImage":268},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":323,"path":324,"date":325,"category":113,"coverImage":326},"Proxmoxでコンテナ on コンテナして自鯖落とした話","/blog/docker-on-lxc","2025-11-21","https://images.bokukoha.dev/blog/docker-on-lxc/main.png",[328,329,330,331,332],{"title":191,"path":192,"date":193,"category":145,"coverImage":194},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":5,"path":120,"date":115,"category":113,"coverImage":114},[334,335,336,337,338],{"title":265,"path":266,"date":267,"category":134,"coverImage":268},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":245,"path":246,"date":247,"category":134,"coverImage":248},[340,341,342,343,344],{"title":142,"path":143,"date":144,"category":145,"coverImage":146},{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":211,"path":212,"date":213,"category":113,"coverImage":214},{"title":131,"path":132,"date":133,"category":134,"coverImage":135},[346,351,356,357,358],{"title":347,"path":348,"date":349,"category":113,"coverImage":350},"HugoでのCloudflare Pagesのビルド失敗を回避する方法","/blog/cf_build","2025-05-11","https://images.bokukoha.dev/blog/cf_build/main.jpg",{"title":352,"path":353,"date":354,"category":113,"coverImage":355},"Cloudflare tunnelで作るMisskey自鯖","/blog/misskey-docker","2025-04-06","https://images.bokukoha.dev/blog/misskey-docker/main.jpg",{"title":170,"path":171,"date":172,"category":134,"coverImage":173},{"title":260,"path":261,"date":262,"category":145,"coverImage":263},{"title":211,"path":212,"date":213,"category":113,"coverImage":214},[360,361,362,367,368],{"title":352,"path":353,"date":354,"category":113,"coverImage":355},{"title":186,"path":187,"date":188,"category":113,"coverImage":189},{"title":363,"path":364,"date":365,"category":145,"coverImage":366},"労働体験して体調崩してた日記","/blog/taityo","2025-07-13","https://images.bokukoha.dev/blog/taityo/main.jpg",{"title":155,"path":156,"date":157,"category":134,"coverImage":158},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},[370,371,372,377,378],{"title":5,"path":120,"date":115,"category":113,"coverImage":114},{"title":323,"path":324,"date":325,"category":113,"coverImage":326},{"title":373,"path":374,"date":375,"category":113,"coverImage":376},"Nuxt Contentでブログもどきを作ってみた","/blog/nuxt_content","2025-05-09","https://images.bokukoha.dev/blog/nuxt_content/main.jpg",{"title":218,"path":219,"date":220,"category":145,"coverImage":221},{"title":155,"path":156,"date":157,"category":134,"coverImage":158},[380,381,382,383,384],{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":155,"path":156,"date":157,"category":134,"coverImage":158},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},[386,387,388,389,394],{"title":131,"path":132,"date":133,"category":134,"coverImage":135},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":390,"path":391,"date":392,"category":134,"coverImage":393},"先週は色々あったよ日記","/blog/2025-06-12","2025-06-12","https://images.bokukoha.dev/blog/2025-06-12/main.jpg",{"title":175,"path":176,"date":177,"category":134,"coverImage":178},[396,401,402,403,404],{"title":397,"path":398,"date":399,"category":113,"coverImage":400},"3万円くらいで作る自宅サーバー","/blog/server-make","2025-02-22","https://images.bokukoha.dev/blog/server-make/main.jpg",{"title":352,"path":353,"date":354,"category":113,"coverImage":355},{"title":155,"path":156,"date":157,"category":134,"coverImage":158},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":250,"path":251,"date":252,"category":134,"coverImage":253},[406,407,408,409,410],{"title":211,"path":212,"date":213,"category":113,"coverImage":214},{"title":5,"path":120,"date":115,"category":113,"coverImage":114},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":196,"path":197,"date":198,"category":145,"coverImage":199},[412,413,414,415,416],{"title":245,"path":246,"date":247,"category":134,"coverImage":248},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":175,"path":176,"date":177,"category":134,"coverImage":178},{"title":363,"path":364,"date":365,"category":145,"coverImage":366},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},[418,419,420,421,422],{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":155,"path":156,"date":157,"category":134,"coverImage":158},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":323,"path":324,"date":325,"category":113,"coverImage":326},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},[424,425,426,427,428],{"title":181,"path":182,"date":183,"category":113,"coverImage":184},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":5,"path":120,"date":115,"category":113,"coverImage":114},{"title":170,"path":171,"date":172,"category":134,"coverImage":173},[430,431,432,433,434],{"title":260,"path":261,"date":262,"category":145,"coverImage":263},{"title":142,"path":143,"date":144,"category":145,"coverImage":146},{"title":181,"path":182,"date":183,"category":113,"coverImage":184},{"title":155,"path":156,"date":157,"category":134,"coverImage":158},{"title":131,"path":132,"date":133,"category":134,"coverImage":135},[436,437,438,439,440],{"title":170,"path":171,"date":172,"category":134,"coverImage":173},{"title":245,"path":246,"date":247,"category":134,"coverImage":248},{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":390,"path":391,"date":392,"category":134,"coverImage":393},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},[442,443,444,445,446],{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":175,"path":176,"date":177,"category":134,"coverImage":178},{"title":155,"path":156,"date":157,"category":134,"coverImage":158},{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},[448,453,454,455,456],{"title":449,"path":450,"date":451,"category":113,"coverImage":452},"MisskeyのDBバックアップとオブジェクトストレージの設定方法","/blog/misskey-setting","2025-11-23","https://images.bokukoha.dev/blog/misskey-setting/main.jpg",{"title":352,"path":353,"date":354,"category":113,"coverImage":355},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":211,"path":212,"date":213,"category":113,"coverImage":214},{"title":181,"path":182,"date":183,"category":113,"coverImage":184},[458,459,460,461,462],{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":250,"path":251,"date":252,"category":134,"coverImage":253},{"title":291,"path":292,"date":293,"category":134,"coverImage":294},{"title":142,"path":143,"date":144,"category":145,"coverImage":146},{"title":271,"path":272,"date":273,"category":134,"coverImage":274},[464,465,466,467,468],{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":175,"path":176,"date":177,"category":134,"coverImage":178},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":186,"path":187,"date":188,"category":113,"coverImage":189},[470,471,472,473,474],{"title":175,"path":176,"date":177,"category":134,"coverImage":178},{"title":245,"path":246,"date":247,"category":134,"coverImage":248},{"title":239,"path":240,"date":241,"category":134,"coverImage":242},{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":211,"path":212,"date":213,"category":113,"coverImage":214},[476,477,478,479,480],{"title":397,"path":398,"date":399,"category":113,"coverImage":400},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":323,"path":324,"date":325,"category":113,"coverImage":326},{"title":449,"path":450,"date":451,"category":113,"coverImage":452},{"title":347,"path":348,"date":349,"category":113,"coverImage":350},[482,487,488,489,490],{"title":483,"path":484,"date":485,"category":113,"coverImage":486},"自宅で動かすMinecraftサーバー","/blog/mc_server","2025-09-30","https://images.bokukoha.dev/blog/mc_server/main.jpg",{"title":352,"path":353,"date":354,"category":113,"coverImage":355},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":165,"path":166,"date":167,"category":145,"coverImage":168},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},[492,493,498,499,500],{"title":255,"path":256,"date":257,"category":134,"coverImage":258},{"title":494,"path":495,"date":496,"category":145,"coverImage":497},"chatGPTからGeminiに完全移行した","/blog/gpt-to-gemini","2025-12-03","https://images.bokukoha.dev/blog/gpt-to-gemini/main.png",{"title":260,"path":261,"date":262,"category":145,"coverImage":263},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":271,"path":272,"date":273,"category":134,"coverImage":274},[502,503,504,505,506],{"title":211,"path":212,"date":213,"category":113,"coverImage":214},{"title":181,"path":182,"date":183,"category":113,"coverImage":184},{"title":201,"path":202,"date":203,"category":145,"coverImage":204},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":352,"path":353,"date":354,"category":113,"coverImage":355},[508,509,510,511,512],{"title":373,"path":374,"date":375,"category":113,"coverImage":376},{"title":233,"path":234,"date":235,"category":145,"coverImage":236},{"title":160,"path":161,"date":162,"category":113,"coverImage":163},{"title":137,"path":138,"date":139,"category":113,"coverImage":140},{"title":390,"path":391,"date":392,"category":134,"coverImage":393},[514,516],{"title":131,"path":132,"stem":515,"children":-1},"blog/chichibu/index",{"title":196,"path":197,"stem":517,"children":-1},"blog/stop-drunk/index",1782435685432]