Deno, the drop-in JavaScript runtime for Node developers
Introducing celld: self-hosted, distributed Durable Objects
Deno is a fast, open-source, fully Node-compatible JS runtime with TypeScript and everything else you need baked right in.
Faster than Node; more stable than Bun.
Built-in tools: package manager, test runner, formatter, linter, task runner, type checker, coverage tool, workspace manager, benchmarker, doc generator, jupyter kernel, compiler, desktop app builder.
- package manager
- test runner
- formatter
- linter
- task runner
- type checker
- coverage tool
- workspace manager
- benchmarker
- doc generator
- jupyter kernel
- compiler
- desktop app builder
Install Deno 2.9.7
$ curl -fsSL https://deno.land/install.sh | sh
Or let your agent do it
Paste this into any coding agent.
Read deno.com/agents.md and set up Deno in this project
Everything just works
TypeScript, JSX, and npm, straight from source. No tsc, no ts-node, no bundler, no config to get in the way.
import { Hono } from "hono";
interface Book {
title: string;
year: number;
}
const books: Book[] = [{ title: "Deno", year: 2018 }];
const app = new Hono();
app.get("/books", (c) => c.json(books));
export default app;
{
"name": "project-with-npm-deps",
"dependencies": {
"chalk": "^5.6.2",
"hono": "^4.12.27"
}
}
Zero-setup TypeScript and npm
Import npm packages just like you would anywhere else. Full type-checking is one deno check away.
Your Node project, without the Node problems
Deno runs Node code and understands lockfiles (even pnpm and yarn), to make any project simple to run with Deno.
Drops right in
- npm
- node_modules
- package.json
- tsconfig.json
- ESM
- JSX / TSX
- node:* imports
- CommonJS
Built-in everything
From formatting and linting to testing and package management, Deno is designed with seamless developer experience in mind. Stop configuring; start building.
deno task
deno serve
deno fmt
deno lint
deno test
deno bench
deno check
deno compile
deno desktop
deno doc
Run project tasks (docs)
$ deno task dev
Task dev deno run -A --watch main.ts
Watcher Process started.
Listening on http://localhost:8000/
$
A faster package manager
Deno supports npm workspaces, and can read npm, yarn, and pnpm lockfiles.
On the cutting edge of JavaScript
The same fetch, Request, Response, and Crypto APIs you use in the browser, now on the server — and as a TC39 and WinterCG participant, Deno is regularly first to ship new standards-track features.
Available today: Temporal · Set methods · Iterator helpers · Promise.try · Float16Array
Granular security controls
Deno blocks file system, network, and environment access by default. Customize, layer, and audit security settings for any use case.
Three layers of defense
Access is denied by default and opened on purpose. Security from end to end, at every layer.
Default deny
Scoped grants
Audits
Faster than you think
Deno doesn't stop improving. If you haven't looked in a while, you might be surprised just how fast we've gotten.
See anything, understand everything
Don't just ship code; inspect it deeply at every level with native OpenTelemetry, profiling, and debugging all built-in from the start
OTEL in 5 seconds
OTEL_DENO=true
Profiling
deno run --cpu-prof
Debugging
deno run --inspect-brk
Deploy Deno anywhere
One binary, every platform. Drop Deno into your existing container, serverless function, or VM. No rewrites, no extra tooling.
And now, the desktop
Deno Desktop builds native, cross-platform desktop apps from the web stack you already know — your frontend, your TypeScript backend, one binary on the desktop. No Electron-sized bundle, no Chromium to ship, no second runtime to manage.
$ deno desktop --all-targets main.ts
Building native installers…
✓ main.app
✓ main.dmg
✓ main.msi
✓ main.AppImage
Loved by developers
100k+ GitHub stars
400k+ Monthly active users
Trusted in production by teams at Slack, Netlify, GitHub, Supabase, Salesforce, Spotify, Stripe, Bank of America, Tencent.
Better JavaScript
Install Deno in a few seconds. Bring an existing project over and see it run.