zsty.us

Before / After · Case Study

Restauracja EFES — a dated WordPress site to a 74-item ordering storefront

  • Restaurants

EFES is a Turkish restaurant that has fed Warsaw since 1994 across three locations — and its WordPress site showed its age everywhere a customer touched it. The rebuild is a Polish-first Next.js 15 storefront with the complete 74-item menu at real PLN prices (scraped and verified from the restaurant's own published pricing), a cart with pickup checkout (pay at pickup — no card rail forced onto a cash-friendly business), and a token-gated admin for orders. Live at restauracjaefes.oglife.app; cutover to restauracjaefes.pl is pending the client's sign-off on the 12,900 PLN quote.

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

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, real PLN prices, fully structured
  • 3 Warsaw locations, serving since 1994
  • Cart + pickup checkout (pay at pickup), token-gated order admin
  • Polish-first UI — built in the customer's language, not translated at them

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

Architecture

One chain replaced by another. Receipts above.

Old stack
  • WordPress theme
  • Static menu
  • Phone orders
New stack
  • Next.js 15
  • 74-item structured menu (real PLN)
  • Cart + pickup checkout
  • Token-gated admin
  • Railway Postgres

What changed

Grouped by what kind of system shipped.

Each claim ships with concrete evidence — env vars, table names, cadence chips. No marketing fluff.

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 — a dated WordPress site to a 74-item ordering storefront — zsty.us