Full-stack software developer specializing in custom web applications, Node.js development, and database design. Experienced metal fabricator and welder.
Latest Blog Posts
-
Why I Migrated From Next.js to Express in 2026
The full story behind moving a 100K-visitor site off Next.js to Express and EJS: the bugs that started it, the research that held up, and the tradeoffs.
-
Why Next.js Has 11x More CVEs Than Express
Next.js has 55 known CVEs to Express’s 5, same source, same date. Two are as severe as it gets. Here’s what the gap actually shows, and why it exists.
-
Why Server-Rendered Templates Don’t Need a Build Step
Server-rendered templates compile just-in-time, with no separate build phase. Why EJS never needs a bundler, and when a build step still makes sense.
-
Next.js Hides Its Cache, Redis Doesn’t: The Observability Gap
Redis exposes real hit/miss metrics natively. Next.js’s caching layer doesn’t, for self-hosted deployments. Here’s what that observability gap actually costs.
-
Why React SSR Blocks Node’s Event Loop (SSR via Templating Doesn’t)
React’s SSR APIs run synchronous CPU work on Node’s single thread, from renderToString to RSC serialization. What actually blocks, and why templating doesn’t.
-
Why Alpine.js Replaced React for Content-Driven Sites
Alpine.js ships at roughly 7kB versus a typical React bundle near 130kB. The scoped case for Alpine.js on content sites, and when a framework still makes sense.