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

developmentJul 20, 2026· 3 min
CSS :has() in Practice: The Parent Selector You Can Finally Ship
The :has() selector is Baseline and fast in 2026. Here's how to use it for parent styling, sibling reactions, and quantity queries without reaching for JavaScript.
read more →

developmentJul 19, 2026· 4 min
CSS @function: Reusable Logic Comes Native to the Browser
CSS finally has real, reusable functions. The new @function at-rule lets you define typed helpers that run in the browser with live values — here is how it works and where it is supported today.
read more →

financeJul 18, 2026· 5 min
Open Banking: How Apps Actually Get Your Bank Data
The mechanics behind connecting a budgeting app to your bank account, why screen scraping is dying, and where the US open banking rules stand in 2026.
read more →

obsidianJul 17, 2026· 5 min
Obsidian on Mobile: Stop Fighting the Toolbar
Most people give up on Obsidian mobile because the defaults don't match how they actually capture notes. The fix isn't plugins — it's ten minutes in the Mobile settings.
read more →

developmentJul 16, 2026· 4 min
The Soft Navigations API: Core Web Vitals Finally Work in SPAs
Chrome ships the Soft Navigations API unflagged in 151, giving single-page apps a standardized way to measure LCP, INP, and CLS per route change instead of only on the first load.
read more →

financeJul 15, 2026· 5 min
Tax-Loss Harvesting: How Selling at a Loss Actually Works
Tax-loss harvesting turns a losing position into a deduction, but the mechanics are fussier than the pitch suggests. Here's how the netting order, the wash sale rule, and the cost-basis catch actually work.
read more →

obsidianJul 14, 2026· 4 min
Obsidian Sync vs. Git vs. iCloud: Choosing a Vault Sync Strategy
Your vault is just a folder of Markdown, which makes syncing it feel like a solved problem. It isn't. Here's how Obsidian Sync, Git, and iCloud actually behave once mobile and plugins enter the picture.
read more →

developmentJul 13, 2026· 4 min
Declarative Shadow DOM: Web Components That Render Before Your JavaScript Does
Shadow DOM used to mean a blank page until your bundle loaded. The shadowrootmode attribute changed that, and it has been in every major browser since early 2024.
read more →

developmentJul 12, 2026· 5 min
OPFS: A Real File System in the Browser
The Origin Private File System gives you byte-level, synchronous file I/O in the browser. Here's how it works, when to reach for it, and why it's the reason SQLite runs well on the web now.
read more →

financeJul 11, 2026· 5 min
How Automated Market Makers Price Your Swap
There is no order book behind a decentralized exchange swap. There is a formula. Here is the math that sets the price, and why liquidity providers can lose money while doing everything right.
read more →
…
// the newsletter