Skip to content

Cloudflare Pages

Product Factory’s frontend apps (web, admin, platform, docs) are deployed to Cloudflare Pages.

Build Configuration

Each app builds with Astro’s Cloudflare adapter:

AppBuild CommandOutput
webpnpm --filter web buildapps/web/dist/
adminpnpm --filter admin buildapps/admin/dist/
platformpnpm --filter platform buildapps/platform/dist/
docspnpm --filter docs buildapps/docs/dist/

Cloudflare Pages Setup

  1. Create a new Pages project in the Cloudflare dashboard.
  2. Connect your Git repository.
  3. Configure build settings:
    • Build command: pnpm --filter <app-name> build
    • Build output directory: apps/<app-name>/dist
    • Root directory: / (monorepo root)
  4. Set environment variables (see Environment Variables).

Custom Domains

Each app should have its own subdomain:

AppDomain
webexample.com
adminadmin.example.com
platformapp.example.com
docsdocs.example.com

Configure custom domains in the Cloudflare Pages project settings.

Preview Deployments

Cloudflare Pages automatically creates preview deployments for pull requests. Each PR gets a unique URL for testing before merging.

Server-Side Rendering

The web, admin, and platform apps use Astro’s server output mode with the @astrojs/cloudflare adapter. This enables server-side rendering on Cloudflare Pages Functions.

The docs app uses Starlight’s default static output and does not require server-side rendering.