stackbook

← 作るもの

コーポレートサイト・メディア

LP、ブログ、非エンジニアが更新

条件PaaS

推奨:Astro+ヘッドレスCMS

推奨

Astro+ヘッドレスCMS

  • 静的出力でサーバー保守がほぼ不要、非エンジニアの更新はCMSで賄える(§19-1)

構成行を開くと詳細(乗り換える条件・根拠・費用・習熟度)

フロントAstro+Tailwind CSS

Astro

公式サイト ↗

既定:静的サイト・コンテンツ中心フロントエンド

乗り換える条件

  • Next.js(SSG)同じリポジトリでアプリ部分も持つとき

ケース別の構成§19

  • コーポレートサイト・LP・メディアフロント:Astro+Tailwind CSS

習熟度

Tailwind CSS

公式サイト ↗

既定:CSSフロントエンド

乗り換える条件

  • CSS Modulesデザイナーが素のCSSを書くチーム

ケース別の構成§19

  • コーポレートサイト・LP・メディアフロント:Astro+Tailwind CSS
CMSmicroCMS(セルフホストならPayload)

microCMS

公式サイト ↗

既定:非エンジニアが更新する国内案件CMS

ケース別の構成§19

  • コーポレートサイト・LP・メディアCMS:microCMS(セルフホストならPayload)

習熟度

Payload

公式サイト ↗

既定:セルフホスト・Next.jsと同居CMS

乗り換える条件

  • StrapiNext.jsと分離したいとき

PayloadはFigmaの傘下に入った(ライセンスはMITのまま)

ケース別の構成§19

  • コーポレートサイト・LP・メディアCMS:microCMS(セルフホストならPayload)
ホスティングCloudflare Pages

Cloudflare Pages

公式サイト ↗

既定:静的サイトどこで動かすか

乗り換える条件

  • GitHub Pages公開リポジトリの個人サイトで、使うサービスを増やしたくないとき

ケース別の構成§19

  • コーポレートサイト・LP・メディアホスティング:Cloudflare Pages
フォームCloudflare Workers+Resend、スパム対策にCloudflare Turnstile

Cloudflare Workers

公式サイト ↗

既定:エッジ・軽量APIどこで動かすか

成長したら → Neon/RDS(Hyperdrive経由で接続)§24

きっかけ
1データベースの容量上限に近づく、複雑なJOINやトランザクションが増えた
最初からの備え
DrizzleなどでSQLite固有の書き方を避ける。データアクセスを1か所にまとめる

ケース別の構成§19

  • コーポレートサイト・LP・メディアフォーム:Cloudflare Workers+Resend、スパム対策にCloudflare Turnstile
  • 個人開発・MVPエッジ:Hono+Cloudflare Workers+D1/R2

Resend

公式サイト ↗

既定:トランザクションメール(AWS外)メール・通知

乗り換える条件

  • Postmark到達率を最重視するとき

ケース別の構成§19

Cloudflare Turnstile

公式サイト ↗

ケース別の構成§19

  • コーポレートサイト・LP・メディアフォーム:Cloudflare Workers+Resend、スパム対策にCloudflare Turnstile
検索Pagefind

Pagefind

公式サイト ↗

既定:静的サイトの検索検索

ケース別の構成§19

  • コーポレートサイト・LP・メディア検索:Pagefind
分析Cloudflare Web Analytics(取引先やマーケティング担当がGA4を求めるならGA4)

Cloudflare Web Analytics

公式サイト ↗

代替:Webサイトのアクセス解析プロダクト分析・機能フラグ

既定は PostHog(Web解析。プロダクト分析と1ツールで済む)。静的サイトでCookieなしの最小限の計測だけ欲しいとき に乗り換える。

ケース別の構成§19

  • コーポレートサイト・LP・メディア分析:Cloudflare Web Analytics(取引先やマーケティング担当がGA4を求めるならGA4)

GA4

公式サイト ↗

代替:Webサイトのアクセス解析プロダクト分析・機能フラグ

既定は PostHog(Web解析。プロダクト分析と1ツールで済む)。取引先やマーケティング担当がGA4のレポートを求めるとき に乗り換える。

ケース別の構成§19

  • コーポレートサイト・LP・メディア分析:Cloudflare Web Analytics(取引先やマーケティング担当がGA4を求めるならGA4)
監視Better Stack(外形監視)

Better Stack

公式サイト ↗

既定:外形監視・ステータスページ監視・可観測性・運用

乗り換える条件

ケース別の構成§19

  • コーポレートサイト・LP・メディア監視:Better Stack(外形監視)

§19-1の構成

構成図 コーポレートサイト・LP・メディア

flowchart TB
  U["ユーザー"] --> CF["Cloudflare Pages<br/>Astro 静的サイト"]
  E["編集者"] --> CMS["microCMS"]
  CMS -- "Webhook" --> B["ビルド"] --> CF
  U -- "フォーム送信" --> W["Cloudflare Workers"] --> R["Resend"]

更新の即時反映は、CMSのWebhookからビルドを起動して行う。

作り始める

共通の準備

# 言語・ツールのバージョン固定(使う言語だけ)
mise use node@lts pnpm@latest
mise use go@latest
mise use ruby@latest
mise use python@latest uv@latest

# Gitフックと依存更新
pnpm add -D lefthook && pnpm exec lefthook install
# renovate.json を置き、GitHubでRenovateアプリを有効化する

コーポレートサイト(§19-1)

pnpm create astro@latest
pnpm astro add tailwind
# Cloudflare Pages にリポジトリを接続してデプロイ

次に読む