Introducing Reachble — open-source VEX generation for npm projects, backed by I got tired of triaging the same CVE three times. The scanner flags it, someone That's what I built Reachble to fix. Run npm audit or drop your package-lock.json into Snyk. You get a list. Most of them cannot be exploited in your code. Research consistently shows 60–80% of CVEs flagged by dependency scanners live . T
Book: PHP to TypeScript — A Bridge for Modern PHP 8+ Developers Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A PHP developer opens a TypeScript codebase, scrolls to the ORM layer, and gets stuck on a familiar question: how does $user->name wo
Book: TypeScript Essentials — From Working Developer to Confident TS, Across Node, Bun, Deno, and the Browser Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A team I talked to had a service that crashed roughly twice Cannot read properties of u
Book: TypeScript Essentials — From Working Developer to Confident TS, Across Node, Bun, Deno, and the Browser Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub You add a new status to your app. The string "archived" goes Two days later a teammate
Most dev teams I've worked with communicate updates through a Slack message or a Notion doc that clients never open. Stack: Next.js 14 App Router Supabase (auth + DB + RLS) Tiptap (rich text editor) Tailwind CSS + shadcn/ui The cherry on top was the bug that kept me up at night. Tiptap's getHTML() was saving content to Supabase as escaped HTML entities, so <strong> became <strong> and render
When Google announced the Manifest V3 deadline, the developer community had a lot to say — most of it negative. The service worker model was rightly criticized as a regression for ad blockers and complex extensions. I've now migrated 18 extensions from MV2 to MV3, or built them MV3-native from the start. The commonly documented issues (no persistent background pages, limited webRequest) are real.
The Autonomous Paradox In 2026, we’ve moved past simple chatbots. We are building Production-Grade RAG pipelines and autonomous agents that can plan, execute, and iterate. But as an architect, I’ve noticed a glaring hole in our "Agentic" future: Identity Sprawl. We are giving agents non-human identities (NHI) with "Full Admin" permissions just to ensure the RAG works smoothly. We are effectively
Most "online ruler" pages look simple: draw a rectangle, add centimeter ticks, add inch ticks, done. That works only if every screen maps CSS pixels to real-world size in the same way. They do not. A 13-inch laptop, a 27-inch external monitor, a phone, a tablet, and a 4K display can all render the same CSS width with different physical sizes. Browser zoom, operating-system scaling, Retina-style di