A Eulogy for Deno

Issue #529.October 14, 2026.2 Minute read.
Bytes

Today’s issue: The dev tool for dev tools, software water clocks, and our dirty little secret about TanStack Start.

Welcome to #529.


Eyeballs logo

The Main Thing

A smiling blue inflatable tube man waves beside a large arrow sign reading FUNERAL

Paying tribute to our beloved runtime the only way we know how

A Eulogy for Deno

When I wrote about Cloudflare’s acquisition of Deno last week, I glossed over the fact that Deno is… dead. So today, we give Deno a proper send-off.

In remembrance:

On behalf of the JavaScript community, I just want to start by thanking all of you for being here today. Deno always had a special place in our hearts. It was the main topic for the very first issue of Bytes, and was our “Main Thing” 12 times. I’m really going to miss farming content from Deno.

Born in 2018 out of a strong sense of parental guilt, Deno was raised right. It was taught the value of consent, always asking for permission to use the network or read .env files. And from an early age, it stayed pure from npm, keeping its dependencies decentralized. It also brought the JavaScript ecosystem a real stdlib (inspired by Go), freeing developers from installing packages like left-pad.

But over time Deno lost its way. It wanted to fit in with the rest of the ecosystem and was tempted by things like “adoption” and “market share”, becoming more and more like its older brother Node. And while it eventually succumbed to these pressures, let’s not forget some of the lessons Deno taught us.

Deno’s legacy:

  • Security: Scoped permissions became a core runtime feature, helping inform Node’s opt-in permission model, which stabilized in 2025.

  • Web APIs on the server: Its embrace of browser-standard APIs like fetch and Web Streams, alongside its role in establishing WinterCG, helped improve interoperability across JavaScript runtimes.

  • TypeScript native runtime: Running TypeScript without a separate build setup became an expectation, with Bun and Node now supporting that experience.

Bottom line: Deno, even though I only installed you twice and never used you in production, I loved you. And to Ry, please win that lawsuit with Oracle. Oh, and you’re a good dad ❤️.


Oracle Developers logo

Our Friends
(With Benefits)

Animated dad in a crowd gives a skeptical sideways glance

When you realize adding AI to your REST API wasn't as easy as you thought it'd be.

How to Build a REST API for an AI Application

It’s a REST API—how hard can it be, right? Well, turns out the AI part makes things quite a bit more complicated.

You have to authenticate callers, enforce data access, and choose between synchronous responses, streaming, or background jobs. Then there’s keeping provider credentials secure, validating inputs, and tracking latency, usage, cost, and failures.

It’s a lot. Fortunately, Wojtek Pluta from Oracle wrote this comprehensive guide on how to design and build REST APIs for AI applications.

It covers:

  • Building AI REST APIs with FastAPI
  • Connecting data, tools, and memory securely
  • Managing streaming, background jobs, and production reliability

Read the guide and start building your AI API.


Spot the Bug logo

Spot the Bug

Spot the Bug - Presented by Orkes

Orkes shared how they taught Claude, Cursor, and Copilot to build agentic workflows without hallucinating.

function addAndSort(array, element) {
  return array.push(element).sort();
}

Cool Bits logo

Cool Bits

  1. Mise, the dev tool to manage your dev tools, can now automatically keep everything in your environment up to date with its latest release.

  2. React Aria just released a sheet component that has gesture-synced animations, snap points, stacking, and a whole bunch of other sheet.

  3. The future of mobile development is agentic. And it’s built on Expo. For years, mobile shipped slower than the web. Now agents are writing code, testing it, fixing it, shipping it OTA, and then monitoring it. All on Expo. [sponsored]

  4. Simeon Griggs wrote a great blog post on “leaky buckets”, which surprisingly is about the intersection of software and water clocks and not how agents are bankrupting your company.

  5. The team at Base UI released version 1.9.0, which fixes a bunch of things your agent would never notice but that your users will.

  6. Anomaly released OpenCode 2.0, a major overhaul with a new API and SDK, plus “Code Mode”, background tasks, and plugins.

  7. “What’s the best way to use the Sentry MCP, CLI, and Seer with my coding agent?” Paul Jaffre wrote this detailed blog post to answer that question for good. [sponsored]

  8. Meta released Muse Wonder, a frontier model ranked only behind Opus 5.5 on the TMBBs, with certain “dev influencers” saying it’s better than Sol 6.1. My only question is how do I also get paid to say nice things about the models?

  9. Richie McIlroy created Tov, a TypeScript-shaped language built for coding agents that compiles to native binaries that are faster than Rust (allegedly).

  10. TanStack Start is finally stable with yesterday’s 1.0 release. Is now a bad time to admit I’ve been using it in production for over a year?


Spot the Bug logo

Spot the Bug: Solution

Spot the Bug - Presented by Orkes

When you call array.push, it doesn’t return the updated array, but rather the updated length of the array with the new item. That means you can’t chain the .sort() call to the end, since the result of .push is a number.

To fix this, call array.sort() after the .push call.

function addAndSort(array, element) {
  array.push(element);
  return array.sort();
}