Join the AI Workshop to learn more about AI and how it can be applied to web development. Next cohort February 1st, 2026
The AI-first Web Development BOOTCAMP cohort starts February 24th, 2026. 10 weeks of intensive training and hands-on projects.
If you are familiar with Node.js, the popular server-side JavaScript ecosystem, then Deno is just like Node. Except deeply improved in many ways.
Here’s what makes Deno special:
- It is based on modern features of the JavaScript language
- It has an extensive standard library
- It has TypeScript at its core (you don’t have to separately compile TypeScript, Deno does it automatically)
- It embraces ES modules
- It has no package manager
- It has first-class
await - It has a built-in testing facility
- It aims to be browser-compatible (provides built-in
fetchand the globalwindowobject)
Why Deno?
Deno was announced by Node.js original creator Ryan Dahl at JSConf EU. Watch the YouTube video of the talk - it’s very interesting.
Every project manager must take decisions. Ryan regretted some early decisions in Node. Also, technology evolves, and today JavaScript is a totally different language than what it was back in 2009 when Node started. Think about the modern ES6/2016/2017 features.
Node.js is awesome and will continue to be the de facto standard in the JavaScript world. But Deno can afford to have everything written with modern technologies, since there’s no backward compatibility to maintain.
Should you learn Deno?
If you are starting out with server-side JS and you don’t know Node yet, I’d start with Node.
But if you love TypeScript, don’t depend on a gazillion npm packages in your projects and you want to use await anywhere, Deno might be what you’re looking for.
First-class TypeScript support
Deno is written in Rust and TypeScript. Running TypeScript code with Deno does not require a compilation step - Deno does that automatically for you.
You are not forced to write in TypeScript, but the fact the core of Deno is written in TypeScript is huge:
- An increasingly big percentage of JavaScript programmers love TypeScript
- The tools you use can infer many information about software written in TypeScript
- Editors like VS Code can provide type checking and advanced IntelliSense features as you write code
Similarities and differences with Node.js
Similarities:
- Both are developed upon the V8 Chromium Engine
- Both are great for developing server-side with JavaScript
Differences:
- Node is written in C++ and JavaScript. Deno is written in Rust and TypeScript.
- Node has an official package manager called
npm. Deno does not, and instead lets you import any ES Module from URLs. - Node uses the CommonJS syntax for importing packages. Deno uses ES Modules, the official way.
- Deno uses modern ECMAScript features in all its API and standard library, while Node.js uses a callbacks-based standard library.
- Deno offers a sandbox security layer through permissions. A program can only access the permissions set to the executable as flags by the user.
No package manager
Having no package manager and having to rely on URLs to host and import packages has pros and cons. It’s very flexible - you can create packages without publishing them on a repository like npm.
The Deno website provides code hosting (and distribution through URLs) to 3rd party packages: https://deno.land/x/
Install Deno
The easiest way is to use Homebrew:
brew install deno
Once installed, you have access to the deno command. Here’s the help:
deno --help
The Deno commands
Key subcommands:
bundlebundle module and dependencies of a project into single filecachecache the dependenciesdocshow documentation for a moduleevalevaluate a piece of code, e.g.deno eval "console.log(1 + 2)"fmta built-in code formatter (similar togofmtin Go)replRead-Eval-Print-Loop (the default)runrun a program given a filename or url to the moduletestrun testsupgradeupgradedenoto the newest version
You can run deno <subcommand> --help for specific help.
Your first Deno app
You can run a command from any URL. Deno downloads the program, compiles it and runs it:
deno run https://deno.land/std/examples/welcome.ts
If you run the program again, it’s cached and doesn’t need to download again. Force a reload with --reload:
deno run --reload https://deno.land/std/examples/welcome.ts
Deno sandbox
Deno is a sandbox by default. Programs cannot access:
- The file system
- The network
- The environment variables
- Run subprocesses
You allow access by passing flags like --allow-read, --allow-write, --allow-net, --allow-env, --allow-run. Or --allow-all (or -A) to disable all security.
Formatting code
Deno has a built-in code formatter. Run deno fmt to format all files in the current directory, or deno fmt file.ts for a specific file.
The standard library
The Deno standard library is available at https://deno.land/std. It includes:
archivetar archive utilitiesasyncasync utilitiesbyteshelpers to manipulate bytes slicesdatetimedate/time parsingencodingencoding/decoding for various formatsflagsparse command-line flagsfmtformatting and printingfsfile system APIhashcrypto libraryhttpHTTP serverioI/O libraryloglogging utilitiesmimesupport for multipart datanodeNode.js compatibility layerpathpath manipulationwswebsockets
Using third-party packages
You can import modules directly from URLs:
import { Client } from 'https://deno.land/x/postgres@v0.11.3/mod.ts'
Or from npm:
import chalk from 'npm:chalk@5'
Find out more
The Deno official website is https://deno.land
The API documentation is available at https://doc.deno.land
awesome-deno: https://github.com/denolib/awesome-deno
Lessons in this unit:
| 0: | Introduction |
| 1: | ▶︎ Deno |
| 2: | WebAssembly |