EP
Client work
Frontend, at GUT

Campaign landingpages

A run of promotional pages shipped on advertising dates, each with its own art direction, several with a mechanic of their own: a timed quiz, a product switcher, a price ladder, a perks carousel.

ClientMcDonald’s Spain
Stack
Vue 3TypeScriptTailwind CSSGSAP

What the problem was

A campaign page arrives with a launch date already promised to the client. It looks nothing like the last one, it lives for a few weeks, and it still has to load fast on a phone, work in every locale the client sells in, and report what marketing needs to see. Rebuilding the foundations each time is how that date gets missed.

Meat Lovers menu launch page with a full-bleed hero and the combo broken out below
Meat Lovers, hero and combo
Meat Lovers, hero and combo

What I did

A kit, not a template

Composable sections with strict props, so a campaign is assembled rather than coded from scratch, and the art direction stays free, which is the part a template would have taken away.

Gave the pages that needed a mechanic a real one

Super Mario got a timed quiz with a countdown and a lives tracker alongside a menu-versus-Happy-Meal switcher; Más x menos a price ladder you page through; Modo Familia a six-card perks carousel over a three-card offer picker. The kit carried everything around them.

Handled locales and QA per launch

The same models feeding every locale the campaign runs in, and a pass across real devices before each launch rather than a desktop emulator.

Kept the cadence

Repeatable deploys and a known set of sections meant the later campaigns took a fraction of the first one’s build time, with the same checks.

How it stays fast

  • Hero media preloaded, everything below the fold deferred
  • No layout shift from late-arriving fonts or images
  • Per-page weight budget agreed while the design was still cheap to change
Outcome

Every campaign launched on the date it was promised, and the pages that needed to be more than a poster, a quiz or a switcher or a carousel, got there without a separate build.

Selected media

Imprescindibles

On desktop
The summer hero
The summer hero
The summer hero
The footer
The footer
The footer
Summer campaign carousel rotating through the cooler bag, backpack and towel
The merch carousel
The merch carousel
On a phone
The summer hero
The summer hero
The summer hero
How the promotion works
How the promotion works
How the promotion works
The footer
The footer
The footer

Más x menos

On desktop
A hundred extra points
A hundred extra points
A hundred extra points
Value campaign hero with a paged carousel of items under two euros
The price ladder
The price ladder
On a phone
A hundred extra points
A hundred extra points
A hundred extra points
Mobile version of the value campaign hero and its carousel
The price ladder
The price ladder

Modo Familia

On desktop
Activating family mode
Activating family mode
Activating family mode
Menus as an offer
Menus as an offer
Menus as an offer
Family programme page with a six-card carousel of perks and a call to activate
The perks carousel
The perks carousel
On a phone
The newsletter sign-up
The newsletter sign-up
The newsletter sign-up
Mobile version of the family programme page running into its offer section
The perks carousel
The perks carousel

Super Mario

On desktop
Film tie-in landing page with a two-tab switcher between the menu and the Happy Meal
Menu or Happy Meal
Menu or Happy Meal
On a phone
The film menu
The film menu
The film menu
Quiz screen with a countdown, a progress tracker and multiple-choice answers
The timed quiz
The timed quiz

Meat Lovers

Hero and combo, on a phone
Hero and combo, on a phone
Hero and combo, on a phone
Client work built at GUT. The artwork belongs to the brand.Eyman Pashaliev