← All work

Case / 05 of 08

CTS Radios

A WordPress site the client can edit, built like software.

Role
Sole developer
Timeline
Oct 2026
Live
ctsradios.uk ↗
CTS Radios product screenshot

Context

CTS Radios (Communication & Technical Service) hires, sells and services two-way radios in the UK.

I rebuilt ctsradios.uk as an editable Elementor site on WordPress: product catalogue, hire and sale request flows, contact forms and SEO.

System

Elementor pagesProduct catalogue
WordPress · child themects-core plugin
MySQL
WPFormsYoast SEOACF

What I built

  • Editable Elementor pages
  • Product catalogue
  • Hire / buy availability
  • Brand filter
  • Hire & sale request panels
  • Contact enquiries
  • Service pop-ups
  • Crane radio system page
  • Yoast SEO setup
  • WebP image optimisation

The hard part

Editable by the client, reproducible by me.

Every page is generated from code: Python builds the Elementor layouts, and a WP-CLI importer upserts them by slug and uploads each image once.

The client gets a normal WordPress site they can edit in Elementor. I get a repeatable build and a local Docker stack that matches production.

Engineering decisions

  1. 01

    Pages generated from code.

    Python writes the Elementor JSON; a WP-CLI importer upserts pages by slug, so the initial build is repeatable.

  2. 02

    Products as real content types.

    A custom product type with category and hire/buy taxonomies, instead of hand-built pages.

  3. 03

    Request panels know the product.

    Hire and sale panels slide out with the model already filled in.

  4. 04

    Images optimised on import.

    WebP copies up to 1920px are generated and preferred by the importer.

  5. 05

    Local mirrors production.

    Docker on the same WordPress version as production, with Mailpit catching every test email.

Shipped

  • Live site
  • Product catalogue
  • Hire / sale / contact forms
  • SEO setup

Stack

  • WordPress
  • Elementor
  • PHP
  • MySQL
  • ACF
  • WP-CLI
  • Docker
  • Python

Integrations

  • WPForms
  • Yoast SEO
  • Ultimate Addons
  • Bluehost

Links

Next case →AshirwadA restaurant shouldn’t need a marketplace to run its own orders.