Marketing Site · 2026
K&J Shine Works
Detailing in Cedar Rapids, booked online instead of by phone tag
An auto detailer in Cedar Rapids, working from the shop on Vernon Valley Drive or in the customer's driveway across four more towns. The site is black paint and chrome over eighteen pages, and every one of them leads to the same button: Book Online, into a scheduler that prices the vehicle from its plate and reports each booking to the ad account with its value. Every photograph is the shop's own, down to the before and after pairs a visitor drags a line across.

- The first button on every page, into a scheduler that prices the vehicle from its plate
- Book OnlineThe first button on every page, into a scheduler that prices the vehicle from its plate
- A page per service and per town, each with its own photograph and link preview
- 18 pagesA page per service and per town, each with its own photograph and link preview
- AI-friendly checks passed
- 9 of 9AI-friendly checks passed
Measured on the live site
Read off kjshineworks.com, not a staging copy. Lighthouse on its default phone profile, the median of three runs.
Lighthouse, on a phone
7 October 2026Home
/94Performance100Accessibility79Best practices100SEOBefore and after
/before-after97Performance100Accessibility79Best practices100SEOCeramic coating
/ceramic-coating98Performance100Accessibility79Best practices100SEOBook online
/book97Performance100Accessibility79Best practices100SEO
Best practices reads 79 on every page for one reason: the Google Ads tag, chosen in its full form rather than the cookieless one, sets a third-party cookie. Nothing else under that heading fails.
9 of 9
AI-friendly checks passed
What an assistant reads before it recommends a business: robots.txt, the llms.txt and the structured data. Run the same checker on your own site.
Score my siteAutoWash, Service and FAQPage
Every price an offer on the home page, each service page with its own, and the booking page a ReserveAction.
A link preview for every page
Each of the 18 pages draws its own card from one of the shop's photographs, and the build refuses a stale one.
15 assistants admitted by name
robots.txt names each crawler, and points at an llms.txt the build rewrites from the pages.
The problem
The original site was WordPress with a shop plugin, which sold a detail as a product with a cart and a checkout. The single static page that replaced it was fast, but it had nowhere to grow, and when online booking arrived it was a plain text link under a large Call for a Free Quote button. A phone call is the slowest way to book a detail: the crew is usually mid-job, and the customer is reading the next listing while it rings. There was no page for ceramic coating, the job worth most, none for the towns the mobile service reaches, and nothing that showed the work before somebody asked the price.
What got built
Still plain HTML, CSS and JavaScript, with no framework and nothing to patch, but now assembled by a small Node build. The header, the footer and the layout exist once, every page is stamped out from them, and the sitemap and the llms.txt are rewritten on the same pass. The build refuses to run on a title or description too long for a search result, on an em dash, on a page hero missing its photograph or its placeholder, and on a link preview rendered from an old title. Booking is Mobile Service Sync, our CRM for mobile crews, embedded on the site: it looks the plate up to price the right size of vehicle and posts each finished booking back to the page, where the Google Ads tag counts it once, with its own value. The look is night (black paint, chrome lettering, ice) with a real day palette in pearl and gunmetal, and the motion starts from the shop's own photographs: water beading on a hood, animated as a slow loop that mounts only after the page has loaded, and a snow-foamed tailgate where the foam slides off to clean paint.
Details worth naming
- Book Online is the first button in the header, the hero and every closing band. The phone number keeps two prominent places, the footer and the contact page, plus the call icon on a phone's action bar.
- Each completed booking is reported to Google Ads by the scheduler itself, once per booking and with its real value, so the campaign is judged on booked jobs rather than clicks. A tap on the phone number counts separately.
- Before and after pairs as a single frame: a wand line sweeps across once, then follows a finger or a mouse, with a real range input underneath so a keyboard and a screen reader can work it too.
- A page for each service and for each town the van reaches (Marion, Hiawatha, Robins, Mount Vernon), each opening on a different one of the shop's photographs, with customers' plates blurred.
- Night and day as two designed palettes, and the car from the shop's logo traced to a vector mark that takes either colour. Every loop and glint switches off under reduced motion, and the loops never load on a phone.
- Privacy and SMS terms that say exactly what is texted and how to stop, which is the wording a carrier reads before it lets a business text its customers. Like every legal page we build, they are set with a contents column.
- All 29 addresses the WordPress site used, its product pages included, redirect to the page that replaced each one.
Inside the product
Captured from the live site on 7 October 2026, in its night palette and, for one frame, its day palette. Every photograph on it is the shop's own.

Neighbour

Before & After Detailing Photos
kjshineworks.com
Delivered





Next project
Low-Key Locksmith
17 city pages that are worth reading
Tell us about the business.
What it does, where, and what the website has to make happen. Within a day you will have a straight answer on what it takes to build, what it costs to run, and what we would cut. If the honest answer is that you do not need a new site, that is the answer you get.
Or skip the form entirely. hello@pinelandtech.com reaches a person, not a queue.
