The tests passed. The bundle size dropped by 94%. The app now runs on a Raspberry Pi Zero without breaking a sweat.
Sometimes the only way out of the V8 dystopia is to unmake the box. Have you seen the light? Or are you still rebuilding your toolchain? Let me know in the comments below. 🔥
At first glance, it’s beautiful. Zero config. Tree-shaken by default. It uses Symbols under the hood so you feel smart. The README has a terminal recording with perfect syntax highlighting and no typos.
But the truth is uglier:
at remakedbox-core/internal/box-resolver.js:3:19482 at remakedbox-runtime/adapters/v8/ic-megamorphic-handler.js:1:8823 at remakedbox-plugin-transform-optional-chaining-transform-runtime/helpers/_asyncToGenerator.js:12:3491 at Array.map (<anonymous>) at remakedbox-util/createProxyChain.js:44:12 at process.processTicksAndRejections (node:internal/process/task_queues:95) Twelve layers of remakedbox-* packages. Not one line of your own code. The Array.map in the middle is your only lifeline—a desperate cry for help from the JavaScript engine itself. This is the part where I’m supposed to have a solution. Write vanilla JS. Use Svelte. Go back to jQuery. Compile to WebAssembly. Move to Rust.
We like remakedbox because it feels like progress. Every new abstraction is a fresh coat of paint on the same crumbling wall. We tell ourselves the complexity is necessary. That the bundle size is worth it. That V8 will catch up.
But you don’t notice the cracks until you’re three sprints deep. Here’s the dirty secret of the modern JavaScript ecosystem: V8 is not your friend. V8 is a landlord.
The tests passed. The bundle size dropped by 94%. The app now runs on a Raspberry Pi Zero without breaking a sweat.
Sometimes the only way out of the V8 dystopia is to unmake the box. Have you seen the light? Or are you still rebuilding your toolchain? Let me know in the comments below. 🔥 remakedbox - v8 dystopia
At first glance, it’s beautiful. Zero config. Tree-shaken by default. It uses Symbols under the hood so you feel smart. The README has a terminal recording with perfect syntax highlighting and no typos. The tests passed
But the truth is uglier:
at remakedbox-core/internal/box-resolver.js:3:19482 at remakedbox-runtime/adapters/v8/ic-megamorphic-handler.js:1:8823 at remakedbox-plugin-transform-optional-chaining-transform-runtime/helpers/_asyncToGenerator.js:12:3491 at Array.map (<anonymous>) at remakedbox-util/createProxyChain.js:44:12 at process.processTicksAndRejections (node:internal/process/task_queues:95) Twelve layers of remakedbox-* packages. Not one line of your own code. The Array.map in the middle is your only lifeline—a desperate cry for help from the JavaScript engine itself. This is the part where I’m supposed to have a solution. Write vanilla JS. Use Svelte. Go back to jQuery. Compile to WebAssembly. Move to Rust. Sometimes the only way out of the V8
We like remakedbox because it feels like progress. Every new abstraction is a fresh coat of paint on the same crumbling wall. We tell ourselves the complexity is necessary. That the bundle size is worth it. That V8 will catch up.
But you don’t notice the cracks until you’re three sprints deep. Here’s the dirty secret of the modern JavaScript ecosystem: V8 is not your friend. V8 is a landlord.