Skip to content

CASE STUDY · WEBSITE REBUILD · SEPTEMBER 2026

CALL CAMPO, OFF WIX AND ONTO A SITE THAT FILES ITS OWN JOBS.

A Gladstone exterior cleaning business moved off a Wix template onto a custom Next.js build: a page for every service and suburb, a quote form that creates the job straight in ServiceM8, and Google Ads tracking on every quote and call.

Call Campo Exterior Cleaning homepage, built by Michael Evans Media

Headline facts

Rebuilt from

Wix

template site, Wix-hosted DNS

Google rating

5.0★

54 reviews, Joel's own listing

Quote form

ServiceM8

creates the job automatically

Status

Live

callcampo.au, launched Sep 2026

CLIENT SNAPSHOT

CALL CAMPO EXTERIOR CLEANING

Roof, house, driveway, gutter and solar panel cleaning, owner-operated, Gladstone QLD.

Industry
Exterior cleaning
Platform
Next.js, Sanity CMS
Migrated from
Wix
Project
Full website rebuild
Job system
ServiceM8 (API-wired)
Status
Live, callcampo.au

THE BEFORE

A WIX SITE, A JOB SYSTEM IT COULDN'T TALK TO.

Joel runs Call Campo the way most trade owner-operators do, on the roof or under the gutters most of the day, quoting jobs from his phone in between. The old site was a Wix build, fine for a basic online presence but with no way to connect to ServiceM8, the job-management system Joel already ran his business on.

Every enquiry that came through the old site meant Joel (or whoever was covering the inbox) reading an email and manually creating the client and job in ServiceM8. Workable, but it's an extra step on every single quote request, and an easy one to miss on a busy day up a ladder.

THE APPROACH

WHAT WE ACTUALLY BUILT.

01

OFF WIX, ONTO NEXT.JS

Call Campo's old site was a Wix build on Wix-managed DNS. We rebuilt it from scratch on Next.js and moved the domain across, keeping the redirects from the old Wix page paths so nothing already ranking got lost in the switch.

02

A PAGE FOR EVERY SERVICE AND SUBURB

Instead of one page trying to cover everything, roof cleaning, house washing, driveway and concrete cleaning, gutter cleaning and solar panel cleaning each got their own page (what's included, how it's done, what to expect), plus dedicated area pages for Gladstone, Boyne Island & Tannum Sands, Calliope and Clinton, and a separate commercial exterior cleaning page for shopfronts, car parks and sheds.

03

THE QUOTE FORM FILES THE JOB ITSELF

Submit the quote form with an address, the service and a photo, and it creates the client, contact and a Quote job straight in Joel's ServiceM8 queue with the photos attached, no one retyping an enquiry email into the job system by hand. A backup email still goes out in case ServiceM8 is ever down.

04

REAL PHOTOS, REAL NUMBERS

Every before-and-after on the site is a genuine job Campo has done around Gladstone, no stock photos, no AI-generated roofs. The before/after comparisons run as side-by-side panels rather than a drag slider, because job photos are shot handheld from slightly different spots each time, and a slider wipe only looks right when both shots line up exactly.

THE REAL WORK

NO STOCK PHOTOS. EVERY SHOT IS A REAL JOB.

Gladstone roof before soft washing by Call CampoBefore
Gladstone roof after soft washing by Call CampoAfter

One of the genuine roof soft-wash jobs featured on the live site. The site shows these as side-by-side pairs rather than a drag slider, since handheld job photos aren't shot from exactly the same spot each time.

EVERY QUOTE AND CALL, TRACKED

A Google Tag Manager container fires distinct events on a quote-form submission and a phone-number click, both feed Google Analytics 4, and both are imported into Google Ads as conversion actions. Once Joel is running paid traffic, he'll be able to see inside Google Ads which campaigns actually produce a quote request or a call, not just a click. The site launched 16 September 2026, still too early for a performance verdict, this is what's wired up to measure it properly from day one.

5.0 stars across 54 Google reviews, Joel's own reputation, built job by job around Gladstone. The new site puts that rating and the reviews it represents front and centre instead of burying them.

CALL CAMPO EXTERIOR CLEANING · GOOGLE BUSINESS PROFILE

SEE IT LIVE

CALLCAMPO.AU

Open a service page, try the quote form, or check a suburb page. See what a trade site wired into a real job system feels like next to a Wix template.

RUN A TRADE BUSINESS IN CENTRAL QUEENSLAND?

Service pages, suburb pages, a quote form wired into whatever job system you already run, and Google Ads tracking that actually works. Public pricing, no lock-in, direct work with Michael.

QUESTIONS ABOUT THIS CASE STUDY

FAQs.

Why move off Wix instead of just redesigning it?

Wix is fine for getting something live fast, but it caps out on page-level control once a trade business needs a page per service and per suburb, custom integrations like a job-management system, and control over technical SEO. Call Campo needed all three, so a custom Next.js build made more sense than pushing Wix past what it's built for.

How does the quote form connect to ServiceM8?

When a customer submits the quote form, the site calls the ServiceM8 API directly, creates the client record, a contact and a Quote job in the queue Joel checks, and attaches any photo the customer sent. It's the same job that would exist if Joel typed it in himself, just created the moment the form is submitted instead of after he reads an email.

What does a trade business website like this cost?

Builds like this sit in the same range as any custom multi-page site with an integration, most land $1,500 to $4,000 depending on how many service and area pages are needed and what the job system on the other end can do. Public pricing is on the website design page, no mystery quotes.

Can you wire a quote or booking form into other job-management tools?

Depends on the tool's API, but ServiceM8, Tradify, SimPRO and similar trade platforms generally expose one. If yours does, a website form can usually create the job directly instead of just emailing you. Worth a conversation on the free strategy call before assuming it isn't possible.

How is Google Ads tracking set up on this build?

A Google Tag Manager container fires a distinct event for a quote-form submission and for a phone-number click, both feed Google Analytics 4, and those events are imported into Google Ads as conversion actions. So Joel can see, inside Google Ads, which campaigns are actually producing a quote request or a call, not just a click.

Can you build something like this for my trade business?

Yes, this pattern (service pages, area pages, a form wired into whatever job system you already run, and real conversion tracking) works for most trades. Free 15-minute call to talk through your setup: what job system you use, how you currently take quotes, and what a build like this would look like for you.

YOUR TURN.

Got a trade business running on a template site and a job system that can't talk to it? Free 15-minute call. We'll talk through your setup and tell you honestly what a build like this would take.