You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenDesign can deploy to Vercel and to Cloudflare Pages. The Cloudflare Pages provider uploads a static asset manifest only, so anything that needs code on the edge (an API route, a form handler, a Durable Object, environment bindings) cannot be deployed from OpenDesign to Cloudflare.
Cloudflare is also steering new projects to Workers with Static Assets rather than Pages. Today a user whose site is a Worker has to leave OpenDesign and run wrangler deploy by hand, and loses the deploy button, the deployment history and the link check.
Describe the solution you'd like
A third deploy provider, cloudflare-workers, that behaves exactly like the existing vercel-self and cloudflare-pages providers:
Settings: the same settings pattern (API token + account ID, masked token, configured flag) through /api/deploy/config?providerId=cloudflare-workers.
Deploy: the same deploy button, preflight, deployments list and check-link routes, and the same od deploy CLI path.
Upload: the project's files go up as Workers Static Assets: an upload session with the manifest, only the missing buckets uploaded, then a completion token.
Worker script: a Worker with an assets binding. By default it is a minimal assets-only Worker; if the project ships its own worker.js/_worker.js, that is used instead.
URL: published on <name>.<subdomain>.workers.dev, with an optional custom domain on a zone the token can edit, mirroring the Pages zones picker.
No new runtime dependency is needed; this is all Cloudflare REST API calls, like the Pages provider.
Alternatives you've considered
Pages Functions: the Pages provider would need _worker.js/Functions bundling. Cloudflare's own guidance points new work to Workers, and Pages cannot host Durable Objects.
Shelling out to wrangler: this adds a heavy dependency and a Node toolchain requirement to the daemon image, and it is harder to test.
A deploy plugin outside core: the deploy UI, settings and history are core today, so a plugin could not offer the same experience.
I'm happy to open a PR that mirrors the existing Pages provider file by file: daemon provider + routes + CLI, contracts, web registry + FileViewer button, i18n keys in all locales, and tests next to the existing deploy tests.
What problem are you trying to solve?
OpenDesign can deploy to Vercel and to Cloudflare Pages. The Cloudflare Pages provider uploads a static asset manifest only, so anything that needs code on the edge (an API route, a form handler, a Durable Object, environment bindings) cannot be deployed from OpenDesign to Cloudflare.
Cloudflare is also steering new projects to Workers with Static Assets rather than Pages. Today a user whose site is a Worker has to leave OpenDesign and run
wrangler deployby hand, and loses the deploy button, the deployment history and the link check.Describe the solution you'd like
A third deploy provider,
cloudflare-workers, that behaves exactly like the existingvercel-selfandcloudflare-pagesproviders:configuredflag) through/api/deploy/config?providerId=cloudflare-workers.check-linkroutes, and the sameod deployCLI path.assetsbinding. By default it is a minimal assets-only Worker; if the project ships its ownworker.js/_worker.js, that is used instead.<name>.<subdomain>.workers.dev, with an optional custom domain on a zone the token can edit, mirroring the Pages zones picker.od deployCLI #4577 for Pages).No new runtime dependency is needed; this is all Cloudflare REST API calls, like the Pages provider.
Alternatives you've considered
_worker.js/Functions bundling. Cloudflare's own guidance points new work to Workers, and Pages cannot host Durable Objects.wrangler: this adds a heavy dependency and a Node toolchain requirement to the daemon image, and it is harder to test.Additional context
od deployCLI #4577 (deploy target in UI/CLI), enhancement: Deploy to Railway/Vercel/Netlify buttons #1027 (more deploy targets).Would you be willing to contribute a PR?
Yes, I can take this on