zsty.us

Before / After · Case Study

Restauracja EFES — thirty years of Warsaw kebab, finally orderable online

  • Restaurants

A Turkish restaurant that has fed Warsaw from three locations since 1994 was stuck with a dated site that buried the menu and took orders only by phone. Now the complete 74-item menu is online at the real prices, customers order ahead for pickup and pay at the counter, and staff work incoming orders from a phone behind the counter.

Thirty years of kebab earned better than a 2012 WordPress theme — and the menu is the site, so the menu is data.
🔒restauracjaefes.oglife.app
jackiej.events — modern site

At a glance

What this rebuild covers.

  • Design

    The site is menu-first and written in Polish as its primary language — the customers' language — rather than an English template with a translation toggle bolted on.

  • Selling & payments

    All 74 dishes are browsable at their real prices and go into a cart that checks out as a pickup order paid at the counter — no forced card fees and no delivery-platform commission on a cash-friendly business.

  • App builds

    Incoming orders land in a private admin the staff can work straight from a phone behind the counter — no back-office computer required.

  • Security

    That order admin opens only with a private access key the owner can swap out in seconds — no staff accounts or passwords to manage or lose.

Receipts — measured

Numbers that moved.

0
Menu items structured with real prices
was 0
0
Locations served from one site
was 0
0 yrs
Years of trading the site finally reflects
was 0 yrs
  • 74-item menu online at real prices
  • 3 locations, one site
  • Phone-only orders → order-ahead pickup
  • Written in Polish, not translated at customers

The pixel diff

Overview, then the walkthrough.

Left: everything the legacy site shipped — frozen in place. Right: an auto-scrolling tour of the rebuild, from hero to booking. No slider to fight with.

Before — the overview
🔒restauracjaefes.pl
Before — the overview

This is everything the legacy site had to offer above the fold. No pricing, no calendar, no booking — the funnel ended at a mailto.

After — scroll through what shipped
🔒restauracjaefes.oglife.app
After — scroll through what shipped

Auto-scrolls through the modern site so you can see the booking surface, the package grid, the pricing table, and the calendar inline — without leaving this page.

The four beats

Problem · Insight · Build · Outcome.

Scroll past the legacy frame. The four beats land in order. At the end, the modern site fades into the same window.

🔒restauracjaefes.pl
Legacy
01 · Problem

A 30-year institution wearing a decade-old website.

Three Warsaw locations, loyal customers since 1994 — and a WordPress site that buried the menu, took no orders, and looked like the era it was built in. The restaurant's oldest asset (trust) was undermined by its newest one (the site).

02 · Insight

For a restaurant, the menu IS the product page.

Nobody visits a kebab site to read about values — they want the menu, the price, and how to get it. Structuring all 74 items as data with real prices makes the whole surface useful, and pickup-pay-at-counter keeps the business model exactly as it works today.

03 · Build

Scrape the real pricing, build the Polish-first storefront.

Menu and pricing scraped from the restaurant's own published materials and verified. Next.js 15 + Railway Postgres, cart + pickup checkout, token-gated admin, Vercel CLI deploys. Polish-first throughout.

04 · Outcome

Live on the staging domain; cutover rides the quote.

restauracjaefes.oglife.app is live and complete. The 12,900 PLN quote (plus monthly care) is with the client; on sign-off, restauracjaefes.pl points at the new stack and the WordPress era ends.

🔒restauracjaefes.oglife.app
Modern
For the technically curiousHow it was done
  1. 01

    Where it started

    EFES has fed Warsaw since 1994 across three locations, but its website was a decade-old WordPress theme that showed its age everywhere a customer touched it. The menu was trapped in static pages and PDFs that drifted from the till, there was no way to order online, and every order came in by phone. The restaurant's oldest asset — trust — was being undermined by its newest one.

  2. 02

    The insight

    For a restaurant, the menu IS the product page. Nobody visits a kebab site to read about values — they want the dish, the price, and how to get it. So the menu stopped being page layout and became data: every item a structured record with its real price, scraped and verified from the restaurant's own published pricing, driving browse, cart, and admin from one source of truth.

  3. 03

    The rebuild

    A hand-built, Polish-first storefront on our hosting platform with a managed database behind it. All 74 items are structured records at real prices. The cart checks out to a pickup order paid at the counter — no card processing forced onto a cash-friendly business, no delivery-platform commission. Orders land in a token-gated admin workable from a phone behind the counter; access is revoked by rotating the token, so there are no staff accounts to manage.

  4. 04

    What runs now

    The new site is live and complete end-to-end on a first-party staging address — menu, cart, pickup checkout, and order admin all working. The quote is with the owner; on sign-off, the restaurant's own domain points at the new build and the WordPress era ends. One DNS change stands between a 30-year institution and a site that finally reflects it.

Architecture

Old stack
  • WordPress theme
  • Static menu
  • Phone orders
New stack
  • modern web framework
  • 74-item structured menu (real PLN)
  • Cart + pickup checkout
  • Token-gated admin
  • managed app hosting

What changed, with evidence

Design

The menu is data, not a PDF

All 74 items live as structured records with real PLN prices scraped and verified from the restaurant's own published pricing — browsable, cartable, and updatable without touching a page layout. The legacy site's menu was the usual restaurant-web failure: static pages that drifted from reality.

Before
Menu trapped in static pages; prices drifted from the till.
After
74 structured items, one source of truth for browse + cart + admin.
Retention

Pickup checkout shaped to how a kebab house actually operates

The cart checks out to a pickup order paid at the counter — no forced card processing, no delivery-platform commission. Orders land in a token-gated admin the staff can work from a phone behind the counter.

  • Cart → pickup order flow, pay at pickup
  • Token-gated admin — no accounts to manage, revocable by rotating the token
Design

Polish-first, not translated-at

The UI is written in Polish as the primary language — the customer base's language — rather than an English site with a translation toggle bolted on. Copy, ordering flow, and admin all read natively.

← All rebuilds

Restauracja EFES — thirty years of Warsaw kebab, finally orderable online — zsty.us