Writing
Things I wrote
And what the fix actually was. Mostly Laravel, TypeScript and the tooling around them.
Should a small Node script be .js or .mjs?
The rule for picking .js or .mjs when you write a quick Node script, what actually decides the module system, and why require(esm) landing in every supported Node changed the answer in 2026.
Flatmark: query your markdown files like a database
Flatmark is a Node library that indexes a folder of markdown files and gives you a chainable query API over the frontmatter. Here's what it does, where it beats Velite and Astro content collections, and the four things I'd want fixed before shipping it.
Moving from Vercel to Hetzner with Coolify: the guides are quoting dead prices
Almost every "move from Vercel to Hetzner with Coolify" guide was written in 2025. Hetzner raised cloud prices twice in 2026, and the exact server those guides name now costs 144% more. Here are the real numbers and the plan to pick instead.
AI made writing code cheap. Review is still expensive
Teams merged 98% more PRs this year and review time went up 91%. The bottleneck moved from writing code to approving it, and most teams haven't noticed.
I replaced Spotlight with Raycast, then replaced Raycast with look
I moved from Spotlight to Raycast to fix app launching, then moved to look because Raycast's file search kept getting in my way. Here is the honest trade.
Homebrew 6.0 tap trust: what breaks and how to fix it
Homebrew 6.0 stops running third-party tap code until you trust it. Here is what actually fails, the commands that fix it, and the two changes nobody is talking about.
Dataview vs Datacore vs Bases: what I actually use in 2026
A year after the hype, here's how Dataview, Datacore, and Obsidian Bases actually compare, and how I use Bases to run my whole vault.
The jscrambler npm hack drops a stealer that hunts your AI tool keys
jscrambler 8.14.0 shipped a preinstall hook that runs a Rust infostealer during npm install. It goes after AWS, wallets, and your Claude/Cursor/MCP config. What to do.
C# REPL: an interactive shell for .NET, like Node and Python
C# REPL gives you a real interactive shell for C# with autocomplete, NuGet support, and instant results. Test snippets without spinning up a project.
Claude Code permission modes: approval, auto-accept, and plan mode
The three ways Claude Code handles permission (approval, auto-accept, plan mode), how to cycle them with Shift+Tab, and when to use each.
Dia is my main browser on Mac. Now I just want Windows
I use Dia as my daily browser on my MacBook. Here's what the new Reports feature actually does, and why I'm stuck waiting for the Windows version.
MinIO is archived: the self-hosted S3 alternatives worth using
MinIO's community repo is read-only as of April 2026. Here's an honest look at RustFS, SeaweedFS, and Garage, and which one fits your setup.
One email when the next one lands
No sequence, no course, no webinar. Leave from any email.