node-prewarm: CLI for Node 25's Compile Cache
New in Node 25 is the node compile cache, which can deliver a 20% to 30% boost in server start-up time. I built `node-prewarm` to make that practical on real projects with minimal changes.

This is the personal blog of Ben Houston (bio here), a 3D computer graphics software developer. For a quick overview of the work I am proud of, see my portfolio. I've worked on projects like Web3DSurvey, Three.js, Deadline, Krakatoa, and Exocortex VFX plugins. I'm also an entrepreneur, having founded Land of Assets, Threekit, Clara.io, Exocortex, and Frantic Films Software.
New in Node 25 is the node compile cache, which can deliver a 20% to 30% boost in server start-up time. I built `node-prewarm` to make that practical on real projects with minimal changes.
How I built the MaterialX Fidelity Suite, then used it to drive pixel-perfect MaterialX support in both Three.js and Blender — including custom noise node implementations that finally close the gap between reference renders and open-source tools.
MaterialX assets are multiple loose files, which breaks down in online, and collaborative contexts. The community has already solved this with zip packaging. We just need to formalize it as .mtlz.
After a decade building enterprise 3D visualization at Threekit, I've moved on to build Land of Assets, a product visualization platform built on open standards, with AI image generation running off those same assets.
Passwords are a shared-secret liability. Here is how to build a modern passwordless auth flow using Email OTP and Passkeys (WebAuthn), without storing passwords.
A tiny, type-safe Google Analytics integration for TanStack Router and TanStack Start with automatic page views, typed GA4 helpers, and clean SSR-friendly setup.
Today, I built a pure-TypeScript Zstandard implementation (library + CLI + dictionary training + interop tests) in just 4 hours using OpenAI Codex 5.3.
How frustration with Trigger-Action Lists in production 3D tools led me to build behave-graph, champion it at SIGGRAPH, and help drive the KHR_interactivity glTF standard.
Why Land of Assets chose glTF over USD as the backbone for their Master Asset approach to ensure long-term interchangeability.
3D on the web has exploded. The infrastructure to support it hasn't kept up. Here's why I built Land of Assets to fix that.
Over the past year, I've reduced the number of scripts in my package.json files. Direct CLI usage often beats script wrappers for transparency, flexibility, and AI-friendliness.
As a software engineer, I'm used to having full visibility and control over the systems I manage. But my HVAC was operating like a black box running legacy code I couldn't touch. I reverse-engineered it and gave my Ecobee direct, full-stack control.