Seat Selector
A custom, production-ready WordPress plugin designed and developed end-to-end to automate seat assignments for a 2,000-guest international event.

Loop Media
2 Months
Solo Product Designer & Full-Stack Developer

Context & The Core Challenge
Solving 2,000 person seat coordination in 2 months
Loop Media was preparing the World Magic Championship gala in Turin 2025. Tickets had been pre-sold two years before the final theater layout was even finalized, leaving the team to coordinate seating retroactively.
They needed a digital solution that could plug into the existing event website, built around two very different needs:
- Internal operations: a way for Loop Media staff to import attendee and venue data, generate the interactive seating map, and manage the information required for seat assignment.
- Guest experience: a login-free reservation flow where each attendee could only access and book seats based on the number of tickets they had purchased and their assigned seating category.
As the sole designer and developer on the project, I researched, designed, and built the entire platform myself. The event was three months out, and I had two months to create a production-ready solution.
My Solution
WordPress Plugin-Based Reservation System
After reviewing existing seat reservation systems, I found that no market solution met the project's specific customization requirements.
Therefore my proposal was to build a custom reservation system to integrate into the client’s WordPress website, structured around two connected flows: an internal operator dashboard and a login-free attendee experience.
Operator flow
A dashboard built to work directly with existing Excel files, without requiring any restructuring of the client’s data.
The flow is split into two independent features:
- Seating Map Generator: Imports theater layout data from Excel and generates the interactive seating map used for seat selection. The system translates the uploaded structure into a visual seating layout.
- User & Reservation Manager: Imports buyer and purchase data from existing spreadsheets and converts it into structured user records with basic buyer information, ticket quantities, and reservation context. From this data, the system generates unique access tokens and reservation URLs used to access the seat selection flow. This view also acts as a live operational table, updating reservation status in real time as seats are selected, and allowing manual overrides when required. Generated links are distributed through an email marketing tool to guide users into the reservation experience.




Cross-system validation & error handling
Both features include a shared import feedback system designed to prevent silent data issues. When inconsistencies are detected, the system generates a clear list of errors and a downloadable copy of the original file with the problematic cells highlighted. This allows operators to quickly identify and correct issues directly in the provided file, which is especially important when working with large spreadsheets, while keeping the original file untouched to avoid any risk of data loss or corruption.
Key Product Decision: Token Model
When presenting the design to the client, they requested a one-token-per-ticket system. I explained that this would create two main issues: users with multiple tickets would receive multiple emails and access links, and groups would need to access the system multiple times, increasing the risk of not being able to secure seats together.
To support my proposal, I took the flow I had already designed and built a second flow based on the client’s request, placing both side by side for comparison. This made the impact of the decision explicit in practice, showing both the increase in email volume and the fragmentation of group seating.
After this, we aligned on a single token per purchase, allowing all seats within a booking to be selected in one session. This reduced email load, simplified the reservation flow, and ensured groups could sit together.

Attendee Flow
Users accessed the system through a secure token link without creating an account. Each user saw their seating category and available ticket quantity, and completed seat selection in a single session using an interactive seating map. Seats were temporarily locked during selection to prevent duplicates, and a confirmation email was sent after completion.
On desktop, users could navigate the full theater layout freely. Mobile introduced a constraint due to seat density and interaction precision. While a continuous zoom-and-pan experience (similar to modern ticketing platforms) would have been the ideal approach, it was not feasible within the development timeline.
To ensure a reliable release, I implemented a simplified quadrant-based navigation system for mobile. The theater was divided into sections to improve touch accuracy and reduce navigation complexity, prioritizing usability and stability over spatial fidelity.



Results
The system enabled all 2,000 attendees to reserve seats with minimal support from the event team.
Most users completed the process independently, with rare operator intervention and no duplicate seat assignments.
The experience worked reliably on both desktop and mobile, allowing users to manage multiple tickets within a single reservation flow.
As a next step, the client expressed interest in developing an app to manage multiple venues and events as part of larger experiences.
The conceptual and design proposal has been completed, though it has not yet been implemented.
Learnings
This project taught me the importance of carefully planning and clearly communicating user flows to prevent future issues, especially when working under tight implementation timelines.
It also reinforced how powerful design can be when solving visualization and information-organization challenges, making it possible to build complex systems that remain clear and usable even within limited screen space.
