Edge Functions and Grocery Shopping
I still make lunches at 5:30 AM and rush out to basketball practice after dinner and dishes. But now Claude codes an "edge function in Supabase" so homeowners can use AI to make planning a renovation a heck of a lot easier — while I'm grocery shopping. And while I'm folding laundry, the agents I've made crawl the known universe of information about the problems users have with construction and intervention apps. My favorite part of the day is sitting in my prized massage chair at 9 PM with my laptop in my lap trying to figure out why Apple wasn't happy with my screenshots.
In all seriousness, it is exciting, frustrating, hopeful, and at times it feels hopeless. Because it coincides with my teenager wanting to spend less time with his parents, it feels a little bit like the dreaming I did during that small window between grad school and real life. A mix of daring and opportunity that equals irrational belief in what could be. But I've done it before. Several times. So that little voice in my head assures me I can do it one more time. And it's been productive. So far I've put four apps in the App Store. I have two more under review. Two in active development. And four on the shelf. I have built various marketing agents, a few scrapers and a pipeline of automations to make building apps a more efficient use of time. This feels particularly productive because this was all done while I was shipping my last set of cabinets and delivering my last custom table.
The thing nobody tells you about working with machines this fast is how much time you spend waiting. Claude can write more code in ten minutes than I could read in an hour. But it works on its own — you kick something off and then you just... stand there. I've folded more laundry in the last three months than in the previous three years. Not because I love folding laundry — because the machine is working and I need something to do with my hands.
And speed works in both directions. Good instructions, good results — fast. Bad instructions, bad results — faster. The machine doesn't slow down to double-check your thinking. I've been learning a lot about this from a YouTuber named NateBJones, who clearly gets how to communicate with these systems. The short version: they are exactly as good as what you give them. And they are not going to ask if you're sure.
And like any tool with real speed, they're dangerous. I've been around power tools for twenty years — you learn fast that speed without attention takes fingers off. AI can't hurt your body, but throw it at a project without being clear about what you actually want, and it will wreck things. Fast. And it won't know it's doing it. That's the part that takes getting used to.
People ask me all the time if I'm learning to code. No. I'm picking up the language the way you pick up Spanish working with Spanish-speaking crews — through osmosis. I spend enough time around code now that I recognize patterns, know what things are called, understand roughly what's happening. I couldn't write it from scratch. But that doesn't seem to matter.
What actually matters — and this took me a while to figure out — is learning to ask the right questions. Most of what I want to do is only a piece of what actually has to happen for the code to work. So I've gotten in the habit of stopping and asking Claude: "Am I even asking you the right thing? What am I missing? What should I be asking? Are there areas I'm not thinking about that need to be thought about before we do this?" That's the skill. Not coding. Asking.
And the biggest thing I've learned — the one that surprised me the most — is that building agents is more important than building apps. Most of what a company actually needs is research, data, interaction with the larger internet. I don't really understand how to do any of that technically. But I've built agents that do — agents that crawl the web for market research, that gather competitive intelligence, that monitor things across all of my apps. Building agents is building a company. The company builds the apps.
But you still have to build the apps.
And the process of going from an idea to a living app on the App Store is... a lot. It starts with the problem, not the app. Is this actually a problem, or do I just think it is? You do the research. If the research validates it, you figure out what a fix would look like — and I mean a fix, not an app. You think about solutions as fixes to problems, not products on a screen. You iterate on that several times before you ever think about what shows up on a phone.
Then you pick up the phone — literally — and go, what can this thing actually do? Features come from the device, not your imagination. Once you know what's possible, you figure out the experience. UX before UI. With Journeyman, that meant voice in and voice out — a contractor talks to his phone and gets an answer while he's walking. But it also meant building UI that shows all the functionality and puts the answers where a contractor actually wants them. The experience comes first. Then you make it look good — because no matter how UX-forward your app is, it still needs a pretty package. So you learn design tools. Another thing on the list of stuff you didn't expect to need.
Then you make a plan, hand it to your coding agent, and build. When the code is done, testing — which is a long, drawn-out process of getting to the point where something actually works the way you want it to. Then preparing for submission, planning distribution, submitting, and hoping Apple likes your screenshots this time. And after all of that — if it goes live — maintenance and updates, which is its own entire world.
I just compressed months of work into three paragraphs, and I left out more than I included. No matter how succinct you try to be about going from an idea to a living app on the App Store, it's so much more fucking complicated than you think.
Some nights it feels like I'm drowning in it.
Last night I got a message from a user — the prompts in their workout timer weren't playing over their music app. I was between driving my kid home from the orthodontist and getting ready to go to a basketball game. I was sure we had already handled this — and we had, but a recent iOS update auto-reset the audio mixing back to defaults. Claude and I figured out the fix, set it back to our standards, and pushed it. So we did it.
I was feeling like building this company was so fucking hard. Then at the basketball game, I got an email back. They were stoked on the service, but the last thing they said was: "This is a great idea for an app. I can't believe nobody had this idea before."
That's what building the plane while it's flying feels like.
