A presentation at Node Congress in April 2025 in by Phil Hawksworth
Dabbling with Deno Tales from a web developer playing with a new toy Phil Hawksworth he/him
Phil Hawksworth he/him Head of Developer Relations, Deno
b u H t i G Link Tw i t e dI n y k S Bl ue te r @ PhilHawksworth.dev he/him Head of Developer Relations, Deno We b m o c . x r o w h aw k s
Naming things is hard. “node”
Naming things is hard. “node”.split(“”)
Naming things is hard. “node”.split(“”).sort()
Naming things is hard. “node”.split(“”).sort().join(“”)
Naming things is hard. deno
Naming things is hard. ahkorswwx
Tools and trends. Some technologies come and go
Tools and trends. Some technologies stick around
Tools and trends. Some technologies become ubiquitous
Tools and trends. JavaScript™ Frontend / Backend / Edges
Tools and trends. node
Tools and trends. JavaScript™
Tools and trends. TypeScript
Tools and trends. The pull of new interesting tools
Tools and trends. I first tried Deno by accident
Deno first contact. netlify.com
Deno first contact. export default async () =>” { return new Response(“Hello, World!”, { headers: { “content-type”: “text/html” } }); };
Deno first contact. A gateway drug took me deeper
Deno first contact. lume.land
Deno first contact. deno.com
Deno first contact. ❯ deno _
Um..what is Deno?
What is Deno? 1. Hosting platform 2. JavaScript runtime 3. TypeScript toolchain 4. Package manager 5. Task runner 6. Testing tool 7. Linter, formatter 8. Benchmarking tool 9. Compiler
What is Deno? What got me intrigued?
What is Deno? What got me intrigued? An API design based on web standards
What is Deno? . s d r a d n a t s b we
What is Deno? Familiar APIs Heavily based on web standards there is less re-learning required docs.deno.com
What is Deno? Shallow on-ramp
Deno first contact. A familiar entry point for those familiar with node node main.js
Deno first contact. A familiar entry point for those familiar with node deno main.js
Deno first contact. A familiar entry point for those familiar with node deno main.ts
Deno first contact. A familiar entry point for those familiar with node npm init
Deno first contact. A familiar entry point for those familiar with node deno init
Deno for Visual Studio Code https://deno.co/vscode
Deno first contact. A familiar entry point for those familiar with node npm install
Deno first contact. main.ts import * as emoji from “node-emoji”; console.log( emoji.emojify(:sauropod: :heart: ); npm)
:sauropod: :heart: ); npm
Deno first contact. main.ts import * as emoji from “npm:node-emoji”; console.log( emoji.emojify(:sauropod: :heart: ); npm)
Deno first contact. deno run main.ts ! ❤ npm
Dependency management.
Dependency management. y l l a c o L Dependencies cached globally
Dependency management. deno install
Dependency management. deno add
Dependency management. deno add npm:node-emoji
Dependency management. “imports”: { “react”: “npm:react@18.2.0”, “vite”: “npm:vite@^6.2.4”, “@std/assert”: “jsr:@std/assert@1.0.12” “node-emoji”: “npm:node-emoji@^2.2.0”, } deno.json
Dependency management. main.ts import * as emoji from “npm:node-emoji”; console.log( emoji.emojify(:sauropod: :heart: ); npm)
Dependency management. main.ts import * as emoji from “node-emoji”; console.log( emoji.emojify(:sauropod: :heart: ); npm)
Dependency management. deno outdated
Dependency management. https://trilon.io/blog/how-to-delete-all-nodemodules-recursively
Dependency management. ❯ deno clean
Task runner.
Running tasks. npm run dev
Running tasks. deno run dev
Running tasks. deno task dev
Test runner.
Test framework. deno test
Test framework. main_test.ts main.test.ts
Test framework. Mocking Async testing Coverage A variety of test styles
Test framework. docs.deno.com/examples
Test framework. docs.deno.com/examples/testing_tutorial
Test framework. docs.deno.com/runtime/fundamentals/testing
TypeScript toolchain.
JavaScript toolchain.
Development toolchain.
Toolchain. It’s already built in
Toolchain. deno main.js
Toolchain. deno main.ts
Toolchain. deno check
Toolchain. deno types
Toolchain. deno fmt
Toolchain. deno lint
Toolchain. docs.deno.com/lint
Why I’m excited.
Reasons to be excited. Simplification and unification of tools
Reasons to be excited. Regular improvements
Reasons to be excited. I kinda sorta know most of it already
Reasons to be excited. Lower friction and fewer quirks
Reasons to be excited. Security and performance
Recommended resources. docs.deno.com/examples Deno examples and tutorials discord.gg/deno Deno Discord bsky.app/profile/deno.land Deno on Bluesky www.youtube.com/watch?v=N04Nrl37Ies Deno 2 Deep Dive | Exploring the Deno Ecosystem
Thanks. philhawksworth.dev findthat.at/hello-deno