Blog
Build-in-public notes on the projects and the shop.
My password manager ran out of yeses
Everything on my home server shares one allowance of 1,000 password lookups a day. At 4:19 on a Friday morning it ran out, and fixing it turned up two more mistakes along the way.
The report said HIGH. The raw rows said MEDIUM.
An AI-written report on a departing employee counted six red flags and concluded HIGH risk. Twenty minutes in the raw audit log dissolved half of them.
Out by 4mm
A cabinetmaker draws every job by hand on graph paper. Now he emails a photo and gets back a CAD shop drawing, plus a sheet of questions about everything it wasn't sure of.
Let it think before it answers
The order desk picked the wrong U-bolt, then wrote a neat explanation of why a different one was right. The fix was swapping two fields.
The printer said Success and deleted a director
One day automating a client's onboarding and offboarding, and three things that reported success when nothing had happened. One of them was a printer, deleting the wrong person.
My cameras couldn't agree what day it was
One day of filming a kitchen install came off the cameras spread across two dates. Which two depended on which clock you believed.
Deleting the permission doesn't remove it
Scoping a Microsoft Graph app to one SharePoint site and one mailbox, and the four times it looked done before it was.
My innkeeper lied to me, and I've never been prouder
Sellsword gives tabletop NPCs a temper, a memory, secrets worth lying about, and a limit on how many dumb questions they'll put up with.
The centre, not the clock
Twenty-two months of a childcare group's enquiries said book the tour inside three days. Split by centre, about half of that gap was which centre the family had called.
Building it was the easy part
VibePantry took a day to build and another to turn into a $2-a-month app. Getting anyone to look at it is a different problem.
The AI reads the receipt. The maths is mine.
VibeExpenses is VibePantry's little sister, a receipt-to-claim app built in a day. Claude reads the receipts and is kept well away from the totals.
The model still tried. The tool said no.
I gave a booking assistant a rule in its prompt, then asked it to break the rule. It recited the rule and broke it in the same reply. The fix was one line, and it wasn't in the prompt.
Nobody wrote down when they called back
A childcare group's enquiry list has no field for how fast anyone responds, but SharePoint's version history does. Then the May report showed what that number leaves out.
12,000 empty folders came back from the dead
A new laptop's OneDrive quietly re-uploaded a client's finished projects into SharePoint as empty folders. Finding them took one odd timestamp. Deleting them safely took four checks.
An order desk that's allowed to say "I don't know"
A week building an AI order desk for a nut and bolt wholesaler, and why the most useful thing it learned was to refuse.