Today’s issue: Michael Jackson’s prophecy about server components, feeling self-conscious about platform features, and creating a Wasm compiler that fits in a tweet.
Welcome to #362.
The last thing you see before uninstalling Node
For most OSS projects, going from v1.1 to v1.2 is usually uneventful. But Bun isn’t most projects.
Their blog post for last week’s Bun 1.2 release was 11,679 words long. That’s longer than the entire script for the series finale episode of Lost – and half as long as the letter I wrote to JJ Abrams complaining about it.
But when you’re trying to reinvent every JavaScript build tool on Earth, I guess it pays to move fast.
Let’s take a closer look at the 5 biggest updates in Bun 1.2 and how they fit into Bun’s plan to become the One Toolchain to Rule Them All.
#1 Node.js compatibility: Bun is working to become a drop-in replacement for Node, so they’ve now started running the entire Node test suite in Bun itself. This is a super involved process with thousands of tests, but it’s helped them fix a ton of bugs and add support for more Node APIs like cluster
, dgram
, and http2
server.
#2 HTML imports: This lets you replace your entire frontend toolchain with a single import statement. Bun will then scan the HTML and automatically minify and bundle your JS and CSS, so tools like React and Tailwind will just work. And with that, Bun is officially in the bundler business.
#3 Built-in S3 object support: You can now read, write, and delete files from an S3 bucket using APIs that are compatible with Web standards like Blob
. This includes a new Bun.s3
API to access the default S3Client
.
#4 Postgres support: Bun now provides native bindings for PostgreSQL databases with a new Promise-based API, Bun.sql
that’s written in native code. It’s already 50% faster at reading rows than the most popular Postgres clients in Node and is part of Bun’s quest to become a “cloud-first runtime.”
#5 Text-based lockfile for bun install
: Bun’s npm-compatible package manager replaced its binary lockfile with a new text-based lockfile called bun.lock
. This makes it a lot easier to view diffs in pull requests and is much less likely to cause merge conflicts. Somehow, bun install
is also 30% faster now than it was in Bun 1.1.
Bottom Line: We’ve seen multiple projects try and fail to build the all-in-one toolchain for JavaScript over the years. But considering how fast the Bun team is shipping, they might be crazy enough to pull it off.
![]() ![]() ![]() ![]() |
When you see how much time your team wastes on QA
It’s possible to build features without the drag of multi-day QA cycles.
QA Wolf covers 80% of your web and mobile app with automated tests in just four months – then maintains and updates them 24/7:
You get unlimited parallel test runs that validate every change in minutes, not days.
Their zero-flake guarantee cuts out false alarms and wasted engineering hours.
Salesloft saves $750k a year while running over 300 tests on *every PR*.
Spend less time stressing over slow test suites and more time delivering what your customers need.
Schedule a demo to learn more.
As of the latest update, Bolt will no longer be lazy and omit code. It means less errors, saved tokens, and way faster building ⚡️
What color is the <p>
tag’s text?
<p class="hello">Hello</p>
<style>
body { color: red; }
p { color: green; }
.hello { color: unset; }
</style>
Mariano Guerra and Patrick Dubroy created a Wasm compiler that fits in a Tweet. I’m more of a Clubhouse guy, but I appreciate the effort.
shadcn/ui just turned 2 years old and celebrated by adding a new, community-driven blocks library.
Clerk has officially launched the Vue and Nuxt SDK, empowering you to add authentication and authorization to Vue-based applications in minutes. [sponsored]
Brian Smith wrote on the MDN blog about how JavaScript Temporal is finally coming to browsers.
Deno in 2024 will catch you up on everything the D-squad was up to last year.
Join Oso for a live demo on refactoring an app from hardcoded permissions to fine-grained authorization in Python. They’ll highlight best practices and answer any questions along the way. [sponsored]
Yoav Weiss wrote an article called So, you want to push a web platform feature?
Reanimated just released the v4 beta of their React Native animation library with a revamped animation core and a new set of APIs that enable CSS-compatible animations.
Will Wang created a page that uses all 100+ HTML elements. Yes, it looks like the personal site of every Web Components truther, but this one is special.
Shawn Erquhart wrote about how he added GitHub and npm stat counters to TanStack.com using a Convex component. It’s like that big sign at McDonalds that tracks the billions of burgers served, except it’s tracking 1.6 billion TanStack downloads (and counting) instead. [sponsored]
Zod creator, Colin McDonnell just released Standard Schema – a common interface for TypeScript validation libraries.
Brenelz wrote about why server functions matter in a server component world. Michael Jackson prophesied this back in 1985 when he wrote those immortal words: We are the world, we are the servers. We are the ones who make a brighter day, so let’s start giving.
What color is the <p>
tag’s text?
<p class="hello">Hello</p>
<style>
body { color: red; }
p { color: green; }
.hello { color: unset; }
</style>
The answer is red
since unset
“unsets” the style of the p
tag, so it inherits from its parent – body
.