// writing
Thoughts on code,
craft & exploration.
A mix of technical deep-dives, career reflections, and dispatches from the road.
topic:

developmentJul 9, 2026· 4 min
CSS light-dark(): Stop Duplicating Your Dark Mode Colors
The CSS light-dark() function collapses your two dark-mode palettes into a single declaration. Here is how it works, the color-scheme gotcha that trips everyone up, and how to wire up a manual theme toggle.
read more →

financeJul 8, 2026· 4 min
How a Card Swipe Actually Works: The Four-Party Model and Interchange
Tap your card and the money looks instant, but four different companies and a fee called interchange are quietly settling up behind the scenes. Here's how that machinery works and why it's suddenly a political fight.
read more →

obsidianJul 7, 2026· 4 min
Obsidian Publish: Turn Your Vault Into a Website Without a Static Site Generator
How Obsidian Publish turns selected notes into a live, searchable website with backlinks and graph view intact, and when it beats rolling your own digital garden.
read more →

developmentJul 6, 2026· 4 min
URLPattern: The Browser Finally Has a Built-In Router
URLPattern went Baseline in late 2025, giving the platform a native, framework-free way to match and parse URLs. Here is how it works and where it earns its place.
read more →

developmentJul 5, 2026· 4 min
CSS Grid Lanes: Native Masonry Has Finally Landed
Masonry layout is coming to CSS as grid-lanes, and Safari shipped it first. Here's how the new display value works, why it beats the JavaScript libraries, and what it fixes for keyboard users.
read more →

financeJul 4, 2026· 4 min
Order Types Explained: Market, Limit, and Stop Orders
Market, limit, and stop orders each trade off price against execution in a different way. Here is how they actually work, with a worked example.
read more →

obsidianJul 3, 2026· 4 min
Obsidian Bases: Native Database Views Without Dataview
Bases is Obsidian's built-in core plugin for turning notes and their properties into live tables and cards. Here's how the syntax works and when to reach for it instead of Dataview.
read more →

developmentJul 2, 2026· 4 min
Invoker Commands: Wiring Buttons to Dialogs and Popovers Without JavaScript
The Invoker Commands API lets a button declare what it controls with command and commandfor, replacing modal and popover glue code with plain HTML.
read more →

developmentJul 2, 2026· 4 min
CSS field-sizing: Auto-Growing Textareas Without a Line of JavaScript
The auto-growing textarea has been a JavaScript rite of passage for years. A single CSS declaration now does the whole job, and it works on inputs and selects too.
read more →

developmentJul 1, 2026· 4 min
Fallow: A Codebase Truth Layer for Agent-Written Code
Fallow is a Rust-native tool that maps your whole TS/JS codebase to catch dead code, duplication, and architecture drift. Here's how it fits alongside ESLint, Prettier, and agent guidelines when you're reviewing PRs you didn't write.
read more →
…
// the newsletter