Works · 2026.08.26 – 09.04

自主制作 三十二本

Next.js 16(App Router / React Server Components)と Tailwind CSS v4 の一つのリポジトリに、 配色・書体・部品・画面構成をひとつも共有しないランディングページを三十二本。 うち三十本を VPS 二台で稼働中。二十六本は日本の広告・食品表示・医療広告・酒税の規制を前提に本文を書いています。

すべて自主制作で、掲載の店舗・医療機関・施術所・小売店・学習塾・古書店・酒屋はいずれも架空です。 実在する店舗等とは関係ありません。

各ブランドの主色。触れると名前が出ます
32ブランド(+ まとめページ1)
30稼働中サイト
7法区分フォルダ
26法令の制約を受けるページ
32別設計の対話部品
10制作日数
ブランド区分所在地 共有データの軸主装置縛っている法令写真公開URL

区分フォルダは法律の区分

  • restaurants/ 食品衛生法(飲食店営業許可・菓子製造業許可)— 16本
  • clinics/ 医療法・医療広告ガイドライン — 8本
  • care/ 柔道整復師法・あはき法(施術所であって医療機関ではない)— 2本
  • shops/ 許可が要らないことの名前 — 3本
  • lessons/ 特定商取引法 特定継続的役務(開業は自由、継続が法定)— 1本
  • dealers/ 古物営業法(許可は公安委員会。守るのは客ではなく被害者)— 1本
  • liquor/ 酒税法・酒類販売業免許(許可は税務署長。守るのは人ではなく酒税)— 1本

作りと運用

  • 1ブランド=内容の単一情報源src/lib/<brand>.ts)+専用コンポーネント+区分フォルダ配下の layout / page + globals.css の接頭辞付きトークン束
  • 配色は全ブランドでコントラスト比を実測して記録(本文 4.5:1 以上)
  • デプロイは output: "standalone" をローカル(WSL/Ubuntu)でビルドして転送。19本常駐でVPSのメモリが尽きたため 2026-08-31 に方式変更
  • 1ブランド=1 systemd サービス+Apache のリバースプロキシ+Let's Encrypt。宛先は scripts/brands.txt で二台に振り分け

写真の方針は本ごとに違う

  • 借用=Unsplash の実写。撮影者クレジットと「実在する店舗である」旨を明記
  • 生成=生成画像。架空の人物・施設に実在の顔を当てないため、各フレーム下に開示文
  • なし(断り)=いまは澪の一本。写真では「どの種類のふぐか」を答えられないためで、用意できていないのとは違います
  • 熾も公開時は同じく写真ゼロの断りで、のちに断りを取り下げずに狭めて一枚だけ入れました ── 箸先の焼けた赤身ひと切れ(五層のうち第五層しか写っていない)。生肉の寄りはいまも不可です