Skip to content

001 · CASE STUDY · 2024–25 · Hull, UK

Dunkin'
Doggies.

A dog swimming pool in Hull, owned and run by one person. I took the business from no website at all to a complete digital presence: custom Webflow front-end, bespoke Square API integration, and a self-service customer portal. Research, design, build, and ongoing maintenance, end to end.

Client
Dunkin' Doggies · Canine hydrotherapy · Hull, UK
Deliverables
Marketing site · Booking platform · Customer portal · Analytics
Role
Research · Design · Build · Maintain · Solo studio
Status
Live · Actively iterated

001 ·Brief

A business that needed to actually exist online.

Dunkin' Doggies is a dog swimming pool in Hull, owned and run by one person. Customers book private swim sessions for their dogs. When I came on board, the business had no website at all. Bookings ran directly through their payment provider's generic, off-the-shelf online booking channel: a single hosted page with no branding, no marketing, no analytics, no retention.

It worked, just about. But it left the business invisible online and entirely shaped by someone else's template. Nothing to find on Google, nothing to point an ad at, no way to tell its own story, no reason for a customer to come back beyond remembering the URL.

The brief grew from there. It started as "we need a proper website" and became something larger: build the whole digital presence from scratch. From the brand and the pages a customer first lands on, through the moment they book and pay, to the account they come back to as a regular.

I owned all of it.

002 ·Starting point

No website, a generic checkout, and a market full of bad examples.

Before any building, I looked hard at where the business actually was, and at the wider market it sat in. The honest picture had two parts: the business itself had no real online presence, and the comparable businesses that did have sites mostly weren't doing themselves any favours.

Problem grid: business, booking, market
ProblemDetailPriority
01 / The businessNo website, no storyNothing on Google beyond a business listing. No about page, no service pages, nowhere to send an ad. Customers had to already know the business existed to find their way to the booking page.P0
02 / The bookingA generic hosted booking pageBookings ran through their payment provider's off-the-shelf online channel: a single page that worked but was unbranded, impersonal, and gave the business no control over the journey or the data around it.P0
03 / The marketCompetitors with half-built sitesComparable businesses elsewhere in the UK mostly had dated DIY sites, basic booking widgets, no online payment, no loyalty, no analytics. A low bar, and a clear opportunity.P1

The job wasn't to fix a bad website. It was to build a coherent journey from first click to loyal regular, where none of that existed yet, with no legacy to preserve, but also no foundation to build on.

003 ·What I built

One digital presence, built in deliberate layers.

Rather than a single deliverable, the project is a stack of layers, each solving a stage of the customer's journey. Each was scoped, built and shipped in turn, so the business got value early rather than waiting for a big-bang launch.

01

Foundation: a branded website, built from the ground up

A full research, design, and build process produced a production-ready site in Webflow with a cohesive brand: a confident dark palette with teal water accents and a clean, characterful type system. Not a template. A considered identity for the business, fast and good-looking on mobile and desktop.

02

Journey: a custom booking experience that feels native to the site

I replaced the third-party widget with my own multi-step booking journey: service selection, date and time, dog details, payment, confirmation. Built to match the brand exactly and load instantly. Returning customers get a fast-track flow and can pick which of their dogs are swimming that day.

03

Retention: a personalised customer portal

A self-service account area where customers manage their details and dogs, view bookings, and track loyalty rewards. Per-dog profiles, achievement badges (first solo swim, 5 swims, 10 swims), and a points-based loyalty scheme make the portal feel like it belongs to the dog as much as the owner.

04

Engine: a serverless API layer I own end to end

Behind the scenes, a set of serverless functions handle payments, bookings, customer records, loyalty, and authentication, talking to Square so the frontend stays fast and fully under my control. This is what lets the business add bespoke features a packaged plugin would block.

05

Visibility: analytics & conversion tracking

Server-side tracking feeds GA4 and the Meta Conversions API. The business can finally see where customers and ad spend are working: the difference between guessing and knowing, and the foundation for growing bookings deliberately.

004 ·Pivotal decision

Choosing the right foundation, even when it meant reversing myself.

Once the first version of the site was live, bookings ran through an embedded scheduling widget, the most common option for small service businesses. It worked. But customers started telling us it felt slow, especially on mobile. One nearly gave up partway through booking. A baseline Lighthouse audit confirmed it: the widget was loading an entire separate web app inside the page and dragging everything down.

This became the highest-stakes technical call in the whole project.

The business had moved between booking platforms more than once chasing the right fit, including a move I'd previously recommended. When that platform's own tools turned out to be just as unfit for purpose, I had to re-evaluate honestly, including overturning my own earlier advice.

The clean answer was to consolidate everything (payments, bookings, customers, loyalty, gift cards) behind a single well-built API, with the customer's history already living there. One backend. No stranded data. No separate payment processor to maintain.

I also talked the business out of a full platform rebuild that would have thrown away well-suited work for marginal gain.

Reversing your own recommendation is uncomfortable, but defending advice the evidence no longer supports would have cost the business. Equally, knowing when not to rebuild is part of the judgement. I advised against migrating the whole site to a heavier platform because the current setup was fast, low-maintenance, and well-suited to a business this size.

Good judgement includes recommending against new work.

005 ·Process

Research first. Deliberate scope. Verify, then release.

The thing this project really demonstrates is a way of working. Every layer followed the same disciplined arc: evidence in, tight scope, careful verification, then a controlled release, so the business kept getting better without ever being put at risk.

  1. 01

    Research & Diagnose

    Competitor and market analysis to understand the landscape, plus hard performance measurement (baseline Lighthouse audits), so every decision was driven by evidence rather than a hunch, including being willing to reverse my own earlier platform advice when the data demanded it.

  2. 02

    Design

    A cohesive visual identity and a booking journey designed around how customers actually behave. The custom UI styled to feel like a native part of the site, not a bolted-on tool.

  3. 03

    Scope

    Each capability shipped as a tight, deliberate first version. Core booking flow first, then accounts, then loyalty and gift cards, rather than over-promising one enormous launch. A conscious corrective to the natural pull toward over-ambitious scope.

  4. 04

    Ship: live in production

    The platform replaced the previous stack and went live to real paying customers. Before/after audits were captured the same morning so the impact was measured, not assumed. Booking journey, portal, payments, and tracking all running together.

  5. 05

    Iterate & Maintain

    New work now ships through a staging environment and is checked against a structured verification matrix (payment declines, automatic rollbacks, edge cases) before a deliberate one-step release. The project is under version control, and recurring mistakes are logged so they're not repeated.

006 ·Impact

Numbers, not vibes.

Because the work was measured at every step, the impact isn't a matter of opinion. The booking page went from a failing-grade experience to a fast, stable one. The business gained a retention layer it never had. And bookings grew after launch.

0.471 → 0.006

Layout shift on the booking page, near-eliminated

+25%

Bookings per week after launch (~21 → ~26 avg)

0 → ∞

From no website at all to a full owned platform & portal

£33k+

Revenue across booking data analysed (~1,210 bookings)

Booking and revenue figures derived from the business's own booking export data. Performance figures from Lighthouse audits of the live booking page.

Booking page comparison

The clearest single comparison is the booking page against the original third-party widget that started the project.

Booking page performance: original widget vs custom build
MetricOriginal widgetCustom buildChange
Performance score5669+13
Cumulative Layout Shift0.4710.006~99% better
Largest Contentful Paint3.0s2.9sImproved
Total Blocking Time580ms960msRegressed, then addressed

Full-site performance

Measuring the full site against the previous version showed steady gains across form factors, with the biggest mobile win on blocking time (the metric closest to "how frozen does this feel").

Full-site performance, before and after, mobile and desktop
MetricBefore (mob.)After (mob.)Δ desktop
Performance687083 → 85
First Contentful Paint2.5s2.5s0.9s → 0.7s
Total Blocking Time1,470ms1,120ms0ms → 90ms
Speed Index2.7s2.5s0.9s → 0.7s
SEO100100100 → 100

007 ·Inside the portal

The retention layer the business never had.

The customer portal is where the project goes beyond "a nice website". It turns one-off bookers into recognised regulars.

Portal feature grid
FeatureDetail
Per-dog profilesEach dog gets its own profile, so the portal feels personal and the business knows exactly who's swimming, even for multi-dog households.
Badges & loyaltyVisual achievement badges sit alongside a real points-based loyalty scheme. Every fifth qualifying swim is free. One motivates, one rewards.
Self-serviceBookings, dogs, addresses, saved cards, passwords, all managed by the customer, secured with authentication I built specifically for the portal.
Bespoke booking"Add more dogs at checkout", promo-code validation, the kind of specific feature owning the journey makes possible and a plugin would block.

008 ·Where it's going

A platform with room to grow.

Because the foundation is owned rather than rented, the business isn't capped by anyone else's roadmap. Planned next phases turn the portal into a companion product.

  1. 01

    App foundation

    Move the portal to a standalone progressive web app, installable on a phone.

  2. 02

    Engagement

    Push notifications, offline polish, and swim tracking framed around dog health.

  3. 03

    Native

    A native wrapper for the App Store and Play Store from the same codebase.

  4. 04

    Productise

    Package the approach as a repeatable offer for similar small businesses.

009 ·Toolkit

Under the hood.

A pragmatic stack chosen to keep the frontend fast, the backend maintainable, and the business free of lock-in.

Research & competitor analysisUX & visual designWebflowCustom JavaScriptServerless API (Vercel)Square API: Payments · Bookings · LoyaltyCustom authenticationGA4 + Meta CAPI trackingGit version controlStaging & verification workflow

010 ·What I took away

The lessons that outlast the project.

  1. 01

    A digital presence is a journey, not a page.

    The real value came from treating first impression, booking, and retention as one connected experience, rather than fixing the booking page in isolation. The layers reinforce each other.

  2. 02

    Owning the foundation beats renting it.

    Building against an API took more effort up front than embedding a widget, but it meant the business was never blocked on a feature again, and the experience finally performed.

  3. 03

    Good judgement includes saying "don't build this".

    Reversing my own platform advice when evidence changed, and advising against an unnecessary rebuild, both served the business better than defending a position would have.

  4. 04

    Ship in deliberate layers.

    Tight, well-scoped v1s shipped in sequence got value in front of customers sooner and kept a one-person business's project from ever stalling under its own ambition.

011 ·In short

What this project actually is.

I took a small business from no website at all to a bespoke, owned platform. Research, brand and visual design, a fast custom booking journey, a personalised customer portal, a serverless API layer, and real analytics: designed, built, and shipped end to end, then maintained and improved in production with proper staging and verification.

It's the project I point to when I want to show research, design, engineering, judgement, and measurable business impact in one place.

Bring a real problem.

If your business has a flow that bleeds money the existing site can't fix, booking, intake, repeat orders, anything operational, that's the work I take. Send the rough shape and I'll come back within a working day.