A website and reservation system for a busy restaurant in the heart of Gdańsk’s Old Town, designed from first-hand experience of its daily operations.
Guests book a table online in a few steps and get an email at every stage. The team sees every reservation in one dashboard, gets an instant Telegram alert for each new request and manages the website content without a developer.
This is a self-initiated project. It wasn’t launched for the restaurant, but the complete system is available below as a working demo.
The challenge
We saw these problems every day while working inside the restaurant.
Too many reservations depended on phone calls
Gdańsk is one of the busiest tourist destinations on the Baltic coast. In high season, the restaurant received a large number of reservation requests by phone, while the team was already serving a full room. Not every call could be answered quickly, and hiring someone just to handle bookings would have been an unnecessary cost.
Every phone booking also meant manual work: answer the call, take down the details, then enter the reservation into the system by hand.
A guest who can’t get through rarely waits for a callback. They book somewhere else, and the restaurant never finds out. It’s the same pattern we see with sales leads: the first minutes after an enquiry decide most of the outcome.
Guests needed information faster, and in more languages
During busy hours, even a few extra minutes of waiting can affect the guest experience. Guests had questions about dishes and ingredients while staff were focused on service. Many of them came from abroad, but the website offered only two languages, and the paper menu couldn’t give international guests detailed information in a language they understood.
The website wasn’t built for phones
The existing website had no mobile version, no digital menu and limited language support. On a phone, its main content took 13.8 seconds to load. Guests couldn’t easily browse dishes, view photos or check ingredients before or during their visit.
For the business, this meant missed reservations, more manual work for staff, slower service at the busiest times and a higher risk of negative reviews.
Booking a table in a few steps
Before, guests had to call the restaurant or use a third-party booking app. Now the whole process happens on the restaurant’s own website, in the guest’s language:
- The guest chooses a date and time.
- They enter their contact details.
- The request appears in the dashboard in real time, the team gets an instant Telegram alert, and the guest receives an email saying the request is awaiting confirmation.
- A manager reviews and confirms the booking.
- The guest automatically receives a confirmation email.
All online bookings land in one dashboard, where managers can find a reservation by phone number or email, mark guest arrivals and handle cancellations. The system is also ready to pull in bookings from third-party platforms via API as a next step.
A menu built for phones and international guests
The website was designed mobile-first. Most guests open it on a phone, often on their way to the restaurant or already at the table, so the mobile experience was treated as the core product rather than an adaptation of the desktop version. It matters for search too: Google indexes and ranks websites based on their mobile version.
On mobile, the main content now loads in 3.9 seconds instead of 13.8, and the Google PageSpeed performance score went from 55 to 85 (from 67 to 99 on desktop).
Guests can browse the menu, check prices and ingredients, view photos and read dish descriptions in English, Polish or German, without waiting for a member of staff.
Managing the website without a developer
The custom admin panel gives the team control over everyday content. Managers can add, edit and remove dishes and categories, update prices and opening hours, manage contact details, and change photos and homepage banners, all from one place.
All content is managed in three languages, and new languages can be added as the restaurant’s needs grow.
The website also collects newsletter sign-ups. Every subscriber confirms their email address, so the restaurant builds its own list of verified guests for future campaigns.
What changes for the restaurant
Fewer phone calls, less manual work for staff and faster answers for guests, especially in high season, when the restaurant serves visitors from many different countries.
- Before: Reservations mostly by phoneAfter: Guests book online in a few steps, any time of day
- Before: Every booking entered by handAfter: Requests land straight in one dashboard
- Before: New bookings noticed only when someone checksAfter: Instant Telegram alert for every new request
- Before: Booking details passed on over the phoneAfter: Automatic emails from request to confirmation
- Before: Every website update needs a developerAfter: The team edits menu, prices and hours itself
- Before: Paper menu, two languages, no mobile versionAfter: Mobile-first digital menu with photos and ingredients in three languages
Explore the project
The project is available as a fully working demo. Explore the website, try the reservation flow or open the admin panel to see how content and reservations are managed behind the scenes.
- Login
- demo@riverside.pl
- Password
- demo1234
- Frontend
- Next.js 15 · React · TypeScript · Tailwind CSS
- Database & backend
- Supabase · PostgreSQL · Realtime
- Resend — guest emails, owner alerts, newsletter sign-up with email confirmation
- Notifications
- Telegram — instant alerts for new reservations
- Languages
- next-intl
- Forms
- React Hook Form · Zod
- Testing
- Jest · Testing Library
Want results like these for your business?
Tell the AI Consultant about your business and get a personalized automation plan in 2 minutes. Free, no commitment.
Get Your Free AI Automation Plan