Adam Turetsky
Restaurant Website & Internal Tools · 2026

Wine Room

A restaurant site, staff tool, and iPad kiosk for a Delray Beach wine bar — three products on one data pipeline, built solo, plus a membership club platform.

DesignedBuilt
Wine Room cover
Overview

The Wine Room is a wine bar, kitchen, and self-pour wine wall in Delray Beach — 180+ wines on tap through 26 Enomatic machines, paired with a $29/month wine club. The main site serves three audiences off one shared data pipeline: the public, restaurant staff, and in-restaurant guests on a kiosk. A separate club site handles membership.

The Problem

The restaurant's full wine list (900+ bottles) and event calendar change constantly and are managed by staff in a spreadsheet and a Linktree page, not a CMS — any site requiring manual re-entry for either would be stale within days. On top of that, the club needed its own dedicated site to convert visitors into $29/month members.

The Idea

Treat the restaurant's existing spreadsheet and Linktree page as the live source of truth, and build every surface — public site, staff tool, guest kiosk — as a view over that same data instead of duplicating content three times. Keep the membership club as its own focused, separate site.

Strategy

Built page by page over ~330 shipped changes across three months, extracting shared filtering/sorting logic into hooks as soon as a second surface needed the same data, so the public site, staff tool, and kiosk can't drift out of sync with each other.

Execution

Next.js 14 App Router site in TypeScript/Tailwind. A hand-rolled CSV parser fetches the live wine list from a published Google Sheet; a custom scraper parses Linktree's embedded data for live event listings (no official API exists for either). Three surfaces share this data: the public wine list and events pages, an internal staff-hub sales-reference tool with QR codes and per-event talking points, and a hidden, iPad-optimized kiosk with light/dark theming. Also built: a custom Canvas Breakout-style game as an Easter egg, structured data for SEO, and a Sharp-based image compression pipeline. Designed and built the separate club site on top of Joinit's membership and billing infrastructure.

Results

Both sites are live. The main site's wine list currently tracks 959 wines pulled live from the restaurant's own spreadsheet, across 16 public and internal routes, with 329 commits shipped over about three months of active iteration. The club site runs as the membership funnel.

180+

Wines on tap

959

Wines live-tracked

World record

Self-pour wall

329

Commits shipped

What I Actually Did

Directed the full build of both sites — setting product scope, verifying every business fact and menu/event detail against reality, making design and UX direction calls (including the homepage and the iPad kiosk's dark-mode UI), and QA'ing every feature against the live site before it shipped.

Tools / Technology
Next.jsReactTypeScriptTailwind CSSFramer MotionSharpVercelJoinit