I built a product from my phone
I built a media intelligence platform for The Lafayette Company, my wife’s PR firm in Alexandria, over two months of evenings and weekends. Roughly three-quarters of it got written on my phone.
The reason I wanted this wasn’t clever. I have a family and real obligations. Finding a clean hour at a laptop is a narrow window on a day like mine, and it almost never lines up with when I actually have ideas. Mostly I had ideas when I wasn’t near a laptop. Waiting for my kid to get ready for soccer practice. Sitting in the pickup line at school. Making coffee.
It’s the same principle that used to keep work calls tied to a desk phone. You take the Zoom from the car now because the meeting and the afternoon pickup are both non-negotiable, and only one of them can move. Coding just hadn’t caught up yet.
So I put the agent somewhere the phone could reach it.
The setup
A small EC2 instance runs a tmux session with Claude Code inside. The Claude iOS app connects over a remote channel. I dictate or type what I want, the agent starts, I close the app.
Fifteen minutes later. Two hours later. Two days later. I open the app and the session is where I left it — same shell and files, same thought I was mid-sentence on. Whatever the agent got done while I was gone is waiting.
I’d been watching self-hostable autonomous agents like OpenClaw for a while. The shape was right, but I didn’t want to install one — I work in Claude Code every day. Then Claude Code, randomly, shipped a remote-control function right around when I was thinking about this.
The kit
The parts aren’t exotic. EC2. Tmux. Claude Code. The Claude iOS app. A small CDK stack to hold it together. The version I run is in blog-code, kept bare — a thing you can fork and have running in an afternoon.
The setup has limits worth naming. Debugging something complex, reading a long diff carefully, architectural decisions that need multiple files open at once — those still need a laptop. What the phone handles well is direction-setting work: write a spec, kick off a task, review the output, approve the next step. That’s where most of the hours actually went.
What changes after you do this isn’t the total hours you ship. The hours I spent on this in a typical week weren’t more than before. What did change: the time I already had started to count. Fifteen minutes in a parking lot. The wait before something else. Small stretches that used to be dead time. Over two months of those, I had a product.