Danny Holloran
Author ProfileClaim This Author Profile
Prove ownership by publishing #HashtagPLUS and this profile link on your author page or an article under your byline. A moderator or admin will review the request before it merges into your real HashtagPLUS username.
π dev.toSource
Oxlint now runs ESLint plugins and your own custom rules, so the last excuse for a slow lint step is gone. Here's how JS plugins work, how to migrate, and where the gaps still are.
π dev.toSource
Prompt caching can cut repeated input costs by around 80%, but only if your prompt is ordered so the stable parts come first. Here's how it works and the mistakes that quietly break it.
π dev.toSource
Laravel 13 ships a first-party JsonApiResource that handles type/id objects, includes, sparse fieldsets, and the right Content-Type header. Here's how it works and where you still need to do the work yourself.
π dev.toSource
Nuxt 4.5 can flush your HTML shell before the page finishes rendering. Here's how to turn on experimental SSR streaming, what it actually speeds up, and the one rule about status codes, headers, and cookies you need to know first.
π dev.toSource
Why system-prompt warnings don't stop prompt injection, and the lethal trifecta, taint tracking, and quarantined-LLM patterns that actually constrain an agent.
π dev.toSource
Constrained decoding means the model can't return malformed JSON. Here's how structured outputs work with Zod in TypeScript, and the edge cases they still don't cover.
π dev.toSource
Node 24.14 and TypeScript 6.0 finally allow a bare #/ prefix in package.json imports. Here's how to replace tsconfig paths, Vite aliases, and post-build rewrites with one alias every tool reads.
π dev.toSource
An introduction to Svelte 5 runes β the explicit reactive primitives ($state, $derived, $effect, $props) that replace Svelte 4's magic $: syntax and make reactivity predictable, composable, and no longer limited to .svelte files.