v0.1: previews, staging, and production for your Cloudflare apps, with one dashboard to follow them.
Project Ops is one place to manage your projects on Cloudflare. Today it tracks deployments: every pull request gets its own preview environment, and the dashboard shows what is deployed where and at which commit. It is meant to grow into the place where you see and manage much more of each project on the Cloudflare platform.
It works with any app that follows the managed-project contract. Svelteflare is set up for it out of the box.
Warning
Actively developed. Expect rough edges and breaking changes between versions. See docs/ROADMAP.md for what's built and what's next.
feature branch → PR against staging
→ unit tests
→ Alchemy provisions an isolated pr-{number} environment → preview URL on the PR
merge into staging
→ pr-{number} destroyed (also when a PR closes unmerged)
→ staging redeployed, optional live tests report their results
merge staging into main
→ production deployed
The control plane never deploys anything. Each managed project's CI reports what it did, and the dashboard shows the history. Promotion is a plain Git merge.
docs/architecture.md: the glossary (Project, Environment, Stage, Deployment, Promotion), components, lifecycle, and auth.docs/adr/: the decisions behind the design, and why.docs/managed-projects.md: what an app needs in order to be managed by the platform.
Requires Node 24+ and pnpm.
pnpm install
pnpm alchemy profile edit --add Cloudflare # once: OAuth, cached to ~/.alchemy
pnpm devpnpm dev runs the dashboard and control-plane API against local simulators (a local SQLite D1). It touches nothing in your Cloudflare account, and the Access gate is off locally. The profile step is required because Alchemy needs a Cloudflare identity even for local runs. When asked about OAuth scopes, add access:write (see alchemy/README.md).
Checks:
pnpm check # typecheck everything
pnpm test # unit tests
pnpm lint
pnpm format:checkA real deploy needs a Cloudflare account with a Zero Trust organization and a Google identity provider. The deploy wizard walks you through it:
scripts/deploy-wizard.shIt connects Alchemy to your account, collects the Zero Trust settings into a gitignored .env, and runs alchemy deploy. Then onboard an app with scripts/onboard-project.sh.
| Path | What it is |
|---|---|
apps/api |
The control-plane API (Hono + Drizzle on D1). A library mounted by the web app, not deployed on its own. |
apps/web |
The SvelteKit dashboard, and the one Worker that is deployed. Serves the API at /v1/*. |
alchemy.run.ts, alchemy/ |
The Alchemy stack that provisions the platform itself. |
scripts/ |
The deploy and onboarding wizards. |
docs/ |
ADRs, roadmap, and the managed-project contract. |
Built on Alchemy, Hono, SvelteKit, Drizzle ORM, shadcn-svelte, and Cloudflare Workers.