All Posts
-
When `*.ts.net` won't resolve: brew tailscaled and macOS split-DNS
MagicDNS works through Tailscale's resolver but not through the system. Why the brew-installed tailscaled silently skips the split-DNS rule the App Store build sets up, and the one-line fix.
-
Why my Colima LaunchAgent refused to load: a Sequoia provenance story
A reboot test on a headless Mac surfaced an opaque launchd error that traced back to a months-old architectural decision and a SIP-protected extended attribute most people never see.
-
Making a Mac Mini headless: FileVault, auto-login, and launchd
How I got a Mac Mini to boot to a fully remote-accessible state without physical presence — FileVault disabled, auto-login configured, and Tailscale launchd tuned for network wait.
-
Self-hosted Gitea with GitHub backup: migration lessons
How I migrated repos from GitHub to a self-hosted Gitea instance, configured push-mirrors back to GitHub, and the specific API and URL format issues I hit along the way.
-
`E[2 q`: when tmux quoting silently eats your ESC byte
Random characters dribbling into your terminal? It's an escape sequence that lost its ESC byte upstream. In tmux, this often comes from how `\E` is quoted in `terminal-overrides`.
-
tmux + SSH: work survives dropped connections
Configure tmux to auto-spawn sessions on SSH login and tune terminal defaults so your terminal state persists across any network interruption — airport, flight, hotel WiFi, whatever.
-
Caddy to Tailscale serve: the quiet TLS win for tailnet services
I spent an evening fighting Caddy on macOS for tailnet TLS. Then I deleted Caddy, ran one Tailscale command, and was done in two minutes.
-
Colima with vz on macOS: the quirks worth knowing
Five gotchas that cost me an evening setting up Colima with the vz backend as a real workhorse — not a dev convenience, but where actual services run.
-
Decision Records for solo developers
Solo developers need Decision Records more than teams do — not less. Future-you has forgotten the reasoning. Here's the template and why it matters.
-
Karkhana: A workshop for solo software work
I run three machines, ten projects, and one production app as a solo dev. Here's the mental model — the quality baseline, the principles, and why AI changed what's possible.
-
Three-tier backup for a one-person shop
A practical guide to backing up a home server as a solo dev — three failure domains, ~€8/month, and the one step most people skip.
-
Context Bloat: How I Accidentally Built OpenClaw 2.0
I switched to Hermes because OpenClaw got slow and bloated. Six weeks later, Hermes was doing the same thing. Here's what I found and fixed.
-
Khabar: Building a Daily AI Radio Show on a Mac Mini
How I wired together email newsletters, a local LLM wiki, and a radio narrator on entry-level hardware — with 7 bugs along the way.
-
One Agent, Many Faces: Why I Stopped Creating Separate Profiles
Profiles vs personality switching in Hermes Agent — and why the distinction matters less than I thought.
-
The 404 That Wasn't: Debugging Traefik, Docker, and a Stubborn Health Check
How a localhost vs 127.0.0.1 difference in Alpine Linux caused Traefik to silently drop routing to my container.
-
How Tailscale Services actually work (and why my dashboard wouldn't connect)
Debugging Tailscale Services — the three-layer mental model that would have saved me hours.
-
Welcome to Marginalia
Introducing Marginalia — a personal log of learnings by Sachin Dharmapurikar.