All work

Staged launch · Experiences page

Kyma West Palm Beach

Kyma's West Palm Beach experiences page went from a single design export to a staged, pixel-faithful launch build with a working newsletter signup.

Client
Kyma Restaurants
Sector
Greek fine dining · Restaurant group
Delivered
2026
Visit staged launch
Kyma West Palm Beach live project homepage

The engagement

Kyma is a Greek restaurant group; its West Palm Beach location on Olive Avenue hosts Sunday brunch on the Tarrazza, weekend DJ sets, private dining rooms and full buyouts. The approved Experiences & Events page presents all of it on one long page: the four experiences, the October and November DJ lineup, the private spaces, menus, reservations through SevenRooms, an Instagram strip and a newsletter signup. This staged build runs on a Euphemios subdomain while the client wires its own domain; the restaurant's current pages remain on kymarestaurants.com.

01

The challenge

The design arrived as one self-unpacking HTML export of 18.5 MB carrying 37 embedded assets, including a 10.6 MB hero video, fifteen web fonts, a WebGL water shader and the React runtime. It had to be served exactly as designed, work on a phone, make no third-party requests, and turn a signup form that only simulated success into a real backend the restaurant could act on, all without a client Google account or domain being available yet.

02

The approach

We built a deterministic pipeline that unpacks the export into a static site with every asset self-hosted under immutable cache headers. Changes to the design are exact-string patches with required occurrence counts, so a re-export that moves a line fails the build instead of silently dropping a fix: local hero-video fallbacks, hash-free section navigation, and a signup that validates, posts once and shows the design's own thank-you state only after the backend confirms. The backend is a Google Apps Script web app writing to a Sheet with a honeypot, server-side validation, a rejected tab, a delivery log and a daily digest. The gate proves the result: build determinism, a static contract, copy checks, a render gate at 1440, 390 and 360 pixels including the menu, the empty-submit negative case and the backend-failure path, and a pixel-parity gate that compares the build against the raw export at eight scroll offsets.

0.07%worst-frame pixel mismatch vs the design export
37embedded assets unpacked and self-hosted
0third-party requests on page load

03

Scope of work

  • Deterministic unpack of the Claude Design export into a static, self-hosted single-page site
  • Exact-string template patches with required occurrence counts (video fallbacks, live signup, copy correction)
  • Hash-free section navigation and clean URLs from the first deploy
  • Newsletter signup backend: Google Apps Script web app, Sheet with Subscribers, Rejected and Delivery-log tabs, alert email and daily digest
  • Five-section local gate including pixel parity against the design export and render checks at three viewports
  • Vercel deployment on the Euphemios team with a Cloudflare DNS-only subdomain

04

What we delivered

  • The Experiences & Events page staged at kymawestpalmbeach.euphemios.com, pixel-faithful to the approved export on desktop and verified at 390 and 360 pixels
  • A committed build pipeline (source export, overrides, build script) so a re-export rebuilds the site in one command
  • A live newsletter signup writing to a Google Sheet with alert emails, proven end to end with a real submission from the deployed page
  • Favicons, Open Graph image and metadata derived from the export's own mark and hero frame
  • A handoff runbook for moving the signup backend under the client's Google account and cutting over to the client's domain

05

The result

  1. 01

    The approved design is live on a staging subdomain, measured against the export at 0.07 percent worst-frame pixel mismatch rather than judged by eye.

  2. 02

    The page makes zero requests to third-party hosts: fonts, React, the hero video and every photo are served from the site itself.

  3. 03

    The signup form, which the export only simulated, now records subscribers in a Sheet and notifies the team, with bot submissions kept out of the list.

  4. 04

    A re-export from the design tool rebuilds the site in one command, with every intentional change guarded by a hard-failing patch count.

Built with