Work

Most of what is here is live, so open it. The recruitment platform is a write-up instead, because the code belongs to a former employer and backend work photographs badly in any case. The client builds further down are live too, and most of them are my design as well.

Client builds

Solid Rock website

Solid Rock

Next.js · Strapi CMS · headless rebuild

A technical events production company doing lighting, sound, rigging, staging and display systems for corporate events. The site I took over was a broken WordPress install that had plainly been hacked, so I started rebuilding it in WordPress. The client looked at that first draft and said it felt too template based, and it was slow. That is what decided the stack. Next.js fixed both and they liked it, but they still needed to edit their own content. Headless WordPress would have been the easy answer, and it was the one thing they would not have, having had enough of WordPress by then. Strapi was the best headless CMS I could find at the time, so the site takes its content from Strapi and compiles it into a static front end. The equipment catalogue, the projects, the testimonials and the FAQ are all theirs to edit.

solidrock.co.za
Corporate Chic website

Corporate Chic

WordPress · Elementor · WooCommerce · custom plugin (PHP)

A promotional products supplier serving South African businesses ordering custom-branded merchandise at volume. I built a 3,000-product WooCommerce catalogue sourced from national supplier Amrod, with checkout replaced by a quote-request flow and a minimum order quantity that blocks requests under 50 units, because branded goods can't be priced until you know the quantity and the decoration method. Supplier prices change once a year, so instead of building and maintaining an API sync, I wrote a custom WordPress plugin that lets the owner bulk-reprice an entire category by percentage markup or fixed rand amount. It cost a fraction of a sync, which suits a problem that comes up once a year.

corpchic.co.za
Rideaux D'Or website

Rideaux D'Or

WordPress · Elementor · design and build

An interior and events styling company in Centurion, with curtains, blinds, upholstery and wallpaper on one side and wedding and event décor, draping and flowers on the other. The client knew they were selling to two different people. What they could not picture was how one site would do that without burying one half, so working that out was the job. The home page opens on two doors instead of a single welcome, the navigation keeps the two service trees apart all the way down, and the one shared portfolio tabs between everything, interior only and events only. Nothing carries a price, because none of it can. A curtain run and a venue drape are both quoted off the room. So the site sells on the work itself, routes every enquiry to a form, a phone number or WhatsApp, and offers downloadable catalogues for the people who would rather browse offline.

rideauxdor.co.za
Rentware website

Rentware

WordPress · Divi · WooCommerce · 133 products

A Cape Town computer and AV rental business renting out laptops, desktops, projectors, screens and networking hardware, from one day to twelve months. The catalogue runs to 133 products across 16 categories with faceted filtering, but the work that earned its keep was the landing pages. Conference hire, film production, training venues, digital nomads and online exams each get their own page, written for the search that brings that customer in. The client ran a deliberate high-touch sales process and did not want it automated, so rental requests are captured through a structured enquiry form covering rental duration and the finance documents they need. Their team takes availability and affordability from there.

rentware.co.za
VNQ Systems website

VNQ Systems

WordPress · Divi · content architecture

A corporate IT, cybersecurity and cloud services provider. The hard part was structure, because nine solution areas, sector case studies, a news archive and a gated resource library all had to stay navigable. I built it on a strict parent-child taxonomy, so each solution sits under /solutions/[name] and related content inherits that hierarchy. Gated resources sit at the foot of each solution page as well as in a central library. It went live in 2023 and I've maintained it since.

vnqsystems.co.za