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


Paying tribute to our beloved runtime the only way we know how
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 ❤️.


When you realize adding AI to your REST API wasn't as easy as you thought it'd be.
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:
Read the guide and start building your AI API.

Orkes shared how they taught Claude, Cursor, and Copilot to build agentic workflows without hallucinating.
function addAndSort(array, element) {
return array.push(element).sort();
}

Mise, the dev tool to manage your dev tools, can now automatically keep everything in your environment up to date with its latest release.
React Aria just released a sheet component that has gesture-synced animations, snap points, stacking, and a whole bunch of other sheet.
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]
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.
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.
Anomaly released OpenCode 2.0, a major overhaul with a new API and SDK, plus “Code Mode”, background tasks, and plugins.
“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]
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?
Richie McIlroy created Tov, a TypeScript-shaped language built for coding agents that compiles to native binaries that are faster than Rust (allegedly).
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?
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();
}