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

financeSep 2, 2026· 4 min
Dividend Yield Is a Ratio, Not a Promise
A high dividend yield can mean a company is generating serious cash, or it can mean the share price is falling faster than the payout. Here's how to tell the difference.
read more →

obsidianSep 1, 2026· 4 min
Obsidian URI: Your Vault Has an API You're Not Using
Obsidian ships with a custom URI protocol that lets scripts, browsers, and phone shortcuts read and write your vault without you touching the app. Here's how the core actions work and where the Advanced URI plugin picks up the slack.
read more →

developmentAug 30, 2026· 4 min
Async Svelte: Using await Directly in Your Components
Svelte 5.36 lets you use await at the top level of a component, inside $derived, and in your markup. Here is how synchronized updates, boundaries, and $effect.pending() fit together.
read more →

financeAug 29, 2026· 4 min
What's Actually in Your Phone When You Tap to Pay
Your card number isn't in your phone. Here's what a digital wallet actually stores, why a stolen token is useless on its own, and why merchants care about tokens for reasons that have nothing to do with security.
read more →

obsidianAug 28, 2026· 4 min
DataviewJS: The Escape Hatch When Bases and DQL Run Out
Bases handles most vault dashboards now, and Dataview's query language covers the rest. DataviewJS is what you reach for when neither can express the thing you actually want.
read more →

developmentAug 27, 2026· 5 min
The Web Locks API: One Tab Does the Work, the Rest Wait
Your app already runs in five tabs at once, and they all think they are in charge. The Web Locks API gives the browser a real mutex so only one of them does the work.
read more →

financeAug 26, 2026· 5 min
How US Regulators Sorted Crypto Into Five Buckets
For years, whether a token was a security came down to a lawyer's read of a 1946 orange grove case. In 2026 the SEC finally published a taxonomy, and then proposed rules to go with it.
read more →

obsidianAug 25, 2026· 4 min
Writing an Obsidian Plugin Is Smaller Than You Think
Most people patch around a missing Obsidian feature with a Templater script and a CSS snippet. The plugin API is often the shorter path, and the surface area you actually need is tiny.
read more →

developmentAug 24, 2026· 4 min
Form-Associated Custom Elements: Web Components That Belong in a Form
Custom elements can be real form controls. Here is how formAssociated, ElementInternals, and setValidity retire the hidden-input hack for good.
read more →

developmentAug 23, 2026· 4 min
Next.js Partial Prefetching: One Shell Per Route, Not One Per Link
Next.js 16.3 stops firing a prefetch request for every link in the viewport and caches one reusable loading shell per route instead. Here's what changes and how to turn it on.
read more →
// the newsletter