Butler Bots

Stackcraft

Architecture sandbox

Situation
I put my first apps on Vercel because that’s what everyone else did, before I needed it. Every app asks for a host, a database and a dozen services, and I wanted to understand why one stack beats another.
Approach
A system-design sandbox scored like an RPG character sheet. Drag 25 real services onto a canvas, wire them up, and six stats move, each with a plain-English reason, the trade-off and what in the workload triggered it.
Challenge
It’s still a work in progress. Next, I’d like it to read the stack from a codebase, so it can score the apps I’ve already built.
Result
Three challenges, from a first SaaS to growing without overengineering, plus a free sandbox, all in the browser. Building it taught me when to choose SQL or NoSQL, and what each part of an architecture actually does.
Lesson
Understand the trade-off before you copy the stack. Where it’s landed: AI no longer needs the rigid controls it did at the start. It lets me move faster to a prototype I can really respond to, in minutes, not days.

To Do List

Daily planner

Situation
Some weekends are type A: house chores. Some are type B: date ideas. No to-do app let me swap in the right plan for the day.
Approach
A simple, Apple-style planner: My Day under a picture that follows the time of day, lists for anything, templates for my routines, and rules that reset lists for me. Typing “Gym tomorrow 7am” fills in the rest.
Challenge
The first version needed a server. Moving everything onto the phone wasn’t painful at all. Getting the design language right was the real work.
Result
It runs from my iPhone home screen and works offline, with everything kept on the device. Today’s My Day: gym and coding.
Lesson
Architecture is cheap to change now. Feel is what takes the time.

Waypoint

Daily lessons

Situation
My commute was music, or just waiting to get there.
Approach
A pocket university. Each day it offers two lessons, from 138 across 23 topics like banking, history, HVAC and squash. Each one is written in plain English, can be read aloud, and is drilled with flashcards, quizzes and spaced review.
Challenge
AI wrote the lessons. The real work was the difficulty: keeping each one simple without making it boring or too easy.
Result
It’s become my own Duolingo for everything. I learn about random topics now, every day.
Lesson
When AI writes the content, your job is setting the difficulty.

Raccoon Euchre

Card game

Situation
A friend and I only get a euchre game in at the engineering bar every four months or so, and in between we feel like playing.
Approach
Built on the Dead Rabbit pipeline: full euchre against a crew of raccoons on a cardboard table in an alley, with going alone, stick the dealer, a coach for every call and unlockable card backs.
Challenge
The art changed underneath the game, from sprites to pixel art, and each reskin touched every screen.
Result
One self-contained file that runs offline. The raccoons wink, laugh and panic as the hand turns, so it plays like a table rather than a tutorial. Nobody else has played it yet, but I have a blast with it.
Lesson
Settle the art style before the interface.

Blackjack

Card game

Situation
After Dead Rabbit, I was curious what the same pipeline could do with almost nothing. Blackjack was the test: one prompt.
Approach
Trash Night Blackjack: up to four raccoons at the table, three house-rule tables from the Back Porch to the Laundromat, ten hands with rising stakes, and a coach that hints at the right play and can show the running count.
Challenge
The rules came out of that first prompt. The in-game UI needed the real work to feel right.
Result
A complete game from one prompt. I don’t play it myself, and that was never the point.
Lesson
When building is this cheap, exploring is the product.

Loom

Design tool

Situation
I’d been mapping my app flows on Figma’s free plan, until I ran out of pages.
Approach
Inspired by Figma, I built my own canvas around MCP, so Claude Code can read and edit the board while I watch.
Challenge
Claude kept wiring the bridge to paid API tokens instead of the Pro subscription I already had. Getting it onto the subscription took more effort than the canvas.
Result
My flows live on one board I can annotate, click through like the real app and hand to Claude, with no extra subscription. I used it to design a question-based, personalised onboarding journey, and to get Watchlist’s Daybreak looking exactly how I pictured it.
Lesson
Decide how the AI is paid for before you build the bridge.

Dead Rabbit

Poker game

Situation
I wanted to learn poker, and I wanted a personality cool enough to keep me coming back to the table.
Approach
A pixel-arcade Texas Hold’em trainer: a campaign of boss tables, booster packs and card styles, and a Joker coach who talks through the odds on every decision.
Challenge
The rules were the easy part. The hard part was the loop: making it addictive and fresh without becoming boring or restrictive.
Result
It runs offline from my iPhone home screen, and every hand ends with a chess-style accuracy review. I shared it with friends, and they’ve been passing it on. I’m better at recognising when to go all in.
Lesson
Personality and the loop make a game. Get those right and the rules carry themselves.

Screen Scraper

Screen crawler

Situation
Dead Rabbit had grown screen by screen, and parts of it no longer matched. I wanted every screen in one place so I could see where things were out of sync.
Approach
Drop in an app’s files and Screen Scraper opens them live in Chrome, clicks through up to five levels deep and captures every screen it reaches, in a phone or laptop frame.
Challenge
Early crawls kept capturing the same screen, and the first results looked nothing like the app.
Result
One crawl of Dead Rabbit gave me 12 screens. I took them into Loom and marked up the exact UI fixes I wanted. I can now brief AI with words and pictures, not words alone.
Lesson
Showing AI the screen beats describing it.

Matchday

Sports alerts

Situation
The Leafs were starting their season, and I never knew when they were playing. The same went for Djokovic and every other team I follow.
Approach
ESPN and Ticketmaster both have free APIs. I run a small server from my laptop and reach it from anywhere with Tailscale.
Challenge
When the lid closes, the alerts stop. That was a deliberate trade: hosting it properly would have made the product more complicated than the problem.
Result
Every game is on my calendar, and the alerts arrive when it counts. The other day, it told me the Leafs won 5-2.
Lesson
Simple beats complete. I still think Matchday can get simpler.

Watchlist

Private beta

Situation
I owned Celestica. It was up 500%, and I couldn’t have told you what the company did or why. Every source I tried was either jargon or noise.
Approach
A social-style feed for the companies and economies I follow. News comes in from APIs, my first time using them, and each story gets an AI-generated insight in plain English.
Challenge
The free APIs were a great base, and they also showed me their limits. They only reach so far, and they pulled in plenty of irrelevant news that had to be screened out before the AI ever saw it.
Result
My first private beta. Friends are blown away by the quality and breadth of what comes through. When one of them asks for a feature, it’s usually there by the next deployment.
Lesson
Free APIs are a base layer, not the whole answer. For more nuance, Firebase may be the next step.

Clarity

Finance dashboard

Situation
Every transaction I have lives in one large Excel sheet. Power BI felt like lock-in. I couldn’t build the ideas I had, like a monthly statement, and I was running out of visuals and access.
Approach
I took the dashboard I’d already built, v7.3, studied how Monarch Money presents money, and used Claude Code to rebuild it around the visuals I actually use.
Challenge
It swung from overcomplex to not enough, then back again, more than once. This one was built over a long time.
Result
Each cut brought it closer to what’s truly helpful. My bi-weekly finance ritual takes 5 minutes instead of 30, and it’s something I look forward to. Watching the number has helped it grow.
Lesson
Cutting is a feature. The cycles were worth it, and the design is next.

Alexander

Training coach

Situation
I wanted a dynamic way to track my workouts. Every log I’d tried felt like admin, and I’d drop it.
Approach
A tale of two cities, one for each side of the app. At the gym, an agent skill coaches me through the session and writes each workout to a markdown log. At home, a dashboard reads those logs and shows my progress.
Challenge
The dashboard still needs work. It’s functional, not beautiful yet.
Result
I use it every workout. Talking to a coach turned out to be far more engaging than filling in a tracker. This was my first time working with an agent rather than a chat window, and it showed me the difference.
Lesson
The engagement came from the conversation, not the charts. Next is making the dashboard side as good to look at as the coach is to talk to.

Sous Chef

Recipe app

Situation
I was standing in the kitchen looking at a pack of chicken, trying to think of anything other than butter chicken. My recipes lived as photos scattered through my camera roll.
Approach
A web app that formats every recipe the same way, with search to find them.
Challenge
The question in the kitchen was simple: pick me something to make. The build drifted into how recipes get into the app, which was fun to explore and the wrong problem. I thought I’d boot my laptop to use it. In practice it was faster to think of a meal myself. It also felt laggy, and it never found a design language.
Result
I don’t use it. I went back to photos in a recipe book.
Lesson
Solve the question asked in the kitchen, not the interesting one at the desk. With the design skills I’ve picked up since, Sous Chef is due a re-skin, a much simpler core (“randomise me a dinner”) and a second chance.

P.Eng

Licensure assistant

Situation
An engineer friend kept asking how my P.Eng application was going. The honest answer was that it wasn’t. I needed stories that map to 37 competencies, and I wanted a way to collect them that felt more like play than paperwork.
Approach
Around then, Brent introduced me to the BMAD method, and it showed me what was possible. P.Eng became my first full run of it: a PRD, then a design, then a build. The app is an AI chat that takes a rough work story, formats it and sorts it against the competencies.
Challenge
Getting from idea to first prototype took far longer than I expected. The app called a paid AI API, so every story cost money for work I could have written myself for free. And I had to start the app each time, which was one more step between me and the habit.
Result
The method worked. The habit didn’t. P.Eng is a good experiment I don’t open.
Lesson
The friction you tolerate in a prototype is the friction that kills the habit. Everything I’ve built since starts by asking how fast I can get from opening it to using it.