Running Clawdbot on DigitalOcean
I’d been wanting to try running Clawdbot on DigitalOcean but hadn’t gotten around to it. Then Nader’s tweet and excellent gist showed up over …
Thoughts on code, workflows, and developer experience
Thoughts on code, workflows, and developer experience. Also see my Ship30 essays.
I’d been wanting to try running Clawdbot on DigitalOcean but hadn’t gotten around to it. Then Nader’s tweet and excellent gist showed up over …
I sometimes have a few projects going at the same time. Most of them are running some kind of server. And at some point, one of them won’t start because a port …
Lately, I’ve been building a lot of small things. Experiments, tools, half-ideas—most of them start and live in the terminal.
Most of the time, I’m in the terminal now. That’s where I do most of my coding, usually with Claude alongside it.
I’ve been building up a collection of custom slash commands (skills) for Claude Code. These are reusable prompts that I can invoke with a single command …
I’ve been wanting to write this down for a while, mostly so I don’t forget how my workflow has evolved and why it looks the way it does today.
I have a tab problem. So I built a tiny Safari extension that shows the total count across all windows. No tab management, no fancy features - just a number on …
This is part of my Postbox workflow — when I’m writing and need to include a screenshot, I don’t want to leave the terminal. Open a browser, upload …
At bedtime, our (soon-to-be) four-year-old usually wants to make up her own stories. She’ll tell me what the story should be about — a character, a rough plot — …
I started playing around with Zellij recently. It’s a tmux-like tool that runs inside the terminal and helps manage multiple panes and tabs in one place. I’m …
I’ve been building a lot of things recently. A lot of side projects. A lot of small projects.
One thing I wanted Postbox to do: let me capture ideas without leaving my terminal.
I wanted a simple way to publish to this blog. Not a CMS. Not a hosted platform. Just something small that fits how I already work.
Hover got too expensive. Moving things to Porkbun. So far so good. PS: This blog was published via email using Simple Butler Service.
Einstein was once asked how many feet are in a mile. He said, “I don’t know. Why should I fill my head with facts I can look up in two minutes?”
I’ve been building with LLMs a lot lately. One thing has become very clear: there’s a difference between coding and programming. And that difference matters …
I miss when podcasts were just conversations. Two people talking. Same voices, week after week. Occasionally a guest might drop in, but the format stayed …
I’ve been using Claude a lot to refine code, generate checklists, and just generally help me move faster.
Zipf’s Law says that in any language, a tiny set of words does most of the heavy lifting. Words like “the,” “and,” “of.”
I have a little service set up for ajot.me that lets me publish posts just by sending an email. I email my content to a special address, and the post goes live …
It’s to get them up and running as quickly as possible. That’s why every guide should include the complete sample code right at the top.
A lot of friends and family have asked why we did this, how we did this, and what it’s been like. So I thought I’d share our experience—what led to it, how it’s …
Don’t know who needs to hear this, but if you’re writing a quick start guide, give people everything they need. Right there in the guide. No …
This blog post was published to my Hugo blog simply by sending an email. Pretty cool. Huh!
Setting Up Environment Variables to store API Keys Safely in Python Virtual Environments Introduction Working with APIs often involves handling sensitive keys. …