peace-biz-corporate-site

Peace Biz Corporate Site

Peace Biz コーポレートサイト(React + TypeScript + CRA)のリポジトリです。
GitHub Pages へ自動デプロイし、独自ドメイン https://peace-biz.com で公開します。

Tech Stack

実行コマンド

npm install
npm start
npm run build

npm start / npm run build 実行時は、AI参照用メタデータ(llms.txt / ai-context.json)も自動更新されます。 また npm run build では、旧URL互換のために build/ 配下へレガシーアセットエイリアスを自動生成します。

src/data/content/news.jsonsrc/data/content/works.json を更新した場合は、コミット前に npm run sync:seo-artifactsnpm run verify:generated-artifacts を実行してください。

Public アセット構成

public/ のルート直下は最小限に保ち、用途別に以下へ集約しています。

制作元の未配信用画像は assets-source/ に配置し、デプロイ対象から分離しています。

Contact Form セキュア構成

GitHub Pages は静的ホスティングのため、フロントエンドに秘密鍵を置く方式は安全ではありません。
このリポジトリでは、Contact フォームを以下の構成で運用します。

フロントの設定:

cp .env.production.example .env.production.local

Worker デプロイ例:

cd workers/contact-proxy
npx wrangler secret put WEB3FORMS_ACCESS_KEY
npx wrangler secret put ALLOWED_ORIGINS
npx wrangler deploy

デプロイ

main ブランチへの push で .github/workflows/deploy-github-pages.yml が実行され、GitHub Pages に自動反映されます。

処理内容:

  1. npm ci
  2. CI=false npm run build
  3. build/ を Pages Artifact としてアップロード
  4. GitHub Pages へデプロイ

補足:

ルーティングと GitHub Pages 対応

SPA の直接アクセス(例: /works)で 404 を防ぐために、以下を併用しています。

主な公開ルート:

コンテンツデータ:

一覧ページはページネーションを実装しています。NEWS_PAGE_SIZE / WORKS_PAGE_SIZE で件数を調整できます。

SEO / Search Console

デプロイ後の確認 URL:

Favicon / App Icon

public/favicon_io/ に favicon 一式を配置し、public/index.htmlpublic/manifest.json で参照しています。

独自ドメイン

注意事項