Skip to content

feat: LP を独立した lp パッケージに切り出す#545

Merged
owk-owk130 merged 12 commits intodevelopfrom
feat/split-lp-package
May 1, 2026
Merged

feat: LP を独立した lp パッケージに切り出す#545
owk-owk130 merged 12 commits intodevelopfrom
feat/split-lp-package

Conversation

@owk-owk130
Copy link
Copy Markdown
Contributor

@owk-owk130 owk-owk130 commented May 1, 2026

Summary

  • LP を web/ から独立した lp/ パッケージに切り出し、nepp-chan.ai で配信する構成に変更
  • アプリ(チャット等)は web.nepp-chan.ai を維持。互いの動線は PUBLIC_WEB_URL / PUBLIC_LP_URL 環境変数で切り替え
  • LP は静的サイト想定で Sentry を含めず、@assistant-ui/* 等のアプリ依存も持ち込まない最小構成

主な変更内容

新規 lp/ パッケージ

  • pnpm-workspace.yaml に追加、ルート scripts に lp:dev / lp:build / lp:deploy:{dev,prd} を追加
  • Astro 6 + React 19 + Tailwind 4。dev は port 5174
  • LP のソースと公開アセットを web/src/app/lp/ および web/public/lp/ から移植
  • MiniChat の API_BASE は ~/lib/api/client.ts 経由ではなく import.meta.env.PUBLIC_API_URL を直読み(auth-token / openapi-fetch を持ち込まないため)
  • Cloudflare Pages の Basic 認証ミドルウェア(dev のみ env 設定で有効化、prd は未設定で公開)

web/

  • pages/lp.astro / app/lp/ / public/lp/ を削除
  • chat 側 TopBar の href=\"/lp\"PUBLIC_LP_URL 経由の外部 URL に変更

server/

  • CORS の許可 origin に LP_URL を追加し、開発時のポート違いを許容するため http://localhost:* を正規表現で許可
  • wrangler.jsonc の各環境 vars に LP_URL を追加

CI/CD

  • ci.yml に lp の TypeScript チェック追加
  • deploy-dev.yml / deploy-prd.ymldeploy-lp ジョブを追加(server に依存させず並列実行)

その他

  • Biome の対象から .astro 生成ディレクトリを除外
  • ルート CLAUDE.md のデプロイ環境表に LP 列を追加、web/CLAUDE.md から LP 関連の記述を削除

Test plan

  • CI が通る
  • dev 環境で LP が Basic 認証で開ける(nepp-chan-lp-dev.pages.dev または dev-lp.nepp-chan.ai
  • LP の MiniChat が dev API と通信できる
  • LP の CTA から dev-web.nepp-chan.ai に遷移できる
  • チャット画面の TopBar から LP に遷移できる
  • prd 反映後、nepp-chan.ai が Basic 認証なしで公開される

owk-owk130 and others added 10 commits May 1, 2026 10:50
pnpm workspace に lp を追加し、astro / tsconfig / wrangler の
最小設定とルートからの dev / build / deploy スクリプト、
.tagpr の versionFile 同期対象を整備する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LpPage と配下コンポーネントに加え、AmbientBG / Mascot /
RootLayout / SentryErrorBoundary / sentry / class-merge /
useScrollReveal / index.css と LP で参照する画像を持ち込み、
apex で配信するための pages/index.astro を作成する。
MiniChat の API_BASE は openapi-fetch ベースの api/client に
依存させず、import.meta.env.PUBLIC_API_URL を直接読む形にする。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dev 環境のみ BASIC_AUTH_USER / BASIC_AUTH_PASSWORD を設定して
保護する運用にし、prd は未設定で公開する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI で lp パッケージの tsc --noEmit を実行し、deploy-dev /
deploy-prd ワークフローに lp:deploy:dev / lp:deploy:prd を呼ぶ
ジョブを追加する。LP は server に依存せず並列で実行する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LP は静的サイトでエラー監視の必要性が低いため、@sentry/react /
@sentry/vite-plugin の依存と initSentry / SentryErrorBoundary、
astro.config.ts の sentryVitePlugin 設定、deploy ワークフローの
PUBLIC_SENTRY_DSN env を削除する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
旧 web 内では href="/" でチャット画面に遷移できたが、LP 分離後は
"/" が LP 自身のトップになるため、Nav / Hero / FinalCTA /
MiniChat / FooterSection の CTA を PUBLIC_WEB_URL ベースに変更し、
ローカル / dev / prd で適切な web ドメインを指す形にする。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LP が apex (nepp-chan.ai) 配信の別ドメインになるため、
TopBar の href を PUBLIC_LP_URL から取得する形に変更し、
ローカル / dev / prd で適切な LP URL を指す環境変数を整備する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LP は lp パッケージに移管したため、web/src/pages/lp.astro と
web/src/app/lp/、web/public/lp/ を削除し、CLAUDE.md からも
LP 関連の記述を取り除いてルートのデプロイ環境表に LP を追加する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Astro が生成する .astro/settings.json はインデントスタイルが
Biome の formatter 設定と揃わないため、対象ディレクトリから外す。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LP の独立化に伴い、server の vars に LP_URL を追加し、
CORS の許可 origin に WEB_URL に加えて LP_URL を含める。
あわせて開発時のポート違いを許容するため、http://localhost
の任意ポートを正規表現で許可する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@owk-owk130 owk-owk130 changed the title feat: LP を独立した lp パッケージとして apex 配信する feat: LP を独立した lp パッケージに切り出す May 1, 2026
owk-owk130 and others added 2 commits May 1, 2026 12:36
CI の tsc --noEmit で astro が自動生成する型ファイルが解決されず
import.meta.env が ImportMeta に存在しないエラーになるため、
web と同様に astro/client の参照を src/env.d.ts に明示する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lp/src/lib/web-url.ts と web/src/lib/lp-url.ts を constants/urls.ts に
移動し、LP 側は MiniChat の API_BASE も API_URL として同ファイルに
まとめる。今後の規約・行政向けページなど外部 URL 定数が増えたときの
見通しを良くする。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@owk-owk130 owk-owk130 merged commit 491a03c into develop May 1, 2026
2 checks passed
@github-actions github-actions Bot mentioned this pull request May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant