Features

What ships — and what we climb toward

deploy is a Zig CLI plus TypeScript packages for build and runtime. The product goal is Vercel-shaped DX on Cloudflare, with explicit honesty about gaps.

CLI surface

  • deploy create

    Scaffold App Router Next + Cloudflare wiring (interactive; --yes for non-interactive).

  • deploy init

    Adopt an existing Next app: patch package.json, next.config, generate wrangler.

  • deploy check

    Compat matrix scan. TTY prompts for unsupported features; fail-closed offline.

  • deploy link

    Bind Cloudflare account / Worker name into deploy.json.

  • deploy deploy

    Build via @solvedgg/deploy-build, then wrangler deploy.

  • deploy dev

    Local workerd-oriented development loop.

  • deploy env

    list | pull | push | add | rm — secrets and vars bridge to wrangler.

  • deploy whoami / logs / matrix

    Identity, log tail, and coverage estimate.

Owned packages

Original code under packages/ — not a fork or rebrand of OpenNext / next-on-pages.

@solvedgg/deploy-runtime

Worker fetch handler, cache, images, bindings types.

@solvedgg/deploy-build

withDeploy(nextConfig), deploy-build CLI, asset staging.

Compat matrix themes

Living matrix in src/compat/matrix.zig. Categories evolve; unsupported hits get a TTY prompt or hard fail.

  • Routing App Router / Pages detection; progressive route support.
  • Rendering SSG / static first; SSR climbs toward Node parity.
  • Data & cache fetch cache, revalidate — tracked; partial where documented.
  • Middleware Edge-oriented paths preferred; gaps prompted at check.
  • Images Cloudflare Images / cf image transform integration.
  • Storage & cron KV, R2, D1, Queues, Durable Objects, crons via wrangler.

Unsupported feature policy

[deploy] we no do this yet: <feature>
         do anyway? [y/N]

Non-interactive CI fails closed unless --force or DEPLOY_FORCE=1.

Ready to wire a project?

Get started →