Skip to main content
Deno 2 is finally here 🎉️
Learn more

Uncomplicate JavaScript

Deno is the open-source JavaScript runtime for the modern web.

Install Deno v2.0.0

curl -fsSL https://deno.land/install.sh | sh
What is Deno?

Deno is the open-source JavaScript runtime for the modern web.

Built on web standards with zero-config TypeScript, unmatched security, and a complete built-in toolchain.
  • Rating
    90k+
    Stars on GitHub
  • Community
    200k
    Active Deno users
  • Ecosystem
    2M+
    Community modules
  • Slack
  • Netlify
  • GitHub
  • Supabase
  • Spotify
  • Salesforce
  • Stripe
  • Bank of America
New

Deno for enterprise

Now offering enterprise support for the Deno runtime

Native TypeScript support

The Deno runtime natively supports TypeScript, JSX, and modern ECMAScript features with zero configuration.
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

Batteries included

The essential tools you need to build, test, and deploy your applications are all included out of the box.

Code linter

Deno ships with a built-in code linter to help you avoid bugs and code rot.

Learn more
$ deno lint --watch

Test runner

Deno provides a test runner and assertion libraries as a part of the runtime and standard library.

Learn more
// server_test.ts
Deno.test("1 + 2 = 3", () => {
  const x = 1 + 2;
  console.assert(x == 3);
});
$ deno test server_test.ts

Standalone executables

Instantly create standalone executables from your Deno program. It even supports cross-compiling for other platforms!

Learn more
Deno.serve(req => new Response("Hello!"));
$ deno compile --allow-net server.ts

Compile file:///tmp/server.ts to server
$ ./server
Listening on http://localhost:8000/

Code formatter

Deno's built-in code formatter (based on dprint) beautifies JavaScript, TypeScript, JSON, and Markdown.

Learn more
$ deno fmt --line-width=120

Secure by default

A program run with Deno has no file, network, or environment access unless explicitly enabled.

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.

Other runtimes

$ node random.js
Executing random.js...
🚨 File system compromised!

Deno

$ deno random.js
⚠️ Deno requests write access
Allow? [y/n/A]
$ n
❌ Denied write access
Exited

Backwards compatible with Node.js

Deno's Node.js compatibility layer means you can bring the best of the Node ecosystem with you to Deno.
server.ts
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

Include modules from npm in your Deno projects using npm:specifiers.

High-performance networking

Out of the box support for:
  • HTTPS (encryption)
  • WebSocket
  • HTTP2
  • Automatic response body compression

Bigger is better

Throughput, requests per sec

Deno
200059
Node
95879

Built for the cloud

Whether you deploy with our lightning-fast Deno Deploy or on other cloud providers, Deno streamlines your experience.

Deno runs on

Go further with Deno cloud products

Products built on Deno to help you deploy TypeScript and JavaScript easily and securely at any scale.

Deno Deploy

For developers looking for the simplest way to host web apps and APIs

  • Fully managed serverless solution
  • Globally distributed
  • Built-in key/value database, queues, cron, and more
  • Integrated directly with GitHub

Deno Subhosting

For SaaS companies looking to run user code securely

  • Secure sandboxed functions
  • Automatic scaling and provisioning
  • Globally distributed
  • Manage via a simple API

The Freshest web framework

Fresh is a server-rendered web framework for Deno, built with Preact for blazing speed and instant productivity.

Build fast sites fast

Author routes as the JSX (or TSX) components you already know and love, and Fresh handles dynamic server-side rendering by default.
/routes/index.tsx
export default function HomePage() {
  return (
    <div>
      <h1>HTML fresh from the server!</h1>
      <p>
        Delivered at
        {new Date().toLocaleTimeString()}
      </p>
    </div>
  );
}
/islands/Counter.tsx
import { useSignal } from "@preact/signals";

export default function Counter() {
  const count = useSignal<number>(0);

  return (
    <button onClick={() => count.value += 1}>
      The count is {count.value}
    </button>
  );
}

Ship less JavaScript

Island-based architecture lets you opt in to only the JavaScript you need, for absolutely minimal runtime overhead.

Our vibrant community

“I know this was gonna happen! Deno is truly building the fastest, most secure and personalizable JS runtime!”
Manu (Qwik)
“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. 👏”
Wes Bos
“I really think Deno is the easiest and most capable JS runtime. URL imports are slept on.”
Atalocke
“npm packages in Deno 👀 That’s an exciting development for those of us building at the edge.”
Jason Lengstorf
“This Deno thing is fast, no doubt about it. #denoland”
Poorly Funded Snob
“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.”
Taylor Young
“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.”
Stefan Arentz

Ready to get started with Deno?