A restaurant that stopped taking bookings by phone
Casa Aurelia's site runs in three languages: a guest books their own table, the kitchen gets notified the same second, and an assistant answers menu questions at midnight.
- Industry
- Restaurant
- Scope
- Design + development + systems
- Languages
- Turkish · English · Italian
- Address
- Open site ↗
Problem
Every booking was stuck on the phone
The restaurant's only presence on the web was social media. Anyone wanting to reserve a table had to call — a ringing phone during service interrupted both the guest and the kitchen.
The second problem was language. A meaningful share of guests were foreign; visitors who couldn't read the menu or opening hours in their own language would call and ask, and the question would land back on the phone.
Approach
The restaurant's own material, first
The design language came from the menu and the space: dark pine green and gold, the light of evening service. Headings use Cinzel — a typeface built on Roman inscription letterforms, a natural reference for Italian cuisine.
The opening has a quiet, looping video hero — a dish being prepared on the grill. Motion starts the moment the visitor opens the page; no waiting, no scrolling required.
The site was built Italian-first, with Turkish and English added as equal versions — not a translation plugin, but separate pages that let search engines show the right language.
Technical
Three problems solved along the way
What a website is actually worth is usually hidden in details like these — and none of them show when you're buying.
Smooth scroll was breaking sticky headers
The smooth-scroll library scrolls the page itself on every frame,
which broke position: sticky elements. The
overflow-x: hidden used to hide horizontal overflow
turned the body into a scroll container of its own, making the
problem worse. The fix was overflow-x: clip: the same
visual result, without creating a scroll container.
Notifications without writing the bot key into the database
Every booking needed to trigger a Telegram message. The easy way
is to embed the bot key in the server code. Instead, the
notification fires from the database's own trigger; the key sits
in Supabase Vault — it appears in neither the table
nor the code.
An assistant that doesn't make things up
The chat assistant answers only from the menu, hours, and address it's given; it has no authority to make a booking and directs the guest to the site's form instead. Messages are neither stored nor logged on the server.
Zero dependencies, zero build
The site is plain HTML, CSS, and JavaScript. No build step, no package manager, no framework. That's why it still works when opened two years from now — there's no dependency chain that needs updating.
Result
The site, top to bottom
Systems built
- — Trilingual structure (TR / EN / IT) with correct language tags
- — Booking form that writes to the database, with double-booking prevention
- — Password-protected admin panel: view, add, cancel bookings
- — Telegram notifications plus day-by-day booking lookup via the bot
- — AI assistant answering menu and hours questions
- — Fixed WhatsApp booking button
- — Structured data, sitemap, multilingual SEO tags
- — Autoplaying, silent video opening
What should be running under your business?
The discovery call is free — we settle scope and price in 45 minutes.
Start a project