The drop-in JavaScript runtime

All-in-one toolchain with native TypeScript, web-standard APIs and secure-by-default execution.

deno 2.5 is out
doc generator
jupyter kernel
compiler
desktop app builder
package manager
test runner
formatter
linter
task runner
Toolchain

Everything you need, in one binary

Native TypeScript

Run .ts directly. No build step, no config file, no transpiler to keep in sync.

Secure by default

No file, network or environment access unless you grant it explicitly.

Web-standard APIs

fetch, Web Streams, Web Crypto and Workers behave the way they do in a browser.

main.tsdeno.jsonterminal
// serve an HTTP endpoint — no dependencies, no build Deno.serve((req) => { const url = new URL(req.url); return new Response("hello from " + url.pathname); }); $ deno run --allow-net main.ts Listening on http://localhost:8000/
Controls

Mint is a fill, never a text colour

Install Deno Read the docs Disabled Read the post-> deno 2.5 is out
Nav link Nav link · hover active tabinactive tab
Search the docs deno serve

Hero pills are 60px at 9999px with only 2px vertical padding; the banner button is the one control with a 2px border, at 6px radius and 36px. Default radius across the page is 4px (129 uses). Colour transitions run 0.15s cubic-bezier(.4, 0, .2, 1) on 147 elements. A focus recipe was not captured, so the focused field above substitutes the ink ring.

Typography

Four families, and mono outnumbers sans

h1 hero · Inter · 72/79.2 · 700 · -1.8pxDrop-in runtime
Display large · Moranga (serif) · 44/48.4 · 400 · -1.1pxEverything in one binary
Display · Moranga · 36/39.6 · 400 · -0.9pxSecure by default
Display small · Moranga · 18/18 · 700 · normalNative TypeScript
Label · Moranga · 14/14 · 700 · normalToolchain
h2 variant · Inter · 36/39.6 · 700 · -0.9pxBuilt for the web
h3 variant · Inter · 44/48.4 · 700 · -1.1pxOne toolchain, zero config
Body · Recursive · 16/24 · 400 · normalRun .ts directly — no build step and no config file.
Lead · Recursive · 18/28 · 400 · normalAll-in-one toolchain with native TypeScript.
Nav link · Inter · 18/36 · 700 · normalProducts · Docs · Modules
Hero list row · Menlo · 20/28 · 500 · normalpackage manager
Code tab · Menlo · 12/16 · 700 · normalmain.ts
Banner · Inter · 16/24 · 400 · normalIntroducing Claw Patrol
Palette

One mint, quarantined colour

Text
ink#121417
muted#56575a
faint#868789
disabled#9ea0a5
dim#c2c4c7
banner-ink#172723
Surfaces & borders
canvas#ffffff
tonal#f5f5f5
dark-deep#121417
dark band#191b1f
dark-raised#25272b
hairline#e5eaea
border-mid#d4d6d8
Accent
mint#70ffaf
mint-ringrgba(112,255,175,.4)
deep-green#001f08
Product / illustration — artwork only, never chrome
cyan#01c2ff
magenta#db01ff
yellow#ffd601
orange#ea8e04
green#01ff67
pale blue#b3e0ff
Vendor — GitHub prettylights markdown tokens, NOT brand chrome
accent-fg#0969da
fg-default#1f2328
border-default#d0d7de
canvas-subtle#f6f8fa
danger-fg#d1242f
syntax keyword#6639ba
syntax constant#0550ae
syntax comment#57606a
Depth & motion

Tailwind elevation, ring plus contact

2px
3px
4px default · 129 uses
6px button
8px
12px
9999px pill
lift · .1 0 10px 15px -3px + .1 0 4px 6px -4px
ring + contact · #e5eaea 0 0 0 1px, then 1px 3px / 1px 2px -1px
throw · rgba(0,0,0,.25) 0 25px 50px -12px
mint conic sweep

Motion: 0.15s cubic-bezier(.4, 0, .2, 1) on the colour group (147 elements), 0.15s on opacity, a compound 0.1s linear / 0.25s cubic-bezier(0, .37, .17, 1) on opacity and transform for reveals, and a 0.3s variant. The hero list animates continuously; no video, canvas, WebGL, backdrop-filter or grain anywhere.