Pick the preview model that matches the app
Same-worker uploads, named preview scopes, and branch-scoped worker families serve different needs.
Pick the right preview model before writing CI around assumptions the platform will not honor.
- Best for
- Choosing preview strategy before building CI
- Same-worker mode
- Plain
- Named scope mode
More than one preview model
Both targets resolve and can materialize names. Bare uses the synthetic identifier; swaps it for an explicit scope that pairs with branch-scoped preview workers.
Plain can still receive or CI metadata for logs, but preview-scoped resource names use the synthetic identifier unless you pick an explicit scope.
When you need stronger isolation or cleaner cleanup, prefer named scopes directly.
| Preview style | Use it when |
|---|---|
| Plain | You want a same-worker preview upload and the synthetic identifier is enough for any resource names. |
| Named | You need an explicit preview identifier for resource names or branch-scoped preview workers. |
| Branch-scoped worker family | The app is Durable Object-heavy or otherwise needs stronger isolation than same-worker preview uploads can provide. |
Cloudflare caveats still matter
- Preview URLs must be enabled for the worker or the returned links may not be usable.
- Preview URLs are public unless you protect them with Cloudflare Access or another layer.
- Plain cannot be the first-ever upload path for a brand-new worker.
- Cloudflare does not currently generate preview URLs for workers that implement Durable Objects.
- does not currently apply Durable Object migrations.
- Same-worker preview uploads are also the wrong fit when branch isolation must cover cron or queue topology, not just the request path.
DO-heavy apps need a different preview instinct
If previews must exercise real Durable Object behavior, use branch-scoped worker families and preview-scoped resources.
Preview-scoped resources
Branch-scoped previews sometimes need their own KV, D1, R2, Queue, or Vectorize resources. keeps authored config stable while preview environments resolve preview-specific names.
Outside preview, those markers resolve back to the base names. Inside preview, bare materializes names like ; materializes .
Preview-scoped resource naming
Previous
Monorepos & Turborepo
Turbo owns task orchestration and caching. still runs from the package that owns the Worker or app.
Next
Control-plane operations
Devflare’s deeper CLI families exist so account selection, live production inspection, Worker renames, token lifecycle, and remote paid-test gates stay documented instead of dissolving into ad-hoc command snippets.