Simpler Desktop Apps With Deno

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2026
November 16 - 19, 2026
New York, US & Online
Upcoming event
JSNation US 2026
JSNation US 2026
November 16 - 19, 2026. New York, US & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

Deno has quietly evolved into far more than a simple server-side runtime. With built-in TypeScript, OpenTelemetry integration, ngrok-like network tunnelling, and deep Node.js compatibility, it's already a powerhouse; but we've been working on something bigger. In this talk, I'll introduce Deno Desktop: a brand new capability that completely changes what you can build with Deno and a single 'deno compile' command. If you've ever wished the JS runtime could meet you where your users actually are, you won't want to miss this one.

This talk has been presented at JSNation 2026, check out the latest edition of this JavaScript Conference.

Leo Kettmeir
Leo Kettmeir
29 min
11 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Discussing challenges with Electron and alternatives like Tari and Deoxys for desktop app development in Deno. Simplifying conversion of web apps using Deno-desktop. Building desktop apps with HTTP servers and Express app. Converting Next.js app to a desktop app. Exploring native OS system interaction and browser window creation in Deno. Enhancing JavaScript development with Deno, including HMR capabilities. Customizing engine options and unified debugging in Deno. Balancing convenience and security in desktop app development with Deno. Investigating future features like iOS and Android app compilation and window modifications in Deno.

1. Exploring Desktop App Development with Deno

Short description:

Discussing making desktop apps with Deno, addressing challenges with Electron and alternatives like Tari and Deoxys for smaller binaries and trade-offs in UI consistency and JS ecosystem.

I'll be talking about making desktop apps with Deno now. This again as just mentioned was landed five minutes ago. Yes, I mean, let's get into it. So, first off, yes, I'm Leo. I work at Deno, mainly do developer experience, web APIs, maintain JSR if you use it, and as of recently, also a T39 delegate.

So you built a nice web app. You have a product. You want your thing to be a website. But then suddenly people ask, hey, can I get it as a desktop app? And then you have to set up Electron. Electron while being very powerful is a lot to set up. It's not easy. I mean, you have a decision between, well, you can pick between three different things. Either you get consistent UI, small and fast, or you get a JS ecosystem.

And since we are JS Nation, I assume most people here will want to be able to use MPM, the frameworks, node compatibility, everything that you're familiar with. The problem is nowadays, most of the things, you're stuck with two. You can not get all three of them. But the trade-offs usually are with Electron, it's a massive bundle. You're including all of Chromium. That is not small. But if you use Tari and Deoxys, you get very small binaries because they use the system web view, but because it's web view, it's inconsistent, and you don't get the JS ecosystem which is quite a drawback.

2. Simplifying Desktop App Conversion with Deno

Short description:

Discussing the simplicity of turning web apps into desktop apps with Deno using a single command, deno-desktop, for experimental features and feedback collection.

All of them are a second project, a second tool chain. You have to separately think about this. It's like separate apps. You cannot just use your normal web app as your desktop apps. But what if you could just do that? Very, very simply. Don't need to do any changes. Don't need to download a separate tool chain, unless you're not using Deno, but that's one additional tool chain, I guess. But it's only one command, and it's deno-desktop.

You literally just have to call deno-desktop and it will turn your app into a desktop app. This is our first public look. There was a tweet a few days ago from Ryan, but now we have decided that we're actually going to go with this. This is shipping as an experimental feature, so there's a lot of breaking changes. Very buggy to some degree still. That is bound to be.

Anyway, we land it as an experimental feature. We want you to try it out and give us feedback. So deno-desktop, you can point at any of your frameworks that you're using. If you're using Next.js, you can just use that. You just call deno-desktop. You just get a desktop app, like an exe.app, just an executable on Linux, or even a distributable like .msi or DMG. You can get any of this with just no configuration at all. It will just work.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

How Bun Makes Building React Apps Simpler & Faster
React Day Berlin 2022React Day Berlin 2022
9 min
How Bun Makes Building React Apps Simpler & Faster
Top Content
BUN is a modern all-in-one JavaScript runtime environment that achieves new levels of performance. It includes BUN dev, a fast front-end dev server, BUN install, a speedy package manager, and BUN run, a fast package runner. BUN supports JSX, has optimized React server-side rendering, and offers hot module reloading on the server. The priorities for BUN include stability, node compatibility, documentation improvement, missing features in BUN install, AST plugin API, native Windows support, Bundler and Minifier optimization, and easier deployment to production. BUN's AST plugin API allows for bundle-time JavaScript execution and embedding code, potentially inspiring new frameworks.
Never Worry About CORS Again
JSNation US 2025JSNation US 2025
28 min
Never Worry About CORS Again
Talk on Bund: Overview of Bund, its speed optimization, components like runtime, package manager, test runner, and bundler. Efficient features include fast npm manager, pnpm lockfile support, Jest-compatible test runner, and optimized runtime components. Built-in features like modern password hashing, WebSocket server, file glob API, and database clients. API design focuses on common use cases and optimization. Enhanced JavaScript functionality with SIMD, native code, and performance improvements. Challenges in JavaScript productivity, BUN adoption, deployment, and support. React support, community involvement, security, Next.js compatibility, and transition.
Node.js Compatibility in Deno
Node Congress 2022Node Congress 2022
34 min
Node.js Compatibility in Deno
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.
Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Understand magic behind Node.js
Node Congress 2023Node Congress 2023
29 min
Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Understand magic behind Node.js
Top Content
The Talk explores the magic behind Node.js and delves into its components, including V8, libuv, and the C++ bridge. It discusses the workflow and execution process, the use of NodeMod, and the understanding of console functions. The Talk also covers Node.js functions and scheduling, the introduction of runtimes, and the collaboration between JavaScript runtimes. It concludes with insights on content production, the choice of Node.js, and the inspiration behind it.
Eval all the strings! - Hardened JavaScript
Node Congress 2023Node Congress 2023
8 min
Eval all the strings! - Hardened JavaScript
NPM packages can be potentially dangerous, so it's important to be proactive in managing them. Lava Mode allows you to detect and investigate suspicious packages before deploying your app. Lavamote prevents unauthorized access to sensitive resources by isolating dependencies and using hardened JavaScript. Lava Mode makes it easier to analyze obfuscated files and understand their actions.
Roll you own JavaScript runtime
Node Congress 2023Node Congress 2023
21 min
Roll you own JavaScript runtime
This Talk introduces Deno, a custom JavaScript runtime similar to Node.js, and discusses the benefits of using a custom runtime. It explores the process of building a custom runtime with Deno in Rust, including the integration with Cargo and the ability to mix and match crates and APIs. The Talk also covers the implementation of the setTimeout function in both Run.js and Runtime.js, and provides examples of how to fix errors and implement additional functions. Overall, the Talk highlights the flexibility and possibilities of creating custom runtimes with Deno.

Workshops on related topic

Build Peer-to-Peer Applications with Pear Runtime
JSNation 2024JSNation 2024
152 min
Build Peer-to-Peer Applications with Pear Runtime
Top Content
WorkshopFree
David Mark Clements
David Mark Clements
Learn how to rapidly build peer-to-peer applications with Pear Runtime. No servers required. Understand peer-to-peer paradigms and construct applications from well-defined building blocks. This workshop will cover how to create both Desktop and Terminal applications (with discussion for Mobile) that work entirely peer-to-peer from anywhere in the world. By the end of this workshop you should know how to build a new type of highly scalable application with entirely reduced infrastructural costs (~0) along with suitable architectures and best practices for peer-to-peer applications. From the creator of Pear Runtime and the company that brings us keet.io. Table of content:- Introducing Pear- Initial Q & A- Getting Setup- Creating a Pear Desktop Application- Sharing a Pear Application- Running a Pear Application- Creating a Pear Terminal Application- Releasing a Pear Application- Architectural Discussions- Wrap-up Q & A