January 19, 2026
When your bun bakes itself
Bootstrapping Bun
Dev bakes Bun from scratch and the comments are roasted
TLDR: A developer proved you can build the Bun runtime without Bun, swapping in other tools and proposing fixes. The crowd split between security purists who want self-built transparency and pragmatists who just want easy installs, with extra spice from Arch-vs-Debian packaging jabs and “bun baking itself” memes.
A lone coder just cooked up a way to build the flashy JavaScript tool Bun without using Bun itself—think baking bread with no starter—and the internet immediately set the oven to drama. After hitting a wall trying to install an AI-coding app that needed Bun (not packaged on some Linux distros), the author hacked together a plan: swap Bun’s own tools for stand-ins like Node and npm, tweak the build scripts, and send an RFC (proposal) to maintainers. Bonus twist: Arch Linux got an official Bun package, but Debian/Fedora/Ubuntu users are still peeking over the fence, and they’ve got feelings.
Commenters split into camps fast. The “trust but verify” crowd cheers the DIY build as a win for security and transparency: no mystery binaries, no drama—just your own oven. The pragmatists clap back: “Life’s short, just download the thing.” Packaging wars flare as Arch folks flex while Debian die-hards ask for a proper bootstrap guide. Memes fly: “snake eating its tail,” “Bun baking Bun,” and a dozen riffs on “yo dawg, we heard you like bun.” Skeptics wonder if a tool that can’t easily build itself is ready for prime time; fans say this speed-demon runtime moves too fast for stodgy rules. Either way, the comment kitchen is hot, and everyone’s a chef. Check the project at bun.sh
Key Points
- •The author bootstrapped Bun’s build without relying on Bun itself, motivated by difficulties installing OpenCode and Bun.
- •Bun’s build scripts assume a prebuilt Bun CLI, with Dockerfiles and CI downloading binaries from prior revisions.
- •Bun’s build scripts rely on Bun acting as a package manager, TypeScript runtime, and bundler; replacements were identified for each role.
- •npm replaced Bun’s package installation role, aided by a CMake option (-DNPM_EXECUTABLE) and minor package.json edits.
- •Bun-specific APIs in TypeScript build scripts were swapped for Node modules (e.g., node:fs), and complex features like Bun.Transpiler used third-party packages.