について

richbay.org はどう作られているか:AI エージェントが開発・運用する 2,800 ページ・3 言語のサイト

AI が構築したリファレンスサイトの、アーキテクチャ、ワークフロー、そして失敗から学んだこと。

2026 年 10 月時点。

概要

richbay.org は、各国政府の公式情報をもとに、国・都市・ビザ・大学・生活費を比較できるリファレンスサイトです。2026 年 5 月 3 日の空のリポジトリから、約 5 か月半で次の規模になりました。

国別ハブ
51 か国を公開(ディレクトリは 100 か国・地域)
都市ページ
405(うち詳細な生活ガイド 41)
ビザルート
64
大学
詳細ページ 160、掲載 3,385 校
監視している公式ソース
55 か国・地域の 109 件
言語
英語・中国語・日本語
サイトマップ内の URL
約 2,800
コミット
約 2,400(リリース約 290)

コードとコンテンツのほぼすべては AI コーディングエージェントが書き、小さなチームがその作業を指揮しています。こうした開発は vibe coding と呼ばれることがあります。しかし実際に機能させたのは「ノリ」ではありません。文書化されたルール、既知のミスの公開を自動で止めるチェック、そして変更を信じるのではなく公開中のページを確認する習慣です。

役割分担

チーム は、何を作り何を作らないかを決め、ルールを定め、コンテンツと判断を抜き取りで確認します。

AI コーディングエージェント は、コードとコンテンツを書き、テストとチェックを実行し、デプロイし、公開中のサイトを確認し、学んだことを次のセッションのために書き残します。

AI エージェントは以前のセッションを覚えていません。学んだことはすべてファイルに残し、次のセッションが最初に読むようにしています。

技術スタック

レイヤー採用技術理由
フレームワークAstro 5(ほとんどのページを事前レンダリング)静的ページ中心で、サーバーエンドポイントは一部のみ
言語すべて TypeScript型チェックが AI の書いたコードの最初のレビュアー
スタイルTailwind CSS 4エージェントが一貫性を保ちやすい
ホスティングCloudflare Workers + Static Assets静的ページとサーバールートを一度にデプロイ
データベースCloudflare D1 (SQLite)ユーザーの保存データ、ウェイトリスト、メンテナンス予定
CI/CDGitHub Actions本番ブランチへの push ごとに自動デプロイ、毎日のメンテナンス
テストVitest

アーキテクチャ

  1. 各国政府の公式ソース
  2. リポジトリ内の型付きデータファイル
  3. ビルド + チェック
  4. 事前レンダリングされたページ · en / zh / ja
  5. Cloudflare Worker
  • 毎日のメンテナンスジョブ → データ更新・リンク確認
  • データファイル → 一方向の同期 → Cloudflare D1 → Worker

データは CMS ではなくコードの中に。公開しているすべての事実(国、都市、ビザルート、税率、祝日、大学)は、リポジトリ内の型付き TypeScript ファイルにあります。これが唯一の情報源で、データベースには一方向でコピーするだけです。事実の変更はすべてレビュー可能な diff になり、AI エージェントとの相性が良い方式です。各データには記録された出典があり、ページは自らを公式と称するのではなく、公式ソースへリンクします。

国が中心。各国のハブには「生活・仕事・移住・教育・ビジネス」の 5 本柱があります。国やトピックの追加はデータを足すだけで、ルーティング、ナビゲーション、サイトマップはレイアウトのコードに触れずに追従します。

多言語。英語はルート、中国語と日本語は /zh/ と /ja/ の下にあります。翻訳文はすべて言語キーごとに保存しているので、言語を増やすときはキーを足すだけで、コード構造は変えずに済みます。

ワークフロー

  1. 開発ブランチで作業
  2. テストとチェックに合格
  3. 本番ブランチへマージ
  4. 自動デプロイ
  5. 公開中のページを確認
  • デプロイのたびに、型チェック、翻訳監査、データ検証、そして限定的な品質チェック群が実行されます。品質チェックはどれも、実際にミスが起きた後で追加したものです。ひとつでも失敗すれば、何も公開されません。
  • デプロイ後、エージェントは公開中のバージョンが自分の push したものかを確認します。push が成功しても、デプロイが成功したとは限りません。
  • 毎日のメンテナンスは人手を介しません。定期ジョブが為替レートと祝日を更新し、外部リンクを確認し、ディレクトリを再生成します。生成ファイルが急に小さくなる、妥当性チェックに通らない、型チェックが壊れる、のいずれかに当たった変更はコミットせずに元へ戻します。

うまくいかなかったこと、そして変えたこと

ここがいちばん役に立つ部分です。どれもルールかチェックになりました。

  • ホスティングの上限を超えた。 最初のプラットフォームには 1 回のデプロイあたりのファイル数上限があり、3 言語と数百のエンティティですぐに超えたため、Workers に移行しました。
  • 動いていなかったリダイレクト。 フレームワークのミドルウェアに書いたリダイレクトが、事前レンダリングされたページでは黙って無効になっていました。現在は CDN 層に置いています。
  • オンデマンドで描画されず 404 になるページ。 事前レンダリングのルートは、ビルド時に列挙したパスしか返しません。「サーバーがなんとかしてくれる」は誤った思い込みでした。
  • 型チェックを通った翻訳漏れ。 型の緩いデータ定義が言語の欠落を許してしまい、一部のページで他言語なのに英語が表示されていました。より厳密な型と検出スクリプトで解決しました。
  • 翻訳されてしまったキー。 機械翻訳が本文と一緒にデータの識別子まで翻訳し、コンテンツが黙って消えたことがあります。現在は言語間で構造を比較するチェックがあります。
  • チェックは緑、ページは壊れている。 チェックに通っても、ページの見た目が正しいとは限りません。変更のたびに描画されたページを見る、というのが今のルールです。
  • 出典リンクがあることは、出典があることではない。 無作為に選んだ 30 の値を、隣にある出典リンクと照らし合わせた。開けた 22 のリンクのうち、値と矛盾するものは一つもなかったが、9 つは機関のトップページを指しており、そこでは値が見つからない。「出典」をクリックして数字が見当たらなければ、読者の期待を裏切ったことになる。手法のページには、リンクがどこまでを示すのかを正確に書いた。
  • ページを増やしても流量は増えなかった。 若いサイトのボトルネックはページ数ではなく権威性です。数のためにページを足すのはやめました。

これから始める人へ

  1. 初日からルールを書き残すこと。 エージェントは忘れますが、ファイルは忘れません。
  2. 繰り返すミスは、注意書きではなく自動チェックにすること。
  3. データはバージョン管理された型付きファイルに置くこと。 diff ほど安いレビューはありません。
  4. push ではなく、公開中のサイトを確認すること。 静かな失敗こそが普通です。
  5. 何を作らないかは人が決めること。 エージェントは何でも喜んで作ります。

AI を上手に使いたいですか?

richbay.ai は AI 実践ラボです。課題に挑戦し、実際の出力を確かめ、使える手法を持ち帰りましょう。登録不要。

richbay.ai で課題に挑戦