Skip to content
HomeServicesPackagesProjectsAbout
Projects
Project details

MERSIN HATAY RESTAURANT · 2025 – PRESENT

Mersin Hatay Restaurant

A trilingual website for a Hatay cuisine restaurant in Mersin. Menu with prices and allergen information, blog, FAQ and contact; the menu and prices are managed from a custom admin panel.

My role: Design, development and maintenance: I am responsible for every technical part.

mersinhatayrestaurant.com
Turkish, English, Russian
3 languages
menu items
200+
Turkish law it complies with
4207
automated tests
~320

The Problem

The restaurant’s guests include tourists who do not speak Turkish and Russian-speaking visitors. The menu had to be complete in every language, and each language had to be found by search engines as its own page.

Prices change in the QR menu of the restaurant’s point-of-sale system; updating them on the website one by one takes time and invites mistakes. Advertising alcoholic drinks is also restricted in Türkiye by Law No. 4207.

Architecture

Website

  • Tailwind CSS

TR · EN · RU

Admin Panel

  • Tailwind CSS

Menu, Prices and Blog

Laravel 13

  • Laravel

Blade and Eloquent

Database

  • PostgreSQL

Menu, Content and Queue

QR Menu

Price Import from the POS

Translations are stored in the same row, in a separate column per language; the database uses ICU collation for Turkish sorting.

What I Built

  • Trilingual Menu

    Categories, dishes, portions and extras in Turkish, English and Russian; a field without a Russian translation falls back to English.

  • Prices and Allergens

    Price, allergen information, portions and extras for every dish.

  • Price Import from the QR Menu

    Prices from the point-of-sale QR menu are matched to products in the panel, previewed and applied to the site in one step.

  • Multilingual SEO

    Each language at its own address (/en, /ru); hreflang tags, a dynamic sitemap with language variants and schema.org Restaurant data.

  • Spam-Protected Contact

    Layered bot protection with Cloudflare Turnstile, a form timing check and rate limiting.

  • Admin Panel

    Menu categories, dishes, images, options and blog posts are managed in one place.

Hard Problems I Solved

  1. 1

    Syncing Prices with the POS System

    I wrote an import flow that reads the point-of-sale QR menu and matches its rows to the dishes on the site: suggestions, manual matching, a preview and applying the changes in a single database transaction.

  2. 2

    Complying with the Alcohol Advertising Ban

    I reduced the alcoholic drink texts to plain product information as required by Law No. 4207, added an 18+ notice and protected the rule with an automated test.

  3. 3

    A Third Language While Live

    I added Russian while the site was live: 7 categories, 212 dishes, 594 option names, 10 FAQs and 10 blog posts. Missing translations fall back to English, so no page is ever empty.

Technologies

  • Laravel
  • PHP
  • PostgreSQL
  • Tailwind CSS
  • Vite
  • GitHub Actions

Related Services

Building a similar system? I can work with you from the architecture through to go-live.

Get in touch