Work

A portfolio, not a highlight reel.

Twenty-five of the projects that shaped this decade: WordPress and plugin builds first, then the branding, marketing and photography that came with them. Each one opens a case study, most linking out to the site that is still running.

Selected work

Three that show the range

A custom plugin build, the largest name on the list, and a brand identity taken from stage design through to stationery.

Pedagogy Club

Education · Development

Pedagogy Club

Custom WordPress theme and a purpose-built enrolments plugin, so bookings run on logic made for this business.

News UK

Media · Marketing

News UK

Brought in to help reset cyber messaging and awareness for the UK's largest news media group.

Everything else

The other 22

22 projects shown

Bettafi Marketing site for an AI personal finance app, built for speed and clarity around a genuinely technical product. Fintech / AI Development MHV Clinic Osteopathic clinic site built to turn visitors into booked appointments, not just look clinical. Healthcare Development Chear Beauty A product-led website built around a real catalogue, with photography to match. Beauty / eCommerce Development High Five Family Fitness Local gym site built to get memberships booked, not just browsed. Fitness Development HD Security Systems A security installer's site engineered to convert enquiries into surveys booked. Security Development Ecoboxes Brand identity and website for a sustainable packaging business. Sustainability Development Al Jannah Villa Marrakech Art direction, brand strategy and website design for a luxury villa rental. Hospitality Development Kemp Services Website design built around the photos, copy and keywords the business actually needed. Professional Services Development DCD Connect Event photography, content and web development for a data centre industry conference. Tech / Events Development DDG Windows Rebrand and identity for a windows and glazing installer. Construction Branding KBMD Chartered Certified Accountants Identity work for a chartered accountancy practice. Professional Services Branding Taur Security Brand identity and print collateral for a security services firm. Security Branding Vijay's Virasat Full brand identity and photography for a restaurant, from logo to menu design. Hospitality Branding Tulsi Vagjiani Branding, photography and social content built around a personal brand. Personal Brand Branding Protech Autocentres Logo and brand identity for a vehicle service centre. Automotive Branding Metro Laundrette & Dry Cleaners Rebrand for a laundrette and dry cleaner, refreshed for a new generation of customers. Services Branding London Kings Clothing Branding, photography and social content for a clothing retailer. Retail / Fashion Branding Sefia London Brand identity for a fashion label. Fashion / Retail Branding Fireaway Pizza Local marketing and branding support for a Fireaway franchise location. Food & Beverage Marketing Japex Automotive Google Ads and social media management to keep enquiries flowing for a car dealership. Automotive Marketing The Hollybush Bar & Restaurant Brand photography and identity for a bar and restaurant. Hospitality Photography Triage Vets Full rebrand and photography for a veterinary practice. Veterinary Photography
Technical deep dives

A few of the harder problems

Where the client's identity stays out of it by agreement, but the technical substance doesn't.

Sector: Self-storage

Real-time occupancy engine

The problem

A self-storage operator's booking data lived entirely inside a third-party platform. Their WordPress site showed unit availability that was hours, sometimes days, out of date, costing them bookings on units that had already sold.

What I built

A custom plugin that syncs live occupancy and pricing from the external platform's API directly into WordPress, handling pagination and webhook updates so the site reflects real availability within minutes, not a manual export.

The result

Their team stopped manually updating listings. The site stopped quoting availability that no longer existed.

Sector: Storage & booking franchise

Storefront + CRM pipeline

The problem

A booking platform needed its public storefront, its checkout, and its internal sales pipeline to share one source of truth: instead of leads falling through the gap between the website and the CRM.

What I built

A plugin layer connecting the storefront and booking flow directly to the CRM's deal and task objects, so a form submission becomes a tracked deal automatically, with the right stage, owner, and follow-up task.

The result

No lead touches a spreadsheet. Every enquiry has an owner within seconds of landing.

Sector: Retail

Inventory-led rebuild

The problem

An ageing site built on a page builder couldn't handle the client's growing product catalogue without slowing to a crawl.

What I built

A fully custom PHP theme built around their inventory data model from the ground up, rather than bending a generic template to fit it.

The result

The catalogue can grow without the front end degrading, because it was built for that from day one.

Sector: Service business with bookable capacity

A booking engine that quotes accurately

The problem

Bookings came through a generic form that couldn't show real availability or price a job properly, so quotes went out wrong and slots got double-sold.

What I built

A multi-step booking engine that reads live availability and applies the business's own pricing and capacity rules in real time, so the customer sees an accurate price and a genuinely open slot before they commit.

The result

Booking became self-serve and accurate. The team stopped un-picking double-bookings and re-quoting by hand.

Sector: Account-based / subscription business

A customer portal that took admin off the inbox

The problem

Customers had no way to manage their account, bookings or documents without emailing the office, so routine admin swallowed the team's day.

What I built

A secure customer portal built into the site, accounts, self-service booking changes, document access, connected to the systems the business already ran on.

The result

Routine requests moved from the inbox to self-service, and the team's time went back to the work only they could do.

Available for projects

If your problem looks like one of these, or nothing like them

That's usually the interesting part. Tell me what you're starting, or what's broken.