Customer and staff-facing kiosk UI for room readiness, player scans, variant selection, and session controls.
Company
AeroSports
Role
Frontend lead inside the kiosk ecosystem
Stack
Next.js + WebView inside WinForms
Deployment
Server-hosted UI requested per room host
Status
Production flow used across active rooms
Admin Dialog
The Kiosk UI is the web-based frontend of the full kiosk system used in AeroSports game rooms.
It is built with Next.js and rendered inside the WinForms WebView host application. The UI is hosted centrally on the server, and each game host requests the page with its own room-specific parameters.
Its role is focused on the customer and staff interaction layer only. It does not directly control hardware, door locks, admin tools, or other device-level features. Those are handled by the Kiosk Host application.
The Kiosk UI is responsible for:
A focused view of the Kiosk UI boundary: database data flows into the UI, and the UI exchanges commands and status with the host.
The Kiosk UI communicates with two layers:
Sends to Host
Receives from Host
The UI reads:
It is a read-focused frontend and does not directly write data to the database.
The main customer journey was designed to be simple and visually guided.
Customers see a list of game variants on the left side of the screen.
They can:
Customers must scan at least 1 wristband, with a maximum of 5 players.
The number of scanned players affects:
After scanning:
When the session starts:
The UI also sends a waiting status to the host so players already inside the room cannot immediately restart the same session from outside.
The UI went through multiple iterations and continues to evolve.
This made the interface easier to understand while keeping the main actions visible.
The screen also displays:
The main challenge was not backend complexity - it was making the interface as user-friendly and informative as possible.
We continuously took input from:
Key UX problems we had to solve included:
Important improvements included:
The goal was to make the interface feel familiar, even as it continued evolving.
I was originally hired specifically to handle the frontend side of the kiosk system because I already had strong experience building web interfaces with Next.js.
From the beginning, I was the primary person responsible for the Kiosk UI design and implementation, and I led most of the ongoing improvements to the interface.
At the same time, the system improved through feedback from:
My role was to translate those inputs into practical UI changes while keeping the experience consistent and easy to use.
Using Next.js inside WebView turned out to be the right architectural choice for several reasons:
This approach allowed the UI to improve rapidly while staying easy to deploy and maintain.
The Kiosk UI became a key part of making the room experience smoother for both players and staff.
It improved:
Core tools and technologies used in this project.
Core technologies