Enoch Odu  /  Work

For James Webb

Here is the work.

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.

01

Tatsby

A marketplace for tattoo work, from the first vague idea to the booked appointment.

tatsby.com
Tatsby homepage

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.

At a glance

What it does
Turns an idea into a brief, then into a booked appointment
Surfaces
Website, iPhone app, and the backend behind both
Built with
Next.js on the web, Flutter on the phone, a TypeScript API and database underneath
Status
Live, held back from search until the app ships
tatsby.com

02

The app

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.

App home
Home
Design studio
Design studio
Artist profile
Artist profile
Browse styles
Browse styles
Messages
Messages
Explore
Explore
03

Momentum Mechanical

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

Before
momentummechanical.com
Momentum Mechanical old site
The site they had. Built for homeowners, with an address they moved out of.
After
momentum-mechanical-aed.pages.dev
Momentum Mechanical rebuilt site
The rebuild. Built for the general contractors who actually award the work. Waiting on the client to point the domain at it.

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.

At a glance

Client
Momentum Mechanical, Hurst TX
Audience
GC preconstruction teams and owners' reps
Built with
Hand written HTML and CSS, no framework, so it loads instantly on a job site
Runs on
The client's own Cloudflare account, deployed automatically from their repository
See the rebuild

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.

04

Edylicious

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

edylicious.com
Edylicious homepage

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.

At a glance

What it does
Bookings, deposits, invoices, gift cards, customer records
Built with
Next.js, with a Postgres database and a Redis cache behind it
Payments
Square, so the books match the till
Also serves
A companion iPhone app
edylicious.com
05

Express Intent

A training product that had to sell and deliver itself.

express-intent.com
Express Intent homepage

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.

At a glance

What it does
Sells courses, workshops, and calls, then delivers them
Built with
Plain HTML and small serverless functions, no framework
Payments
Stripe, with automatic receipts and reminders
Video
Zoom, with an automatic fallback so a join link never dies
express-intent.com

07

How I work

The honest version, including the parts that are inconvenient for me.

01

I write the scope down before I build anything

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.

02

The scary part goes first

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.

03

You own all of it

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.

04

I test the things that break quietly

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.

05

You get told what went wrong

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.

06

I am still here after launch

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.

08

And the one you have already seen

The LeaderLens proof of concept from our call, still running.

leaderlens
LeaderLens rater screen

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.

At a glance

Built
Before the proposal, for the call
Shows
Rater link, scoring, aggregate report
Branding
TalentWise, because it is yours
Status
Proof of concept, running locally

Happy to walk through any of it

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