Trusted by major organizations
Native TypeScript support
interface Person {
name: string;
age: number;
}
function greet(person: Person): string {
return "Hello, " + person.name + "!";
}
const alice: Person = {
name: "Alice",
age: 36
};
console.log(greet(alice));
Modern language features, built-in
Built on web standards
Consistent code from browser to backend
Batteries included
The essential tools you need to build, test, and deploy your applications are all included out of the box.
Code linter
$ deno lint --watch
Deno ships with a built-in code linter to help you avoid bugs and code rot.
Learn moreStandalone executables
Deno.serve(req => new Response("Hello!"));
$ deno compile --allow-net server.ts
$ ./server
Listening on http://localhost:8000/
Instantly create standalone executables from your Deno program. It even supports cross-compiling for other platforms!
Learn moreTest runner
$ deno test main_test.ts
Deno.test("1 + 2 = 3", () => {
const x = 1 + 2;
console.assert(x == 3);
});
Deno provides a test runner and assertion libraries as a part of the runtime and standard library.
Learn moreCode formatter
$ deno fmt --line-width=120
Deno's built-in code formatter (based on dprint) beautifies JavaScript, TypeScript, JSON, and Markdown.
Learn moreSecure by default
Prevent supply chain attacks
Stop worrying about npm modules introducing unexpected vulnerabilities. Deno restricts access to the file system, network, and system environment by default, so code can access only what you allow.

Backward compatibile with Node.js
import express from "npm:express@4";
const app = express();
app.get("/", function (_req, res) {
res.send("hello");
});
app.listen(3000, () => {
console.log("Express listening on :3000");
});
$ deno run --allow-net --allow-read --allow-env server.js

Compatible with millions of npm modules
npm:
specifiers.Built for the cloud
Deno Deploy
The easiest way to host your Deno projects.
- Globally distributed
- Deploy in seconds
- Built-in key/value database
- Integrate with GitHub for CI/CD
- Run static sites, apps, and edge functions
- No config needed
- One-click immediate rollbacks
Also runs on
- DockerOfficial Docker image
- AWS Lambda distributionhayd/deno-lambda
- DigitalOceanHow to Deploy Deno to Digital Ocean
- Cloudflareskymethod/denoflare
- Google Cloud RunHow to Deploy to Google Cloud Run
High-performance networking
- HTTPS (encryption)
- WebSocket
- HTTP2
- Automatic response body compression
Deno.serve(req => new Response("Hello world"));
Bigger is better
Throughput, requests per sec
Seamless persistence with Deno KV
The Deno runtime ships with Deno KV, a key/value database designed for globally distributed applications.
Go from development to production on Deno Deploy with no API keys or infrastructure to configure.
Fresh
Fresh is a modern web framework, designed from the ground up for the Deno runtime on edge servers.
- Built for speed, reliability, and simplicity
- Just-in-time rendering at the edge
- Island-based client hydration
- Zero runtime overhead
SaaSKit
Built on top of Fresh, the SaaSKit template app includes authentication, billing, and more.
- User authentication with oAuth 2.0
- Recurring payments implemented with Stripe
- Sessions and authorization pre-built
- Fast, lightweight persistence with Deno KV
Our vibrant community
“I know this was gonna happen! Deno is truly building the fastest, most secure and personalizable JS runtime!”
“Deno's security model is PERFECT for this type of script. Running a script from a rando off the internet? It asks for read access to only the CWD and then asks for access to the file it wants to write to. 👏”
“I really think Deno is the easiest and most capable JS runtime. URL imports are slept on.”
“npm packages in Deno 👀 That’s an exciting development for those of us building at the edge.”
“This Deno thing is fast, no doubt about it. #denoland”
“Deno: I have to use the browser APIs cause they are everywhere, and everywhere is my target runtime (the web). The runtime that tries to mirror browser APIs server side makes my life easiest.”
“Deno is fantastic. I am using it to level up a bit in terms of JavaScript and TypeScript and it is the easiest way to get going. Their tooling is like 100x simpler than all the usual Node stacks.”