JSON.parse() Errors: What Each Message Actually Means
What each JSON.parse() SyntaxError actually means, how to find the real cause fast, and when parsing large JSON becomes a main thread performance problem.
18 posts
What each JSON.parse() SyntaxError actually means, how to find the real cause fast, and when parsing large JSON becomes a main thread performance problem.
React's 45KB comes from synthetic events and compatibility layers Preact drops. At 3KB, it calls native DOM directly. Here is what that trade-off means.
The best network request never happens. Service workers intercept and serve from cache. Here are the three Workbox caching strategies and when to use each.
Domain sharding, CSS sprites, and JS concatenation were correct for HTTP/1.1. HTTP/2 turned them into anti-patterns. Here is what changed and why.
React.lazy() makes a 5MB app's first load equal to just the landing route cost. Here is how route code splitting works and where it silently fails.
All blogs in the React & JS Performance series in reading order, plus quick reference on layout thrashing, will-change, passive listeners, and INP.
How to answer practical frontend performance interviews in React: a seven-area framework—rendering, network, mobile, bundles, assets, memory, and measurement.
Your 2MB bundle isn't fate. How bundlers merge modules, why tree shaking fails silently, and how to split code so users only load what they need.
How V8's generational garbage collector works, why high allocation rate causes jank, and practical strategies to reduce GC pressure in frontend code.
How WebSocket subscriptions, stale closures, and unbounded caches create memory leaks in React apps — and how to find and fix them with Chrome DevTools.
Origin Private File System gives browsers a real sandboxed filesystem. How it compares to IndexedDB, Cache API, and why it's the right tool for 200MB+ assets.
CPU-heavy tasks block the UI — Web Workers fix that. Integrate Workers in React with Comlink, custom hooks, and Vite, with before/after profiling results.
What >50ms Long Tasks are, why they destroy INP, and how to chunk work with scheduler.yield(), postTask(), and Web Workers to keep the UI responsive.
How Meta StyleX compiles JS-authored styles into atomic static CSS. No runtime injection, smaller bundles, and why the build-time approach matters at scale.
At 60Hz the browser has ~16.6ms per frame for JS, layout, and paint. Why load scores miss jank and what it means for trading and live data UIs.
Redux, Zustand, Jotai, and Valtio compared from the inside. Centralized, atomic, and proxy-based React state patterns and when each one wins on scale.
React error boundaries use class lifecycles, not hooks: what render errors they catch, what async and event errors they skip, and how to structure fallbacks.
Parse → DOM → CSSOM → Layout → Paint → Composite. What the main thread does each frame, what jank physically is, and how to stop causing it.