Docs/Deployment
Deployment

04. Deploy Frontend Apps

Use Dev Console to deploy apps/web as a Worker and apps/admin as a Pages project.

Last updated Mar 19, 2026

Path B (Dev Console) — This chapter is for the Dev Console workflow. If you prefer CLI commands, see Path A: Deploy Frontend Apps.

Deploy the core frontend apps only: apps/web and apps/admin. The Dev Console follows each app's config: apps/web deploys to the web Worker, and apps/admin deploys to the admin Pages project.

1. Deploy via Dev Console pipeline

In Dev Console → Deploy tab → Pipeline:

  1. Ensure backend deployment (step 3) is complete.
  2. Run step 5 (Deploy Frontend). The Dev Console will build and deploy both web and admin in sequence.
  3. Or use the canvas: click the Build & Deploy button on each frontend app card (web, admin).

Dev Console Deploy tab — frontend app build and deploy

2. Configure frontend environment variables

After the first deployment:

  1. In Dev Console → Deploy tab → Frontend Cloud Env or Environment section.
  2. Set apps/web to point to:
    • Correct backend service URLs
    • ZSHIP_KEY if you use public HTTP fallback instead of Service Bindings
    • Any required public environment values for login or site configuration
  3. Set apps/admin to point to auth-related URLs and service endpoints.

Use repository defaults first, verify the system works, then customize.

3. If you see a SESSION binding warning

A warning about an invalid SESSION binding usually means the Cloudflare KV binding is not configured yet:

  • Check the Wrangler binding configuration
  • Check Cloudflare Pages or Worker environment bindings
  • Ensure the target environment matches the one you prepared earlier

4. Checklist before you leave this chapter

  • [ ] apps/web Worker deployed successfully
  • [ ] apps/admin Pages project deployed successfully
  • [ ] Critical frontend environment variables are filled
  • [ ] SESSION warning understood and resolved if it was real

Once those are done, you can move on to domains and production URLs.