Inspiration
Restaurants work hard to earn a guest's first visit, then hand off every repeat interaction to a delivery platform that charges 20-30% commission. We wanted to find the moment a restaurant could reclaim that relationship without asking the guest to download anything.
What it does
Servd is an App Clip that lets a guest join a restaurant waitlist in under 10 seconds by scanning a QR code at the host stand. That single tap opens the 8-hour notification window, which the restaurant uses to send a table-ready alert, a post-meal feedback prompt with a discount code, and an evening takeout offer, all without requiring a login or explicit notification permission.
How we built it
We built Servd as a SwiftUI App Clip using the ReactivChallengeKit simulator framework, with three URL-routed flows (/waitlist, /feedback, /offer) sharing a single ClipExperience conforming struct. All state lives on the root view so it survives the framework's timer-driven re-renders cleanly.
Challenges we ran into
Keeping the app clip scope within 30 seconds was the hardest part.
Accomplishments that we're proud of
The waitlist join takes under 10 seconds with zero onboarding, which means the clip actually respects the 30-second constraint while still opening a meaningful re-engagement channel. We're also proud of how naturally the three notification slots map to a real restaurant's post-visit timeline.
What we learned
The 8-hour notification window is most powerful when the clip interaction itself is trivially small. The less friction at scan time, the more likely the guest stays opted in through all three touchpoints, and designing backwards from the notifications made the clip better.
What's next for Servd
The natural next step is a restaurant dashboard where owners configure their own discount codes, promo items, and notification copy without touching code. Longer term, the /feedback flow could feed into a first-party review system, letting restaurants capture sentiment before it ends up on other public platforms.

Log in or sign up for Devpost to join the conversation.