Loading...
Loading...

Share this article
Jamie Skelton does close-up magic, mind reading and MC work at weddings, corporate events and private parties. He has a 5.0 score from more than 400 Google reviews and two 2026 wedding awards. He is also busy. On a wedding weekend he has no time for a call about a website.
His old site was on Wix. It worked, but it was slow to change. It also did not show what makes him good: the faces of guests when a trick lands.
This post is about how we built the new one. Jamie did not use a project tool, a design file or a feedback form. He used WhatsApp, the app he already uses all day.

The build started on 24 Oct 2026 and the site went live on 25 Oct. Jamie sent about 130 WhatsApp messages in that time. Some were one line. Some were long lists of notes, sent late at night or early in the morning.
The setup has five parts. None of them is new on its own. The useful part is the loop.
Read the chat. A small script reads the WhatsApp database on my Mac, read-only, and writes each chat to a markdown file. A watch loop runs it every 5 seconds and shows new lines from Jamie's chat.
Turn a message into a task. One Claude Code session acts as the lead. It reads each new message and gives the work to background agents. A voice note gets a local Whisper transcript first. A photo goes from the WhatsApp media folder straight into the repo.
Make the change and prove it. The agent edits the site and adds a test named after the time of Jamie's message. For example, jamie-0648 checks his 06:48 notes. Playwright then checks the page on a phone and on a desktop.
Deploy. The agent commits to main. Vercel builds and deploys the staging site in about 2 minutes. Before the launch, that site sat behind Vercel's password protection.
Reply. I read the result and replied to Jamie myself. Jamie refreshed the page and sent the next note.
The agents never sent a WhatsApp message. They only read the chat. Every reply to Jamie came from me. That was a choice. A client should hear from a person. An agent that can message a client on its own is a risk I do not need.
I also did not sit at a desk for most of it. I watched the work from my phone and gave the lead session short instructions when something needed a decision.
Most requests were small and specific. That is the kind of feedback that usually waits a week for a "round of changes".
| Type of request | About how many |
|---|---|
| Copy: headings, FAQ answers, review lines, award titles | 22 |
| Photos and video: swaps, hero loops, the TV audition still | 18 |
| Brand and style: palette, his real logo, venue logo rows | 5 |
| Pages and sections: About in the nav, an Instagram button | 4 |
| Enquiry form and "Get a quote" links | 4 |
| Domain and Search Console (I did these by hand) | 3 |
There is nothing new to learn. Jamie already lives in WhatsApp. He sent voice notes, photos from his camera roll and lists of notes after a gig.
Feedback does not wait for a meeting. Each note became a change on the staging site, often before he sent the next one.
Nothing gets lost. Each request has a commit and a test named after the message. If a later change breaks an old request, the test fails.
He can see the work. He did not need a status report. He refreshed the site.
For me, it removed the slowest part of client work. Nobody had to copy feedback from chat into tickets, then into code, then back into chat.

One enquiry path. Every "Check my date" button goes to one enquiry page with his Studio Ninja form embedded. A celebratory thank-you page follows.
Real reactions. Hero video loops of guests who laugh and gasp, on the main pages of the site.
Reviews that update themselves. A weekly GitHub Action gets new Google reviews and the current score.
Analytics with consent. Vercel Analytics and PostHog run cookieless by default. A clear opt-in banner follows Irish and EU rules. A typed event list tracks each booking button, so Jamie can see which page sends enquiries.
The brand. A warm black (#121211) and gold (#c5a059) palette from his old brand, with his own gold S logo.
A new site must not throw away years of search history. These steps protect it:
The site is not a black box that only I can change. The README tells Jamie how to edit it himself. He opens the Claude app, picks his repo and says what he wants in plain words. Claude opens a pull request, and he merges it. Prices, venues, reviews and photos all live in one config folder.
For bigger changes, he can still send me a WhatsApp message.
Explore the Full Code
Star the repo to stay updated
Let's Connect
Follow for more smart home content
Follow on Twitter/X
@danmalone_mawla
Continue reading similar content

A free, open-source screenshot app for the Mac. I take screenshots all day, and that meant CleanShot X. This week I replaced it with FreeShot, which I built in one session with Claude Code. Here's what it took, what it cost and what I gave up.

I built 9 Claude Code skills to keep my one-person portfolio business oriented around goals, KPIs, and the actions that actually move them. Here's how the whole system works.

I built five AI agents to run my business. Everyone who saw it asked the same thing: how do I get this? Here's the full system — five agents, what each one does, and how the pieces fit.