Deno Desktop

Package web applications as cross-platform desktop programs with deno desktop in Deno 2.9

deno desktop is available in Deno 2.9+. It packages a TypeScript/JavaScript application, the Deno runtime, and a web rendering backend into a self-contained artifact per platform.

Shortest workflow

deno --version       # requires 2.9+
deno desktop --hmr main.ts
deno desktop main.ts

The entry can be a small Deno.serve application or a framework such as Next.js, Astro, Fresh, or SvelteKit. Configure adapters, assets, and development commands from the framework-specific official guide.

Capabilities and boundaries

CapabilityCurrent meaning
WindowsDeno.BrowserWindow owns lifecycle and multiple windows
Frontend/backend callsexplicit bindings; renderer input is never trusted code
Desktop integrationmenus, tray, Dock, dialogs, and native notifications
Debugging--hmr and unified DevTools
Distributiontarget triples and --all-targets cross-builds
UpdatesDeno.autoUpdate() with bsdiff and failed-launch rollback
deno desktop --target aarch64-apple-darwin main.ts
deno desktop --all-targets main.ts

Release checks

  • Configure real macOS/Windows code signing; an ad-hoc signature does not remove Gatekeeper warnings.
  • Verify notifications, file dialogs, GPU, fonts, and updates on every target OS.
  • Sign update manifests with Ed25519 and serve updates over HTTPS.
  • Official docs currently say Windows cannot apply a downloaded auto-update patch; verify again before release.
  • Error reports may contain stacks and runtime context. Send them only over HTTPS after data classification.

Official sources: Desktop apps, Distribution, and Auto-update.

Type to search all documentation.