For James Webb
Six products I designed and built, plus the iPhone app that runs one of them. Each one is below with what it does, what it is built on, and a link so you can go use it.
Everything below is real and running. The screenshots were taken from the live sites on July 27, 2026. You can click any of them to see them full size, and every project links out so you can go poke at it yourself.
A marketplace for tattoo work, from the first vague idea to the booked appointment.
Getting a tattoo starts with a picture in your head that you cannot describe out loud. That is the whole problem. People walk into a shop with a phone full of screenshots and hope the artist guesses right.
So Tatsby lets you describe it anyway. You type what you want and it renders concepts you can actually point at. You work through style, placement, size, and budget, and it keeps all of it together in one brief. Then it shows you artists near you who work in that style, with real portfolios and real prices, and you book.
Artists get the other half: a profile, a portfolio, availability, deposits, messages, and repeat clients in one place.
Underneath the pretty part there is a full system I wrote. Accounts and permissions, artist profiles, portfolios, availability calendars, bookings, deposits, reviews, and live messaging. It is the largest thing on this page, and it is the closest in shape to LeaderLens: a lot of people in different roles, one system that has to keep every one of them straight and never show the wrong person the wrong thing.






02
The same product, built native for iPhone.
Recorded from the app running on an iPhone. No edits, no mockups.
A website can show you a tattoo artist. An app can carry the whole relationship, from the idea to the appointment to the healed photo six weeks later.
You describe what you want and see it rendered. You browse styles, follow artists, message them directly, book, pay the deposit, and keep the whole history of your work in one place. Artists flip a switch and the same app becomes their business: their calendar, their earnings, their client notes, their walk-ins.
It speaks English and Spanish everywhere. Where the framework was not good enough, it drops down to native code, so the camera and the small physical details feel like the phone and not like a website in a costume.






A commercial contractor whose website was talking to the wrong people.


Momentum bids commercial HVAC and plumbing across Dallas and Fort Worth. Their old site sold furnace repair to families. Almost none of their revenue comes from families.
It comes from preconstruction teams at general contractors, who are deciding whether to put your name on a bid list. Those people need one question answered fast: can this company carry this job without becoming my problem?
So the whole site now answers that question. Licenses, certifications, bonding, safety record, the projects they have finished, and the people who run the crews. Every page ends the same way, with an invitation to bid. There is a qualifications page a preconstruction manager can print and drop straight into a bid package.
They own it, not me. It deploys into their own Cloudflare account from their own repository. If I vanished tomorrow, nothing about it stops working, and nobody has to call me for the password.
The new site is finished and staged. Their domain still points at the old one until they schedule the switch, so the link above goes to the release build.






A tea room and catering business that runs on software I wrote.

People come here to book a baby shower, a bridal tea, or catering for forty. What they see is a pretty site. What is actually happening is a business running end to end.
A booking comes in with the date, the party size, and the package. It checks what is actually available. It takes a deposit. It creates the invoice and the customer record. It sends the confirmations. The next morning the day's bookings are sitting in a dashboard, and the money has already landed in the same system the accountant looks at.
The interesting work is in the boring parts. What happens when two people book the same slot. When a card declines halfway through. When someone changes their party size four days out and the deposit no longer matches the invoice. Those are the cases that decide whether a booking system is actually usable, and they are where most of the build time went.






A training product that had to sell and deliver itself.

This one teaches people to direct AI agents to build real software. I mention it because the argument it makes is the same one I would make about LeaderLens.
The model can write the code. What it cannot do is decide what is worth building, judge whether the result is any good, or know when to stop. That part is the job, and it is the part you are actually hiring for.
As a piece of software it is small on purpose. Someone buys a course and pays through Stripe. Someone books a call and the system tries Zoom first, then quietly falls back to a second video service if that is unavailable, so a customer never clicks a join link that goes nowhere. Receipts and reminders go out on their own. There is no framework here because it did not need one.




07
The honest version, including the parts that are inconvenient for me.
Scoring rules, who can see what, what a report says. In writing, agreed, before code. Most projects that go badly went badly here, months before anyone noticed.
Not the homepage. The thing most likely to be wrong: the scoring, the anonymity rule, the report. If something is going to be a problem, I would rather find out in week one than week six.
Your accounts, your repository, your infrastructure, your data. Momentum's site deploys into their own Cloudflare account. Nobody should ever have to ask me for a password to keep their business running.
Not whether a button is blue. Whether an expired link really dies, whether a declined card leaves a half finished record, whether the wrong person can see a score. Silent failures are the expensive ones.
Things break. When they do, the quickest way through it is to say so early, fix it, and tell you what changed so it does not happen a second time. You will not have to find out from a customer.
Every project on this page is still maintained, not shipped and abandoned. Launch is the start of the part where you find out what you actually built.
The LeaderLens proof of concept from our call, still running.

I am including this last because it is the only thing here you have seen before, and because it is the reason the rest of this page is relevant.
A rater opens a private link. Twelve statements, one at a time, five point scale, a progress bar that tells the truth. It takes about four minutes and it does not feel like homework, which was the whole point you made on the call.
The report only ever shows aggregates. It puts self scores against rater scores, names the largest gap, and marks it as the thing to talk about. Individual answers never surface, and the anonymity floor holds even when a group is small.
It is not a slide deck of a product. It is the product, small, running on a laptop. Everything above is the evidence that I can take it the rest of the way.



If it is useful, I will open the code, show you the parts I got wrong the first time, or put any of these in front of you live. The reference contacts I promised are coming separately as soon as I have their permission.
Reply to me