CASE STUDY 08 / 16SELF-SERVE WEBSITESENGINEERING LEADERSHIPTEAM LEADERSHIPHANDS-ON ENGINEERING

Self-Serve Fair Sites.

When BMI Global Ed's fair websites were coded by hand, changing one word in a paragraph could break the registration form students sign up through, and every change waited days for a designer. I rebuilt them as one platform on WordPress. Buy vs build had no single answer: open source for the editing, licensed plugins for fields and translation, and custom code only where our fairs needed something no one sells. Event teams now publish their own changes in minutes.

MY PART
Directed the platform, from the buy vs build call to the offshore team that built it, and coded its configuration and measurement.
ORGANISATION
BMI Global Ed, part of Times Higher Education
SERVES
60–80 fairs a year in 18 countries
APPROACH
Buy vs build: open source, licensed plugins and custom code
FIG.01 · AN EVENT TEAM LAUNCHING A FAIR SITE, ILLUSTRATIVE
MinutesTo publish a change, once days waiting for a designer
5Admin screens that set up a whole fair site
6Languages, including right-to-left Arabic
18Countries the fair sites serve
01THE PROBLEM

Every word change was a code change

BMI Global Ed runs education fairs where universities meet students who want to study abroad. Every fair needs its own site, in its own language, with its own dates, venues and universities. Designers coded each site by hand, with the page's text in the same file as its registration form, so every edit to the words was an edit to the code.

FIG.02 · WHERE A CHANGE LIVES, BEFORE AND AFTER
02BUY VS BUILD

Buy vs build, or open source? All three.

Every part of the platform went through the same question: is this a solved problem we can adopt or license, or is it specific to our fairs?

OPEN SOURCE

WordPress Multisite

Editing, users, roles and publishing, and one network running many sites. Solved problems, so there was nothing to build.

WordPressPHPMySQL
BUY

Licensed plugins

Custom fields, translation and a page builder, each cheaper to license than to build.

ACF ProWPMLWPBakery
BUILD

What no one sells

The fair configuration, the link to BMI's own event and registration system, and each market's own tracking.

Shared themeAPI integrationMeasurement
BUY, THEN BUILD

Our own theme

We started on a bought theme too. Within months I moved us to our own, for control over the markup and how pages load, and kept the bought page builder on top.

Own themePage builder kept
THE RULE

Spend engineering only where nothing off the shelf fits.

03HOW IT WORKS

What differs between fairs is data, not code

One shared theme serves every fair site. Everything that makes a site that fair's own is data the event team sets in WordPress, so a new site is configuration, not a build.

Five configuration screens

Event Details, Analytics & SEO, Design, Footer and Sponsors: a whole fair site set up without a developer.

Live dropdowns

Editors pick a real fair and city from BMI's own event system instead of typing an ID. The event system stays the source of truth.

Cities as content

One template serves every city, generated from data, instead of a copied page for each one.

A library of sections

22 reusable page sections and 4 hero variants that editors assemble into pages, so page structure is content too.

Per-language settings

Each language carries its own event details, tracking and sponsors, right-to-left Arabic included, with a guard that stops an editor changing the wrong language's settings.

One registration path

Every form posts to the central API, which checks for duplicate emails and serves the exhibitor directory.

FIG.03 · FROM EVENT TEAM TO REGISTRATION, SIMPLIFIED
04MEASUREMENT

Tracking, wired under consent

The layer I coded myself. Each market runs its own tracking set-up, and no tag fires before the student consents.

Attribution across domains

A student can start on a fair site and finish on a third-party virtual-fair platform. Cross-domain linking and a UTM cookie keep that journey one funnel.

Consent in one change

I reworked the entire tracker stack so every tag loads under GDPR consent control instead of firing unconditionally.

GA4 behind Tag Manager

Migrated conversion tracking from Universal Analytics to GA4, with delivery consolidated behind Google Tag Manager.

05HOW IT EVOLVED

From hand-coded pages to a headless front end

Over a decade the fair sites moved through five generations. Since the move to WordPress, every one of them has kept event teams editing their own sites.

  1. 1

    Hand-coded

    Designers coded each fair site by hand. Every change meant editing the page file.

  2. 2

    Shared PHP platform

    I started one registration engine and exhibitor API for every country. Pages were still edited in code.

  3. 3

    WordPress

    Buy vs build, settled. Event teams edit their own sites through configuration screens.

  4. 4

    Rebuilt theme

    The offshore team I directed rebuilt the theme into reusable sections, easier to extend.

  5. 5

    Headless front end

    A Next.js front end takes over rendering. Event teams still edit in WordPress, and content reaches the new sites through the central API.

EVENT TEAMS EDIT THEIR OWN SITES
06MY ROLE

Chose the approach, coded the configuration and measurement

I made the buy vs build call and directed the offshore team, never more than five people, that built and maintains the platform. The configuration fields and the measurement layer are my own code; the wider architecture and the later rebuild were delivered by the team I directed.

  • Chose to rebuild the fair sites on WordPress, combining open source, licensed plugins and custom code, and moved the platform off its bought theme onto our own.
  • Directed the offshore team that built and maintains it, day to day, through written specifications and wireframes.
  • Built the configuration fields and live dropdowns, fed from the central API, that let event teams launch a branded fair site without a developer.
  • Replaced a hand-maintained city page with one generated from data, and made cities content so one template serves them all.
  • Integrated the fair sites with the central platform API for registration, duplicate-email detection and exhibitor directories, across two API generations.
  • Coded the conversion-measurement layer across GA4, Google Ads, Tag Manager, Facebook and TikTok, and put every tag under GDPR consent control in one change.
  • Directed the rebuild of the theme into reusable sections, delivered by the team, which left the codebase easier to extend.
07TECH STACK

Tech stack

[a] OPEN SOURCE
WordPress MultisitePHPMySQLWPGraphQLjQueryBootstrap 4
[b] BOUGHT
ACF ProWPMLWPBakery
[c] BUILT
Shared themeConfiguration screensAPI integrationMeasurement layer
[d] SERVICES
AWS RDSAWS S3AWS SESGoogle Tag ManagerGA4Facebook PixelTikTok Pixel

Say hello.

LINKEDINlinkedin.com/in/danielgorgonia

Hidden from bots until you click.

LOCATIONLondon, United Kingdom
LOCAL TIME--:--