Project One Motors · 2026

The showroom kiosk that turns a walk-in into a logged lead.

Build story

The Project One Motors showroom check-in kiosk welcome screen on a tablet.
The screen a walk-in meets by the door. Four taps, then a salesman's already on the way.

Role

  • product
  • automation

Stack

  • Next.js
  • Cloudflare
  • D1
  • WhatsApp
The problem
Someone walks into the showroom. Whether they get greeted, and by whom, is luck. No name, no number, no record - and the next day, no idea they were ever there.
What I built
A check-in kiosk on a showroom tablet: name, phone, the actual car they're looking at pulled from live inventory, and how they found us. It routes the visitor to a salesperson and pings that rep on WhatsApp.
The result
Every walk-in is now a logged lead with the right salesperson already walking over - instead of a stranger nobody wrote down.

A supercar showroom's problem isn't getting people through the door. It's what happens in the ten seconds after. Someone walks in, looks at a Ferrari, and whether a salesman notices - and which salesman - is down to who happened to look up. Half the time the visitor leaves as anonymous as they arrived. No name, no number, no note that they were ever in the building.

Name, then number. The trust line isn't decoration - it's why people finish.

So I built a check-in kiosk. It runs on a tablet by the door - a page in the same Next.js app that runs the rest of Project One Motors, so it shares one live inventory and one database, not a bolted-on second system.

The visitor taps through four short steps: their name, their number, the car that caught their eye, and how they found us. The car step is the one I care about - it doesn't ask them to type. It shows the brands actually in stock as buttons, and tapping one shows that brand's real cars, photos and all, pulled straight from the same inventory the public site runs on. If a car isn't on the floor, it isn't on the screen. Nobody gets asked about a Bugatti that sold last week.

The brands on the screen are the brands on the floor. It reads live inventory, so it can't offer a car that isn't there.

Under the tap, it's doing the part that matters: routing. Pick a specific car and the visitor goes to that car's salesperson. Ask for help without a specific car and they go to the next rep in a fair rotation, so the same person isn't handed every lead. Decline help and they're logged anyway, unassigned, for reception to pick up. The rotation is crash-safe - the pointer only moves when a rep is actually assigned, so a refresh or a dropped connection never skips someone's turn or double-books a lead.

Only the brands actually on the floor. The grid is built from live inventory.

Then it pings. The assigned salesperson gets a WhatsApp with the visitor's name, number, and the car, so they walk over already knowing who they're greeting and what to talk about. The walk-in feels recognised; the showroom stops running on luck.

It's a device, so it's provisioned like one: a tablet isn't a kiosk until it's claimed with a token, so a random phone hitting the URL just sees a locked screen, not the check-in flow. Boring, and the reason it's safe to leave sitting by the door.

Tap a brand, get its real cars. Pick one and it routes you to that car's salesperson.
Skippable, on purpose. A required question is a question people lie to.
What a device sees before it's claimed. A kiosk is hardware, so it's locked like hardware.

Two ways on from here: the next case study - A WhatsApp bot that knows when to stop talking, or the films.