← All work
Live 2026 · Restaurant · My own project

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 ↗
Casa Aurelia homepage — an autoplaying video hero
Homepage · desktop

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

Full-page view of the Casa Aurelia site
Full page · scroll to explore
Casa Aurelia site on mobile
Mobile view

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

Next project

Meridyen Dental — healthcare

View project →

What should be running under your business?

The discovery call is free — we settle scope and price in 45 minutes.

Start a project