Bytecode caching for Serverless Functions by default

We recently introduced bytecode caching—an experimental feature built on our new Rust-based core for Vercel Functions—designed to drastically reduce start times during increasingly rare cold starts. Even when cold starts do occur, their impact is now minimal and barely noticeable.

After validating the stability and performance improvements of bytecode caching, the feature is now stable and the default for all Node.js 20+ Vercel Functions.

This change reduces global cold start times by up to 60%, exceeding our initial benchmarks and observations. The improvement is particularly significant for functions that load a large amount of JavaScript, with smaller functions experiencing less impact.

Bytecode caching is automatically enabled for all functions running on Node.js 20 and using CommonJS (e.g., Next.js). Additionally, we're working to extend this support to include ESM for broader compatibility. Learn more in our blog post.