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.

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.
Before
AfterOne 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.