Case Study

A studio of One
building The Digital Uplift

Spec, design, code, SEO, ads, sales and shutdown. Victoria BC, summer 2025 — the months before Botpress.

Next.js 15 SEO-first routing Booking funnel Embedded AI assistant Founder, sole operator
The site, still live
The Digital Uplift homepage, archived with a notice that the studio no longer takes clients

Archived and kept online, with a banner pointing anyone who still lands there back to me. The .ca domain has since lapsed; the build itself is preserved on Vercel.

Visit the archived site
23
routes, all prerendered
229
commits
5
weeks, spec to launch
1
person, every role
Why I started it

Small businesses around Victoria, BC were paying agency rates for WordPress and Wix sites that loaded in six seconds and ranked nowhere. The gap was not talent, it was the middlemen: a template, three account managers and a monthly retainer between an owner and a working website.

The Digital Uplift was the experiment in removing all of that — one developer, direct to the owner, custom code, fixed scope. I built the studio the same way I would build a client site, then used it as the proof.

What I actually built

SEO-first route architecture

Every buying question a local owner types got its own static route, not a tab inside one page. /why-you-should-avoid-wordpress-and-wix-for-site-performance, /pagespeed-insights-100-canadian-web-development, one per city served. Twenty-three routes, each with its own metadata, OG image and canonical, all statically prerendered at build so crawlers and buyers hit finished HTML. The site was the ad spend multiplier, not a brochure.

A performance budget I sold from

The pitch was speed, so the site had to prove it before a call ever happened. Next.js App Router with static generation, no client JS on content routes, next/image everywhere, fonts self-hosted through next/font. That produced the 100 Lighthouse scores in SEO, Accessibility and Best Practices that became the actual sales artifact — a screenshot a prospect could not argue with.

A conversion path with no dead ends

Every route terminated in the same booking modal, wired to Google Calendar appointment schedules so a stranger could put time on my calendar without an email thread. Google Analytics behind it, Google Ads in front of it, so I could see which keyword page actually produced a conversation instead of guessing.

An AI assistant, before it was my job

I embedded a Botpress webchat assistant to answer scoping and pricing questions at 2am, when small business owners actually browse. It was the first time I shipped a production conversational agent for a real commercial funnel. Two months later that was my full-time job.

How it ended, honestly

The engineering worked. The pipeline was the constraint — ad spend bought clicks faster than a one-person studio could turn them into signed scopes, and every hour spent selling was an hour not shipping. In September 2025 I joined Botpress as a Solutions Architect and chose to stop taking new clients rather than run a studio at half attention.

So I wound it down properly instead of letting it rot: existing work finished, the site archived on Vercel, and a dismissible notice added across every route telling visitors the studio is closed and where to find me. Closing something cleanly is part of building it.

What it taught me
  • Distribution is the hard part. The build was five weeks; the demand problem outlived it.
  • A perfect Lighthouse score opens a conversation. It does not close a deal.
  • Owning spec, design, code, SEO, ads, invoicing and support at once teaches scope discipline no ticket ever will.
  • Shipping the whole business end-to-end is the closest thing to the client engagements I run now.
Want something built this way