ADRs
ADR 001 — Static export now, edge adapter when Auth/API land
  • Date: 2026-05-20
  • Status: Accepted
  • Phase: 0 → 8

Context

apps/web хостится на Cloudflare Pages. На Phase 0 нужен landing с минимумом инфры. Master spec §III.2 предполагает edge runtime (@cloudflare/next-on-pages или Workers Static Assets + OpenNext) для production-сценариев с Auth/API.

Edge adapter setup сейчас:

  • complex (specific Next.js version constraints, runtime polyfills)
  • избыточен для Phase 0-7 (нет server actions, нет API routes)

Decision

output: "export" в next.config.mjs → static HTML/JS deploy. CF Pages раздаёт через global CDN.

Переезд на edge adapter откладывается до Phase 8-9 — когда появятся Auth.js routes и tRPC backend. Тогда оценим экосистему 2026 (next-on-pages vs OpenNext Cloudflare adapter).

Consequences

Pros:

  • 5-минутный deploy setup, никакого debugging Edge runtime quirks для Phase 0-7
  • CDN-кэширование агрессивное, latency ~0ms на edge
  • useSearchParamsSuspense boundary) даёт query-driven dynamic UI без [id] routes

Cons:

  • Нет SSR — initial HTML минимальный, контент гидрируется на клиенте (для xyflow это нормально — он всё равно client-only)
  • Нет API routes — Phase 8 потребует отдельный Hono Worker
  • При переезде на adapter некоторые routes (где сейчас ?id=) можно мигрировать на [id] dynamic

CF Pages gotcha (записано отдельно)

public/ assets держатся в edge cache 7 дней (s-maxage=604800). Removed files (Phase 5 snapshot) остаются live до cache expiry. Не блокирует, но fyi.

Related files

  • apps/web/next.config.mjs
  • wrangler.jsonc (pages_build_output_dir)
  • docs/cloudflare-pages.md