A billiard club site where you book a table and order drinks to it.

A club's front desk, on one website.
Side Pocket is a billiard club in Tbilisi. It has six tables: three American pool, one snooker and two pyramid. It is open seven days a week, from 14:00 to 02:00. This is a personal project. A guest can see which tables are free, book one for a time, and order food and drinks to the table. Nobody has to call or write to anyone. I made all of it from scratch: the idea, the design in Figma, the full-stack app and the staff side. The photos and illustrations are my own work too.

Pick a night, a time and a table. No account.
Booking is one page. A guest picks the game, the night and how long they want to play. The site shows 14 nights ahead, and lengths from 1 hour to 4 hours in 30-minute steps. Then they pick a start time. Each time shows how many tables are still free, like "22:00 · 6 free". Times after midnight sit in their own group, because the club closes at 02:00. The tables that are free at that time appear next to the picker. A guest can take one table, or up to four to play side by side. The price follows the length they chose: 70 GEL for two hours. The last step is the number of guests (2 to 6 per table), a name and a phone number. Email is optional. There is no sign-up. The guest gets a booking link and keeps it.

Live availability on the home page
The home page lists all six tables with their status for today. A filter switches between American pool, snooker and pyramid. Every card has a Book table button.

Night, length and start time
Everything about the time sits in one panel on the left. Whatever the guest changes, the list of free tables on the right updates.

Guests and contact details
A simple stepper sets the number of guests. The phone field has a Georgian number mask. A bar at the bottom of the page keeps the booking summary and the Book table button in view.

Waitlist
If nothing fits, a guest can join the waitlist. The night, game and length carry over from the search. When a table frees up, the guest is offered it and it is held for 15 minutes.

Food and drinks, brought to the table.
The menu has three groups: cocktails, food and drinks. Spirits show up as photo tiles, from brandy and whisky to gin and aperitifs. There are 12 dishes and drinks with prices in GEL, and every one has an Add button. The cart opens as a side panel called Your order. A guest can change the quantities and see the total. The cart is remembered if they leave the page. The next step asks for three things: the table they sit at (01 to 06, with the game next to each number), their name, and a note for allergies or no ice. Then Place order. The order carries the table number, so the staff know where to bring it.

Your order
A short list with quantity controls and a running total. Nothing else on the screen.

Table, name and note
Guests choose the table from a list, so there is no typing and no mistakes in the table number.

A dashboard for the people who run the night.
Behind a staff sign-in there is a dashboard with three views: Tonight, Bookings and Orders. Staff accounts are added by the club owner, so there is no public sign-up. Guests never need an account. Only the staff do.
Dark, loud and quick to read.
The interface is dark, with big heavy headlines. The type pairs Archivo Black with Inter and Schibsted Grotesk. A teal strip runs across the page with the opening hours and club news. The 8-ball character and the other illustrations are mine. The layout follows the order of a night out: see what is free, pick a table, order a drink. On a phone the navigation turns into a simple menu button.
Booking and ordering, built end to end.
The site is live. A guest can see free tables, book one or more, join a waitlist, and order food and drinks to the table. Staff follow the night from one dashboard. It covers everything I do on a client build: the product idea, the interface, the code and the content. I made it to show what a small venue's website can do.