Marketing web — Cloudflare Pages hosting decision
Status: Accepted — aligns with Prego Web App Standard §3.3 (marketing surface, static-first, Cloudflare Pages).
Decision
- Production marketing web (
apps/marketing-web, public landing, pricing,/trialbrowser calls to Zuplo) is hosted on Cloudflare Pages, not on a generic Worker-only static host without Pages Functions support. - Internal engineering docs (Starlight under monorepo
docs/, e.g. Cloudflare projectprego-devdoc) are a separate Pages (or static) product. They do not replace marketing-web; trial flows, SEO, andNEXT_PUBLIC_ZUPLO_API_URLremain owned by marketing-web per API gateway & BFF governance. - Alternatives (e.g. marketing only on another CDN) remain valid for forks, but the default platform posture documented in CI and runbooks is Pages with build output
apps/marketing-web/outand repo-synchronizedfunctions/(seeapps/marketing-web/wrangler.tomlandnext.config.mjs).
Implementation pointers
- Build and verify: monorepo
.github/workflows/deploy-pages.yml(jobbuild). - Optional upload to Cloudflare: same workflow, job
upload-marketing-pages(requiresCLOUDFLARE_API_TOKEN,CLOUDFLARE_ACCOUNT_ID, and optionalCLOUDFLARE_PAGES_PROJECT_MARKETING_WEBrepository variable). - Zuplo
ALLOWED_ORIGINS: include every marketing origin (production custom domain,*.pages.devpreviews as needed) — prego-zuplo runbook — allowed origins.
한국어 요약
- 공개 마케팅 웹은 플랫폼 기본으로 Cloudflare Pages에 둔다.
prego-devdoc같은 내부 문서 Pages와 역할이 다르며, 서로 대체하지 않는다.- 포크·별도 호스트를 쓸 수는 있으나, 문서·CI의 기준 경로는 marketing-web + Pages이다.