News
How I Built an Engine That Turns Architecture Sketches Into Animations
Static architecture diagrams are hard to explain. I built a tool for "Keyless Animation" that automatically calculates transitions...
Why Specs Beat Vibes: The Next Step in AI-Native Engineering
Vibe coding hits a ceiling. Spec-driven development unlocks real AI-native productivity. Here’s why clarity-first engineering wins...
Beginner AI Tutorials Teach “Hello World.” This Teaches “Production.”
When building AI applications, the need for clean architecture remains constant. Treating AI agents and LLMs as modules behind cle...
Transforming SVGs to Vue and Svelte Components: The SVGR Alternative for Rsbuild
SVGR solved SVGs for React. For Vue and Svelte, it’s still not that smooth. I built Rsbuild plugins that compile SVGs into native...
“Everything’s Async” Until Your RAM Explodes: The JavaScript Backpressure Proble...
Master backpressure in JavaScript: how streams, fetch, and async code control data flow. Prevent memory spikes, and crashes in Nod...
Lighthouse Scores Are an Architectural Signal, Not an Optimization Checklist
Lighthouse is a tool used to measure performance of web apps. It measures how quickly meaningful content appears and how stable th...
The Truth About “Cancelling” Async/Await: You’re Mostly Just Ignoring Results
JavaScript can’t truly cancel async/await work—most “cancellation” just stops waiting.
How Astro Made My Portfolio 82% Faster to Build
Next.js was too much for what I needed. Astro renders pages to static HTML and only sends JavaScript to the browser when you expli...
Achieving Reliable E2E Tests in Cypress: Overcome cy.wait Pitfalls
Cypress tests often become flaky when developers assume cy.wait('@alias') waits for every new request. It doesn’t. Aliases capture...
Breaking Down the Walls: Rescue Your SPA From Complete Freeze
Chrome’s Pause Script Execution can be used to freeze a Single Page App (SPA) using a hidden infinite loop deep inside a Redux sel...
