個人開発中のハブサイト「Hubpin」(Next.js + Supabase)の設計工程で起きた話です。
URLの衝突をどう解決するかで、AIに4案を出してもらいました。
- (a)
/を固定にして、下層を/[slug]にする - (b)
/[username]のままにして、/を rewrite する - (c)
/u/[username]にする - (d)
/[username]に rewrite を足して、旧URLを維持する
どれも一長一短で、30分くらい比べていました。
そのとき気づきました。
4案とも「ルート直下をどう分けるか」の話しかしていません。
そもそも何を解決しようとしていたか
作っているのは、自分の発信をまとめるハブサイトです。
既存の手書きHTMLサイトを置き換える計画でした。
mt-tk.com/ ← 手書きHTMLのトップ(これを置き換えたい)
mt-tk.com/plate-calculator/ ← 別アプリの紹介ページ(既に公開済み)
Next.js で app/[username]/page.tsx を置くと、mt-tk.com/◯◯ の ◯◯ が
全部ユーザー名として解釈されます。
つまり /plate-calculator が「plate-calculator さんのページ」になってしまう。
だから「ルート直下をどう分けるか」を考えていました。
枠の外に出たら、問題が消えました
出した答えは、4案のどれでもありませんでした。
サブドメイン(hub.mt-tk.com)に置く。
別ドメインになるので、mt-tk.com/plate-calculator とは衝突しようがありません。
問題そのものが無くなりました。
しかも副産物のほうが大きかったです。
| 元の計画 | サブドメイン案 | |
|---|---|---|
| DNS作業 | Aレコード2本を書き換え | hub を1行追加するだけ |
| 既存の下層ページ | 道連れになるので要対処 | ✅ 無傷 |
| メール(MXレコード) | 触らないよう常に注意 | ✅ 触るリスクがゼロ |
| ロールバック | Aレコードを戻して浸透待ち | 1行消すだけ・即時 |
トップページだけ301を打てば、名刺に書くURLも変わりません。
気づいたこと
AIが出した4案は、どれも妥当でした。妥当だったから、比較を続けてしまいました。
でも4案が全部同じ形をしていた時点で、「その形しか検討していない」というサインでした。
比較しているときは「どれが良いか」に意識が向きます。
「なぜ全部これなのか」には向きません。
見分け方になりそうなもの
いま考えると、こういうときが危ないです。
- 選択肢の主語が全部同じ(今回は「ルート直下を」)
- どれを選んでも代償が発生する
- 比較表がきれいに埋まる
3つ目が特に紛らわしいところでした。
比較表がきれいに作れることは、選択肢が良いことの証明になりません。
むしろ「全部同じ土俵にいる」ことの証拠かもしれません。
AIとの付き合い方として
AIは与えられた枠の中で最適化するのが得意で、実際に4案の比較は精度が高かったです。
一方で、枠そのものを疑うのは今回できていませんでした。
なので分担としてはこうなります。
- 枠の中を詰める → AIが速い
- 枠を疑う → 自分がやる
「AIに丸投げしない」というのは、出てきた選択肢を吟味することだと思っていました。
今回わかったのは、選択肢の集合そのものを疑うほうだということです。
吟味は枠の中の作業なので、いくらやっても枠からは出られませんでした。
