You've made it to the end. McLovin is our AI voice assistant — ask anything about our programs, how we work, or whether P2P is the right fit for your studio. No forms, no waiting. Just talk.
A real, uncut screen recording of building a new underwater photography marketing service page using Claude Code — mistakes, fixes, and all.
0:00Today we're building a new photography marketing service page using Claude Code — no visual backend, no drag and drop. I use skills built for every task, so adding a new service page takes a couple minutes. Right now I don't have an underwater marketing page, so we're building one. I dictated the request, dropped in a couple images from a photographer friend in Jacksonville, and hit go. Watch the clock — it's 9:39.
1:50Everything you see on this website was built just like this — the calculator, the form connections, even the McLovin voice agent widget. I connect that to a third-party API to avoid building it from scratch, but almost everything else is fully custom. The blog system auto-pulls YouTube transcripts, generates headlines, and publishes with SEO baked in. I also have a live preview panel where I can swap design variations without publishing — useful since there's no visual builder.
3:38We're about four minutes in and the skill is still running. It's writing all the copy, the page titles, the meta descriptions, the alt text — the skill has all of that baked in from prior sessions. The cool thing is I can be doing anything else while it runs. I could be on a client call, recording this video, working on an opt-in page. The AI handles the production work; I stay in the strategy layer.
6:06The skill stopped mid-stream. Didn't add the page to the navigation. That happens — this is real, uncut. When it does, I don't spiral. I document it. At the end of the session I'll tell it: we stopped mid-stream, we forgot the nav entry, let's add a checklist step and an adversarial review gate to the skill. Next time it runs, that mistake doesn't happen. The system gets smarter every single session.
8:39The page is done — about 8-9 minutes total. You can come in and read the config file directly. The underwater config is what drives everything: copy, images, form tags, FAQ items, proof bar stats. I usually never hand-edit anything. It's all in the system. Changing the config changes the page. That's the power of separating data from template.
13:22To deploy, I commit locally and push to production. Takes about 30 seconds to go live on Vercel. I can't test the Cloudflare Turnstile security locally — that layer only fires on the main domain — but once it's live, the form is fully connected to Go High Level with the underwater genre tag, triggering all my follow-up automations instantly. Someone fills out that form, they're in the sequence before I even see the notification.
16:28There's a small empty section on the live page — a copy gap. That's getting fixed right now as part of the skill upgrade. I'm adding it as a quality gate: before wrapping any service page build, do a senior-level adversarial review of every section. Humans make that same mistake — the difference here is it gets caught and systematized in two minutes, not discovered two weeks later. If you want this kind of setup for your photography website, fill out a form or email me directly.