Skip to content
Mateusz Cieplak

WordPress + WooCommerce · Hospitality

Manuarte

Restaurant, show and event venue site with ticket sales, rebuilt from scratch

Manuarte is a restaurant and event venue in Łódź with a Dinner & Show programme. The project started as a facelift and became a full rebuild: a custom WordPress theme, WooCommerce ticket sales for every show and a custom plugin for consent, analytics and redirects.

Role
Sole developer, from the Figma design to the migration
Period
Jul - Sep 2026
Stack
  • WordPress
  • WooCommerce
  • PHP
  • ACF
  • Custom plugin
  • Consent Mode v2
  • GTM
  • GA4
Manuarte: homepage on a desktop screen
Manuarte on a phone
hero video size, up to
−73%
less on every page
~1.6 MB
redirects in a single 301
161 / 161
broken internal links in the audit
0

Context

The brief: give the restaurant, the shows and the event space, which the previous site presented together, their own clear paths, and make analytics respect the visitor's consent.

The new site separates the three offers, sells tickets for every show and keeps every old address working.

What I did

  • Custom PHP theme with 8 page templates, no page builder and no build step
  • Two custom post types, Dinner & Show events and venue events, each show with its own page and ticket products
  • A mechanism for selling tickets to one-off special events
  • WooCommerce checkout templates styled to the design
  • A custom plugin: Consent Mode v2 banner with a consent log that stores the IP only as a salted hash, one GTM container, GA4 e-commerce events and lead tracking
  • Redirect manager with a 404 log, and an import of SEO titles and descriptions from the old site
  • Scripts that rebuild the site from the repository and run the migration

How it fits together

How the site is built
  1. Theme

    1. 8 page templates
    2. Dinner & Show events
    3. Venue events
    4. Ticket products
  2. Plugin

    1. Consent Mode v2 + log
    2. GTM + GA4 e-commerce
    3. Redirects + 404 log
    4. SEO import

WordPress with free ACF, no page builder, no build step.

Hard parts and how I solved them

  1. Problem

    Analytics loaded before the consent state was known, and a cached page could serve one visitor's choice to others.

    Solution

    A fixed order in the <head>: consent defaults first, then GTM. The consent choice is read only in the browser, so the page cache stays the same for everyone.

  2. Problem

    A new structure meant new URLs, and search traffic to the old ones could not be lost.

    Solution

    A URL map built from the production backup and checked against the live site. Blog posts kept their addresses, and the audit found all 161 redirects resolving in a single 301 step.

  3. Problem

    Video headers and decorative backgrounds made every page heavy.

    Solution

    Re-encoded hero videos (6.26 → 2.61 MB, 7.04 → 1.96 MB, 4.70 → 1.08 MB), gradients converted from PNG to WebP (about 1.6 MB less per page) and no video downloaded on phones.

Results

  • Hero videos 59-77% smaller, phones download 0 MB of video
  • About 1.6 MB less on every page after the PNG to WebP change
  • Pre-launch audit: 0 broken internal links, 313 of 313 assets returning 200, Lighthouse accessibility 95-100
  • 161 of 161 redirects resolving in one 301 step

Screens

Swipe or use the buttons to browse the screens.

  • Homepage: restaurant and show as two paths
    Desktop · Homepage: restaurant and show as two paths
  • Homepage on a phone
    Phone · Homepage on a phone
  • Dinner & Show landing page
    Desktop · Dinner & Show landing page
  • Show page with ticket buttons
    Phone · Show page with ticket buttons
  • A single show with its own tickets
    Desktop · A single show with its own tickets
  • Restaurant
    Desktop · Restaurant
  • Event venue
    Desktop · Event venue

Contact

Let's talk.

Looking for a frontend developer who can take a project all the way to production? Use the form or write to me directly.

kontakt@mateuszcieplak.com

Your details are used only to reply to you. The form is delivered by Web3Forms.

Get in touch