Everything but the runtime

Issue #499.June 26, 2026.2 Minute read.
Bytes

Today’s issue: Proof-of-life blog posts, Cheeto-flavored DynamoDB, and 700,000 GPU hours of automated red teaming.

Welcome to #499.


Eyeballs logo

The Main Thing

Bad Bunny brushing honey onto a shirtless Travis Kelce

Developers finding their Node.js happy place

Everything but the runtime

When Bun came into the picture in 2021 and we were riding the high of becoming Dogecoin millionaires, it was hard not to be excited about the idea of an alternative to Node that was faster and easier to use. But over time, reality tends to sink in and you realize that you’re actually down $680 on meme coins and your company uses Node, so you can’t play with the shiny new toys.

Fortunately, Colin McDonnell (the creator of Zod, tRPC, and former Bun core team member) saw this gap and decided to build nub.js, an all-in-one toolchain that “augments Node.js instead of trying to replace it.” If you’re not Bun-pilled, you might be wondering what an all-in-one toolchain even means and why you would want it.

Why nub.js:

Node has done a lot of work collapsing the number of tools you need to be productive, but most devs still depend on a number of external tools, including npm, which, last time I checked, is still owned by m*****ft. Nub uses some of the recent Node.js extension mechanisms to provide a toolchain that includes the following components:

  • File Runner: Nub’s file runner can run .ts, .tsx, and .jsx files (with full TS support, not just type stripping) and automatically loads your .env and .tsconfig.
  • Script Runner: nub run is 24x faster than npm run and supports workspaces and pnpm lifecycle hooks.
  • Package Runner: nubx is 19x faster than npx and automatically executes binaries in node_modules/.bin without using a Node process.
  • Package Manager: Nub claims to be 2.7x faster than pnpm and can read and write whatever npm, pnpm, or Bun lockfile format your project uses.
  • Node Version Manager: Reads from your .npmrc or .node-version and provides a built-in replacement for nvm or fnm.

Bottom Line: By giving developers “everything but the runtime” for building with Node, Nub is already crushing the infallible metric that all developers care about (GitHub stars), and I won’t be surprised if it becomes the de facto way to season your Node.js app.


Slack logo

Our Friends
(With Benefits)

Slack promo image about building workflows that let work flow

Build workflows that let work flow

Automate the busywork. Build what matters.

From routing leads and triaging incidents to running async standups and approving campaigns, Slack connects to 550+ tools so you can automate the work that slows your team down.

Companies like Sony, Wayfair, and Canva have already saved tens of thousands of hours. And for developers who want to go deeper, Slack’s APIs, CLI, and SDK let you build custom workflow steps, create internal apps, and integrate proprietary systems — all in the place your team already works.

3 million workflows run in Slack every day. Are you ready to build yours?

Explore 30 ways to automate your work with Slack.


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.

const people = [
  { firstName: "Aaron", lastName: "Smith" },
  { firstName: "Émile", lastName: "Zola" },
  { firstName: "Charlotte", lastName: "Brown" },
  { firstName: "Beyoncé", lastName: "Knowles" },
  { firstName: "Ólafur", lastName: "Arnalds" },
  { firstName: "David", lastName: "Jones" },
  { firstName: "Zoë", lastName: "Deschanel" },
];

function sortAlphabetically(arr) {
  return arr.sort((a, b) => {
    if (a.firstName < b.firstName) {
      return -1;
    }

    if (a.firstName > b.firstName) {
      return 1;
    }

    return 0;
  });
}

sortAlphabetically(people);

Cool Bits logo

Cool Bits

  1. The Flow team at Meta sent the developer community another “proof of life” blog post about how Flow has been ported from OCaml to Rust.

  2. Fabian Hiller announced the release candidate for Formisch v1, the type-safe form library. Formisch is German for “Formik”.

  3. Companies like Supabase, Clerk, and Mintlify run CI on Blacksmith: a drop-in replacement for GitHub runners that’s 2x faster and 60% cheaper. [sponsored]

  4. Deno just released version 2.9, which means you can now use deno desktop.

  5. Lambros Petrou created a new database on top of Cloudflare’s Durable Objects, which some are calling a “Cheeto-flavored DynamoDB.”

  6. Dan Abramov got a little too lonely on Bluesky, so he decided to join his homies at Vercel and helped ship Instant Navigation, a new feature that fixes caching for Next.js.

  7. Amazon Devices Builder Tools for AI-Powered Development gives your coding agent full context for building Fire TV apps. From onboarding to crash analysis, you can finally ship your React Native app to the big screen without rage-Googling remote control focus management at 2 a.m. Learn more. [sponsored]

  8. Rspack 2.1 is out with support for TypeScript 7, the Rust-based React Compiler, and a dim sum platter of other new features.

  9. GitHub just released an update that lets you run GitHub Actions steps in parallel.

  10. Be the dev who actually shipped the thing: write the React, then let Expo handle the builds, submissions, and live updates. [sponsored]

  11. Iheanyi Ekechukwu built a git worktree manager called grove that does all the dirty work of cloning dependencies and managing dev servers.

  12. OpenAI announced a preview of GPT-5.6 Sol, and in an effort not to get Dario’d by the U.S. government, they did 700,000 GPU hours of “automated red teaming.”


Spot the Bug logo

Spot the Bug: Solution

Presented by Orkes

const people = [
  { firstName: "Aaron", lastName: "Smith" },
  { firstName: "Émile", lastName: "Zola" },
  { firstName: "Charlotte", lastName: "Brown" },
  { firstName: "Beyoncé", lastName: "Knowles" },
  { firstName: "Ólafur", lastName: "Arnalds" },
  { firstName: "David", lastName: "Jones" },
  { firstName: "Zoë", lastName: "Deschanel" },
];

function sortAlphabetically(arr) {
  return arr.sort((a, b) => {
    if (a.firstName < b.firstName) {
      return -1;
    }

    if (a.firstName > b.firstName) {
      return 1;
    }

    return 0;
  });
}

sortAlphabetically(people);

By default, string comparison in JavaScript is not language-sensitive, which means it doesn’t account for language-specific rules or special characters like accents. That can produce a sorted list that’s technically sorted by code points, but not alphabetically in the way users expect.

The solution is to use Intl.Collator, which gives us language-sensitive string comparison.

function sortAlphabetically(arr) {
  const collator = new Intl.Collator("en", { sensitivity: "base" });
  return arr.sort((a, b) => collator.compare(a.firstName, b.firstName));
}