The biggest Bun yet

Issue #432.October 15, 2025.2 Minute read.
Bytes

Today’s issue: Burning Remix CDs for my crush, refusing to be governed by SemVer, and getting JetBrains to pay for my hair transplant.

Welcome to #432.


Eyeballs logo

The Main Thing

A guy on a souped-up bigwheel

Did somebody say Rails?

The biggest Bun yet

Bun dropped their biggest release ever last Friday – which came with dozens of new features, a 13,000-word announcement post, and a launch video with more cameos than a Wes Anderson movie. AI nerds celebs like Boris Cherny, Cheng Lou, and Ryo Lu all made appearances, and I’m 90% sure I saw Bill Murray in the background during the Hot Module Replacement demo.

But the biggest takeaway from all the hype is clear: Bun is trying to build Rails for JavaScript.

And unlike past attempts like Meteor.js and Adonis that mostly just bolted frameworks onto Node, Bun is going for something deeper — a world where your runtime, dev server, database client, package manager, and bundler all speak the same native language.

Here’s how they’re building it out:

  • Full-stack in one processbun serve() now handles frontend and backend together: HTML, React, API routes, WebSockets, cookies, and CORS, all hot-reloading in a single runtime. And with commands like bun init --react=shadcn, Bun can scaffold a React + Tailwind + shadcn/ui app in one shot.

  • Databases without npm install – Built-in clients for Postgres, MySQL, SQLite, and Redis mean you can query a database out of the box with zero extra drivers and setup.

  • Rails-style builds & deployment – Bun can now compile your entire project (frontend, backend, assets) into a standalone executable with cross-platform support and code signing. Just run bun build to ship a single binary with no Node, no npm, and no container.

  • Package management with opinionsbun install isolates dependencies per workspace new dependency catalogs keep versions in sync across monorepos, and built-in security scanning now flags sketchy packages before they land in your repo.

Bottom Line: Bun isn’t just trying to replace Node anymore, it wants to absorb the entire JS toolchain, get millions of developers to buy into its Rails-for-JavaScript vision, and (eventually) make millions of dollars for its VC investors.

That all might sound like a long shot, but as Royal Tenenbaum said, “You can’t raise boys to be scared of life. You gotta brew some recklessness into them.”


QA Wolf logo

Our Friends
(With Benefits)

Dwight Schrute playing the recorder

My test suite might be flaky, but it's also slow

Using 150+ AI agents to get 5x faster Playwright tests

That’s exactly what QA Wolf does by assigning each one of their agents a specific task – like outlining tests, writing code, or verifying results (this video shows how they built it).

Then, their human reviewers check the agents’ work to make sure nothing slipped through the cracks. This gets you:

  • 5x faster test creation for your application
  • More accuracy, because their agents have trained on 50 million test runs
  • Huge savings on QA engineering (saved Napster $400k/yr)

Get a personalized demo for your team – and see why one Napster’s Engineering Director said, “We started seeing results in less than a month… and it takes no work on our end.”


Pop Quiz logo

Pop Quiz

Sponsored by Augment Code

They wrote this step-by-step guide to generating TypeScript interfaces with AI, so you can automate converting JSON schemas and API responses into robust, type-safe interfaces.

How many times is the reducer function invoked?

const nums = [2,4,6]

const reducer = (prev, current) => {
  console.count('invoked')
  return prev + current
}

nums.reduce(reducer)

Cool Bits logo

Cool Bits

  1. At last week’s Remix Jam 2025, Ryan Florence and Michael Jackson teased Remix v3, handed out physical CDs with the software on it, and swore off React forever.

  2. MAML is a minimal JSON alternative that’s human-readable, machine parsable, and warm-blooded.

  3. Rocket is a full-stack vibe coding platform that can handle frontend, backend, auth, DB schemas, server config, and everything else you need to instantly build and ship a production-ready application. It’s pretty wild. [sponsored]

  4. Jovi De Croock busted three of the most common GraphQL myths and simultaneously created a full season of TV for the Discovery Channel.

  5. Nitro v3 (alpha) is a new server-side Vite plugin that enables full-stack Vite apps without needing a full metaframework.

  6. Mitchell Hashimoto wrote about vibe coding a non-trivial, real-world Ghostty feature. It’s not fair that this guy is also better than us all at vibe coding.

  7. Datadog created this frontend monitoring best practices guide that shows you how to monitor three key aspects of your single-page apps to optimize your performance and UX. [sponsored]

  8. VS Code shipped version 1.105 bringing new agent tools, a built-in MCP marketplace, and the boldest resistance we’ve seen to SemVer in years.

  9. Den Odell wrote about how the <output> tag is HTML’s best kept secret.

  10. Sam Cooper broke down how a bug caused by the Turkish alphabet plagued Kotlin for almost a decade. I volunteer to fly to Istanbul and investigate, but only if JetBrains promises to cover the cost of my hair transplant.


Pop Quiz logo

Pop Quiz: Answer

Sponsored by Augment Code

How many times is the reducer function invoked?

const nums = [2,4,6]

const reducer = (prev, current) => {
  console.count('invoked')
  return prev + current
}

nums.reduce(reducer)

Answer: Twice

If an initial value isn’t supplied, the first element in the array will be used as the initial value and the first invocation of the reducer function will be skipped.