Writing
Notes from a one-person software company. What shipped, what broke, and the numbers underneath. Everything here is written first, and posted elsewhere after.

October 20, 2026 · 3 min read
How to Remove Background Music and Keep Only the Voice. With Prompts for Claude Code, Codex, Grok and Antigravity
I pulled just the narration out of my old TikTok videos with Demucs, a free model from Meta, in about 16 seconds on a Mac. How I asked Claude Code, and a step by step prompt for Codex, Grok and Antigravity.

October 16, 2026 · 5 min read
Thanks to AI? Links to my site started arriving from an unexpected route
I traced every external link to my site in Search Console. Strangers' articles had started listing my posts in their References sections. Where they come from, what they look like, and whether they help search at all.

October 13, 2026 · 5 min read
Cloudflare split "Block AI Bots" into Search, Training and Agent. I checked all 26 of my sites through the API
Cloudflare's AI crawler setting is now three categories: Search, Training and Agent. What changed, how I read the bot_management settings for 26 zones through the API, and how a site that wants to be cited in AI answers should set them.

October 11, 2026 · 9 min read
Google vs ChatGPT: which one brings people to a brand-new site first? A month of crawler logs from nine sites
Crawler logs from nine sites launched on fresh domains in 2026: when Googlebot and ChatGPT's bots first showed up, and when each one first sent a real person. While I waited on Google, ChatGPT was already sending visitors who signed up. The timeline, plus four ChatGPT SEO (some people call it LLM SEO) steps for a new site.

October 7, 2026 · 3 min read
Mac keyboard not working? Cmd+Tab dead and input switching broken? Check for a password field hidden in a background app
When Cmd+Tab and input switching stop working on a Mac but the mouse still works, macOS Secure Input is often stuck on. How to confirm it, why the PID that ioreg shows can mislead you, and how to fix it without rebooting.

October 4, 2026 · 4 min read
I control 10+ browsers with AI agents from one terminal. Here is how
Letting an AI agent order food in a browser misses the point. What matters is how many jobs can run in parallel. Why Claude's Chrome extension and computer use didn't fit, and what I built instead.

October 2, 2026 · 3 min read
If we keep insulting AI, does it raise the odds that AI wipes us out? I asked ChatGPT
A simple question about AI risk, and ChatGPT's answer, kept as close to the original as possible and put in plain words.

October 2, 2026 · 7 min read
Finally beat the sales emails flooding my inbox, with Jev
Sales pitches that slip past filters, Google Doc shares and Zoom invites used as cover, a flood after a press release. Five yes/no questions to TypeSafe AI's Jev took my inbox from 92 messages to 2.

October 1, 2026 · 8 min read
Traffic from ChatGPT jumped! Is it because its crawlers now run JavaScript?
On September 25, 2026, OAI-SearchBot and GPTBot started rendering pages with JavaScript on my sites. Server log numbers, why Next.js sites see 150,000 requests a day, and six things to do if you want ChatGPT to mention your site.

September 29, 2026 · 5 min read
What a free press release did for my startup in 5 days, and what I'd do after launch instead
My launch press release was reprinted on about 800 sites. In the five days after, those reprints sent 3 visitors and 0 signups, while ChatGPT sent 3 signups. GA4, server logs and Ahrefs numbers, the sales pitches that followed, and what I'd do after launch instead.

September 27, 2026 · 3 min read
X lead gen ads are back: how to collect names and emails without sending anyone off X
X launched Lead Gen Ads on August 26, 2026, nine years after Twitter shut down its lead generation cards. A form opens inside X, people submit their name and email, and you pull the leads as CSV or into your CRM. Here is the setup from X's own guide, step by step, and the four things to sort out before you launch.

September 26, 2026 · 4 min read
Traffic from ChatGPT now brings a quarter of our sign-ups. How we track it, and what we changed
In April, 3.7% of new members on @SOHO came from ChatGPT. In September so far it is 24.5%, and last week it was one in three. Here is the share week by week, why we couldn't see it at first, and every change we made for AI search, in the order we made them.

September 25, 2026 · 6 min read
Free press release sites in 2026: I sent my startup's launch to 7 of them
Most lists of free press release sites are years old. I sent Pinateca's launch release to seven free services, from EIN Presswire and IssueWire to PRLog and PR.com. What each one required, what got rejected, whether it helped SEO, and what came back.

September 22, 2026 · 3 min read
SPF, DKIM and DMARC all passed. Gmail still sent my mail to spam.
Every guide says to fix your authentication first. Mine was already perfect, and my domain's mail still landed in Gmail spam through four different sending routes. What I found, what I changed, and how it came back to the inbox on September 1st.

September 21, 2026 · 4 min read
Your Google sign-in screen may be showing your personal Gmail. Here's how to change the user support email
Anyone who clicks your app's name on the Google sign-in screen sees your OAuth user support email. If you created the Cloud project with a personal account, the only thing you can pick there is your own Gmail. My AI assistant almost shipped mine. This is how I switched it to the product's info@ address without rebuilding the project.

September 15, 2026 · 7 min read
I made my SaaS usable from ChatGPT and Claude with a single sign in. What adding MCP taught me about the chat window front door.
My task manager, Pinateca, now works from ChatGPT and Claude: you add its address, sign in, and allow access. The first endpoint I built took an API token and only worked from Claude Code, because chat products connect to outside tools through a sign in and allow flow. Here is what I built, what I checked against the real ChatGPT and Claude in production, and what it takes to get listed in the ChatGPT app directory.

September 14, 2026 · 6 min read
Everyone is arguing about whether AI should write their articles. That was settled in writing, and it is the wrong argument.
Google has said plainly that appropriate use of AI is not against its guidelines. My articles still went nowhere. One of my sites went from 812 search clicks in a month to 27,560 six months later, with the same model doing the writing. What changed was a question about why the second search result exists at all. Here are the numbers on either side of it.

September 7, 2026 · 6 min read
Everyone is pairing Obsidian with AI. Obsidian is contributing nothing.
Obsidian keeps a 245 MB full text index. It lives inside an Electron process, and Cursor or Claude Code cannot read a single byte of it. Of my 141 notes, two were still alive. Here is what I measured, and what I built because of it.

September 5, 2026 · 7 min read
The browser I used every day shut down, so I built my own
I paid $44.10 for a lifetime license. It lasted sixteen months. I tried more than ten replacements, liked none of them, and started writing my own on July 17, 2026.

September 5, 2026 · 10 min read
How to rename, add and delete Sidekick workspaces after the shutdown
Sidekick's servers are gone, so the UI refuses to touch workspaces. Here is how to edit them directly in chrome.storage.local over the Chrome DevTools Protocol, with the scripts.
Earlier, on Substack
August 12, 2026
SshResident at 180% CPU: why my ScanSnap iX2500 took 14 seconds to start, and the fix that wasn’t code
August 12, 2026
coreaudiod at 112% CPU: the sample-rate mismatch that froze Zoom on my Mac
June 23, 2026
My office AI server hit 88°C, so I made the room cool itself.
May 12, 2026
I run DeepSeek R1 70B from my Tokyo office. Here’s the network setup.