Sign in

Benjamin Woodruff

@benjam.info
122 followers 156 following 52 posts

Software Engineer at ▲Vercel on Turbopack, formerly at Meta benjam.info x.com/_bgwoodruff github.com/bgw

PostsRepliesMedia
Reposted by Benjamin Woodruff
dan @danabra.mov · 04/08/2026
this one should feel WAY snappier in dev
3862
Benjamin Woodruff @benjam.info · 21/07/2026
Turbopack is written in Rust. This makes plugins more difficult, but that's obviously solvable. We currently support postcss, babel plugins, and webpack loaders. We've been working on ways to support more use-cases. We have some upcoming perf improvements to our JS FFI layer that I'm excited about.
021
Reposted by Benjamin Woodruff
Next.js @nextjs.org · 29/06/2026
Turbopack: What's new in Next.js 16.3 Preview • Up to 90% less memory in dev • Up to 5.5x faster builds via Filesystem Cache • Faster HMR and dev startup • Experimental Rust React Compiler • 𝚒𝚖𝚙𝚘𝚛𝚝.𝚖𝚎𝚝𝚊.𝚐𝚕𝚘𝚋 support nextjs.org/blog/next-1...
nextjs.org
Turbopack: What's New in Next.js 16.3
Turbopack in Next.js 16.3 adds development memory eviction, persistent file cache for builds, experimental Rust React Compiler, and `import.meta.glob` support.
3314
Benjamin Woodruff @benjam.info · 26/06/2026
Yes. If we release a standalone turbopack it would have a different CLI than turborepo. The naming is unfortunate, but at this point they are entirely different products.
030
Reposted by Benjamin Woodruff
dan @danabra.mov · 25/06/2026
... i have joined the @nextjs.org team at @vercel.com. for a start, i'll be working part-time, so please don’t flood me with bug reports yet. however, i’ll try to keep an eye on them as i want to understand what problems Next.js users are running into every day. i want App Router to get good!
3131723
Benjamin Woodruff @benjam.info · 25/06/2026
Turbopack wasn't killed? It shipped. Turbopack is on-by-default in 16.0+, and the vast majority of Next.js developers use it.
230
Benjamin Woodruff @benjam.info · 25/03/2026
We've also been working on improving how we execute JS today for webpack loaders and babel plugins. The folks from github.com/utooland/utoo have contributed a thread-based implementation for Node.js workers that will replace our current system that uses a pool of child processes.
github.com
GitHub - utooland/utoo: A unified toolchain for web development
A unified toolchain for web development. Contribute to utooland/utoo development by creating an account on GitHub.
000
Benjamin Woodruff @benjam.info · 25/03/2026
@mischnic.bsky.social is working on a solution for collecting global per-route information that should allow us to enable more CSS-in-JS solutions. I can connect you with him or our manager if you want to chat about it.
101
Benjamin Woodruff @benjam.info · 18/03/2026
Understood. Sadly it'll likely get slightly larger in 16.2 because we enabled LTO, and we'd rather have a faster Turbopack than a smaller Turbopack. github.com/vercel/next.... But... we might replace SWC's WASM runtime for plugins and get some of that space back soon! github.com/vercel/next....
github.com
Replace wasmer with wasmtime for SWC plugin WASM engine by lukesandberg · Pull Request #91533 · vercel/next.js
020
Benjamin Woodruff @benjam.info · 16/03/2026
Turbopack is a dev-only dependency, so it shouldn't impact your deployed application's size.
100
Benjamin Woodruff @benjam.info · 16/03/2026
Yeah, it's mostly the Turbopack binary. We haven't done a ton of work to optimize this, as we're prioritizing memory and CPU usage optimizations instead, but we have merged some changes that have helped, e.g. switching away from serde. github.com/vercel/next....
github.com
Turbopack: bincode: Migrate TaskInput serialization to bincode by bgw · Pull Request #86631 · vercel/next.js
#86338 switches cell storage to use bincode, but it uses a compatibility shim for storing TaskInputs using serde + pot. This PR completes the migration by switching TaskInput to use bincode as well...
121
Benjamin Woodruff @benjam.info · 15/03/2026
Finally, here are a few more pictures of the prints! I think they came out great!
010
Benjamin Woodruff @benjam.info · 15/03/2026
Here's the useworkflows.dev logo. It's designed to print in multiple glued-together parts. It can print flat on the bed without supports and you can easily pick different colors for the base and the logo. www.printables.com/model/163794...
printables.com
"𝚞𝚜𝚎 𝚠𝚘𝚛𝚔𝚏𝚕𝚘𝚠" Logo by bgw | Download free STL model | Printables.com
100
Benjamin Woodruff @benjam.info · 15/03/2026
Here's the Next.js logo. It's inspired by the Next.js Conf 2024 website. It comes in a small size and a gigantic 1ft (298mm) tall version! I printed the large version over the course of a few days. It uses nearly a full 1kg roll of filament. www.printables.com/model/163778...
printables.com
Next.js Conf 2024 Logo/Banner by bgw | Download free STL model | Printables.com
110
Benjamin Woodruff @benjam.info · 15/03/2026
I've created easy-to-print 3D models of the blocky Next.js Logo from the Next.js Conf 2024 website, and the "𝚞𝚜𝚎 𝚠𝚘𝚛𝚔𝚏𝚕𝚘𝚠" logo, with detailed instructions!
200
Benjamin Woodruff @benjam.info · 19/02/2026
Next 15 is already pretty behind when it comes to Turbopack. We shipped a file system cache for dev in Next 16.1 that helps a lot. nextjs.org/blog/next-16...
nextjs.org
Next.js 16.1
Next.js 16.1 introduces Turbopack file system caching for development, a new bundle analyzer, and easier debugging in Node.js.
110
Benjamin Woodruff @benjam.info · 18/02/2026
Without agents, I likely wouldn't have made the effort to report the bug. This worked so well because the task was easy but tedious (delete code) and trivially verifiable (compile, run, check process exit code).
010
Benjamin Woodruff @benjam.info · 18/02/2026
Some of the best LLM uses don't involve code generation. I found a Rust miscompilation, but the repro was inside Turbopack (huge, many crates). It would've taken hours to minimize by hand, but I used an agent to prune code/dependencies until the repro was just 34 lines. github.com/rust-lang/ru...
github.com
Miscompilation causing segfault with `dyn Future` on recent nightly versions · Issue #152735 · rust-lang/rust
This is the smallest possible reproduction I was able to come up with: use std::{any::Any, future::Future, pin::Pin}; trait TaskFn { fn call_task(&self) -> Pin<Box<dyn Future<Output = ()> + Send>>;...
220
Benjamin Woodruff @benjam.info · 29/01/2026
Great write-up from @sentry.io! They now support Turbopack, and in the process they were able to simplify their implementation and reduce their build time overhead! blog.sentry.io/turbopack-su...
blog.sentry.io
Turbopack support for the Next.js SDK
Less code, faster builds, same telemetry. How Sentry’s Next.js SDK supports Turbopack without losing insight into errors or performance.
031
Benjamin Woodruff @benjam.info · 24/01/2026
Wow, this is really cool! Many apps spend a lot of time doing static site generation in Next.js, and need incremental solutions if we want to solve that. I'm very interested in seeing all the places you end up using picante.
110
Benjamin Woodruff @benjam.info · 20/01/2026
I shipped a blog post!
051
Benjamin Woodruff @benjam.info · 08/01/2026
Variance has got to be one of the least intuitive aspects of most type systems.
000
Benjamin Woodruff @benjam.info · 05/01/2026
Keep an eye on where the server is located, and where in the world you and your friends are. Network latency is important for games like Minecraft.
100
Benjamin Woodruff @benjam.info · 24/12/2025
There's a whole section on this in The Little Book of Rust Macros. Your solution will form an AST that's inefficient to process. lukaswirth.dev/tlborm/decl-...
lukaswirth.dev
Counting - The Little Book of Rust Macros
181
Benjamin Woodruff @benjam.info · 18/12/2025
We've been dogfooding and iterating on file system caching for over a year. We didn't want to release it until it met our own high quality bar. We're excited to announce that it's now stable and on-by-default for 𝚗𝚎𝚡𝚝 𝚍𝚎𝚟.
010
Benjamin Woodruff @benjam.info · 11/12/2025
Glad to hear it. The offer still stands to dive into the traces!
010
Reposted by Benjamin Woodruff
React @react.dev · 03/12/2025
There is critical vulnerability in React Server Components disclosed as CVE-2025-55182 that impacts React 19 and frameworks that use it. A fix has been published in React versions 19.0.1, 19.1.2, and 19.2.1. We recommend upgrading immediately. react.dev/blog/2025/12...
react.dev
Critical Security Vulnerability in React Server Components – React
The library for web and native user interfaces
714691
Benjamin Woodruff @benjam.info · 23/11/2025
I'm happy to dive into traces with you over DMs. Often there's some minor things that can be tweaked to improve performance. nextjs.org/docs/app/api...
nextjs.org
API Reference: Turbopack | Next.js
Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.
150
Benjamin Woodruff @benjam.info · 23/11/2025
No, we've discussed it, but: - We think the filesystem cache is a better all-around solution. - If you have a large app, which routes should we compile? - We're keeping an eye on memory usage, and with our current architecture, this would likely waste more memory than most users would want.
140
Benjamin Woodruff @benjam.info · 21/11/2025
The filesystem cache is available in beta on Next 16.0, and we're hoping to ship it as stable and on-by-default very soon (we've been working on it for over a year!). nextjs.org/blog/next-16...
nextjs.org
Next.js 16
Next.js 16 includes Cache Components, stable Turbopack, file system caching, React Compiler support, smarter routing, new caching APIs, and React 19.2 features.
030
Benjamin Woodruff @benjam.info · 21/11/2025
Regarding compilation upon navigation: It should be better in Next 16, but we are working on a couple things to address this: - A file-system cache that persists across restarts of `next dev`. - An alternate bundling mode that shares more work across pages, at the cost of a slower first page load.
211
Benjamin Woodruff @benjam.info · 19/11/2025
@runofthemillgeek.com Happy to help dig in, especially with traces, if that document doesn't solve it for you. My DMs are open.
110
Benjamin Woodruff @benjam.info · 02/11/2025
Happy Halloween!
020
Benjamin Woodruff @benjam.info · 31/10/2025
Local microfrontends support is a big deal!
010
Benjamin Woodruff @benjam.info · 22/10/2025
You can see small spikes in October months around Next.js Conf 👀 I'm excited about the new release, and I'm looking forward to seeing the community tomorrow at Next.js Conf!
010
Reposted by Benjamin Woodruff
Steven ⬢ @styfle.dev · 10/10/2025
Build time cut in half after upgrading. • next@15.4 - 1m 33s cold • next@16-beta - 45s cold
Screenshot backing up claim
371
Benjamin Woodruff @benjam.info · 10/10/2025
Turbopack! Turbopack turbopack turbopack. Turbopack? Turbopack!
010
Benjamin Woodruff @benjam.info · 23/09/2025
You can try it out both of these features today in the latest Next.js canary: npm install next@canary If you run into any issues, let me know so we can fix it before Next.js 16 goes out!
000
Benjamin Woodruff @benjam.info · 23/09/2025
In addition to this automatic configuration of Babel, we added a new 'condition' field for controlling when manually-configured webpack loaders run in Turbopack. It builds on top of internal functionality that we didn't cleanly expose until now.
github.com
Turbopack: Document new advanced `turbopack.rule.*.condition` config options by bgw · Pull Request #83246 · vercel/next.js
I'm looking for review/feedback, but DO NOT MERGE UNTIL NEXT 16.0 IS RELEASED. These APIs are not available on 15.5, and merging it now would be confusing to users. If you want to try it out, u...
100
Benjamin Woodruff @benjam.info · 23/09/2025
Coming soon to Turbopack in Next.js 16: Babel configuration files (babel.config.js or .babelrc) will be automatically detected and run over your project code!
github.com
Turbopack: Document automatic Babel config support by bgw · Pull Request #84002 · vercel/next.js
I&#39;m looking for review/feedback, but DO NOT MERGE UNTIL NEXT 16.0 IS RELEASED. This is not supported on 15.5, and merging these docs now would be confusing to users. If you want to try it out, ...
100
Benjamin Woodruff @benjam.info · 20/08/2025
Fortunately, the breaking changes planned for 16 should be pretty minor for most people. Did you try the codemods that Next 15 shipped with?
020
Reposted by Benjamin Woodruff
Next.js @nextjs.org · 20/08/2025
Next.js 15.5 • Turbopack for builds (beta) • Node.js middleware (stable) • TypeScript support improvements • `next lint` command deprecation • Next.js 16 deprecation warnings nextjs.org/blog/next-15-5
nextjs.org
Next.js 15.5
Next.js 15.5 includes Turbopack builds in beta, stable Node.js middleware, TypeScript improvements, `next lint` deprecation, and deprecation warnings for Next.js 16.
16113
Reposted by Benjamin Woodruff
Devon Govett @devongovett.me · 27/07/2025
Wrote an article about how React Server Components integrate with a bundler. It's a deep dive into how code splitting works, how RSCs eliminate network waterfalls, how environment directives like "use client" work, CSS loading, etc. Check it out! devongovett.me/blog/parcel-...
devongovett.me
How Parcel bundles React Server Components
Parcel v2.14.0 added support for React Server Components. This post is a deep dive into the internals: how RSCs integrate with a bundler, what directives like "use client" actually do, how code splitt...
511420
Reposted by Benjamin Woodruff
Nuxt @nuxt.com · 15/07/2025
Nuxt 4.0 is here at last … and it's all about DX ✨ 🗂️ app/ directory for better organisation 🔄 smarter data fetching ⚡️ a faster CLI with socket communication 🔧 improved TypeScript integration ... and a smooth upgrade experience. 💚 👉 nuxt.com/blog/v4
nuxt.com
Announcing Nuxt 4.0 · Nuxt Blog
Nuxt 4.0 is here! A thoughtful evolution focused on developer experience, with better project organization, smarter data fetching, and improved type safety.
721556
Benjamin Woodruff @benjam.info · 15/07/2025
While investigating @rspack.dev performance in Next.js, SyMind found a simple opportunity to add caching that speeds up webpack >6%! github.com/vercel/next.... An awesome contribution for those still stuck on webpack.
github.com
perf: memorize exclude function in webpack config by SyMind · Pull Request #81525 · vercel/next.js
During JavaScript profiling, I identified repeated calls to the exclude function in the webpack configuration and implemented caching to optimize it. I tested the performance using the chakra-ui-d...
072
Reposted by Benjamin Woodruff
Next.js @nextjs.org · 14/07/2025
Next.js 15.4 • Turbopack Builds: 100% integration test compatibility for next build --turbopack • General stability and performance improvements • A preview of what's coming in Next 16 nextjs.org/blog/next-15-4
nextjs.org
Next.js 15.4
Next.js 15.4 includes updates to performance, stability, and Turbopack compatibility.
1403
Reposted by Benjamin Woodruff
Rspack @rspack.dev · 13/06/2025
Over the past two months, next-rspack has become more stable and now passes 98% of the next build integration tests. After reaching 100%, we will focus on improving its performance.
092
Benjamin Woodruff @benjam.info · 13/06/2025
Yikes. One major difference between Turbopack and webpack is that Turbopack uses a stricter parser (lightningcss) that errors on broken css that would be silently ignored in webpack. The new behavior is better, but the migration can be painful. I'd love to hear if you figure out the issue here.
020
Benjamin Woodruff @benjam.info · 04/06/2025
I ran cargo-shear on Turbopack's codebase. It worked really well! github.com/vercel/next.... Thanks for creating such an awesome little tool, @boshen.github.io!
github.com
chore(turbopack): Remove unused dependencies reported by cargo-shear by bgw · Pull Request #80121 · vercel/next.js
Remove unused dependencies to (hopefully) speed up the build. https://github.com/boshen/cargo-shear $ cargo shear --expand --exclude=wasm Analyzing /home/bgw.linux/next.js No unused dependencies! ...
061
Reposted by Benjamin Woodruff
JSNation @jsnation.gitnation.org · 13/05/2025
😍 Catch @wSokras's talk at JSNation! "Turbopack Persistent Caching" 🌷June 12 & 16, Amsterdam & Online
jsnation.com
Catch the talk!
jsnation.com
011