# Deno Deploy

Deno Deploy is Deno's managed platform and can also self-host regions on your infrastructure. The new console is at `console.deno.com`, with an organization → app → revision → timeline model. It is not an in-place upgrade of Deploy Classic.

## Create and deploy

Connect GitHub for integrated builds or use the built-in Deno CLI:

```bash
deno deploy
deno deploy --prod
deno deploy logs --org my-org --app my-app
```

The interactive CLI stores authentication in the system keyring. Automation should use the platform's approved token flow; never put a deploy token in shell history.

| New-platform capability | Official state as of 2026-08-03 |
| --- | --- |
| Environments | separate Production, Development, and Build contexts |
| Data | PostgreSQL or Deno KV with timeline-level logical isolation |
| Scheduling | `Deno.cron()` with runs in logs and traces |
| Observability | dashboard logs, traces, and metrics |
| Caching | CDN caching and Web Cache API |
| Regions | managed US/EU plus self-hosted regions; verify current list |
| Queue | new Deploy does not currently support the old Deno KV Queue API |

## Before release

1. Expose HTTP through `Deno.serve` or the chosen framework.
2. Define reproducible install/build/start behavior in `deno.json`.
3. Commit `deno.lock` and pass CI.
4. Store only secret names in the repository, never secret values.
5. Verify consistency and quotas for KV, databases, and cron; design a replacement before moving a Classic queue workload.

## Release checks

```text
GET /health          → 200 with a small stable body
request without key  → explicit failure without configuration leakage
timeout/cancellation → abort upstream work
repeated write       → idempotent or detectable
rollback             → previous artifact can be reactivated
```

Inspect build and request logs for tokens, authorization headers, and user input. Add timeouts to external APIs and idempotency keys to retryable writes.

## Revisions and rollback

Each timeline has revision history and an active revision serving traffic. Verify on a non-production timeline before promotion. Activating an earlier revision does not automatically roll back a database migration.

## Deno KV

`Deno.openKv()` uses different storage backends locally and on the managed platform. Keys are structured arrays and transactions use versionstamps. Prefer an in-memory or isolated database in tests; verify current Deploy quotas and consistency guidance before production.

Continue with [Databases, cron, and timelines](/en/docs/deploy/data-and-cron) and [Classic migration](/en/docs/deploy/classic-migration).

Official sources: [About Deno Deploy](https://docs.deno.com/deploy/), [`deno deploy` CLI](https://docs.deno.com/runtime/reference/cli/deploy/), and [Timelines](https://docs.deno.com/deploy/reference/timelines/).
