← ShowcasePhở HeightsHospitality + food / pass-finedining
See how it was builtView other demos
Edge-to-edge overhead photograph of a single bowl of phở on dark linen

Phở Heights · Mott Street · Est. 2022

The broth, slow. The bowl, complete.

A phở house in NoLita. Twenty-four-hour bone broth, free-range chicken, hand-cut noodles. Chef-partner Linh Trần keeps the kitchen.

Demo only - no reservation is created

Reserve a table

This is a demo. Submitting this form does not contact the restaurant. No table is held and no data is stored.

See the menu
Hours tonight
5:30 - 10pm
Cuisine
Vietnamese
Reservations
On-site

From the chef

The broth is the building.

I learned to make phở the way my aunt did, in Đà Lạt: long, quiet, in a pot the size of a chair. We start the bones at 7am the day before service. By dinner the next night the broth has done what it does.

Everything else on the menu earns its place against the broth. If a dish does not sharpen the bowl that follows or quiet the palate before it, it does not go on. That is the only rule.

- Linh Trần, chef-partner

Close, overhead photograph of a single dish at Phở Heights on dark linen, garnish and steam visible

Signatures

Full menu
  • Editorial food photograph of Phở bò, on dark linen in warm low light: Twenty-four-hour beef broth, brisket, eye round, ribeye. The house bowl.

    Phở bòSignature

    Twenty-four-hour beef broth, brisket, eye round, ribeye. The house bowl.

    $24

  • Editorial food photograph of Summer rolls, on dark linen in warm low light: Cold rice paper, butter lettuce, mint, basil, vermicelli. Peanut sauce on the side.

    Summer rolls

    Cold rice paper, butter lettuce, mint, basil, vermicelli. Peanut sauce on the side.

    $12

  • Editorial food photograph of Crispy spring rolls, on dark linen in warm low light: Pork and wood-ear mushroom, fried until shattering. Nuoc cham.

    Crispy spring rolls

    Pork and wood-ear mushroom, fried until shattering. Nuoc cham.

    $14

  • Editorial food photograph of Smoked aubergine, on dark linen in warm low light: Charred until silken, scallion oil, fried shallot, mam tom on request.

    Smoked aubergine

    Charred until silken, scallion oil, fried shallot, mam tom on request.

    $13

Press

The broth alone justifies the trip. Phở Heights is making phở into a destination dish.

Pattern-level press pull-quote (demo)

Visit

238 Mott Street

New York, NY 10012

(Demo address)

Directions, parking, transit →

Hours

Tuesday-Thursday
5:30pm - 10:00pm
Friday-Saturday
5:00pm - 11:00pm
Sunday
11:30am - 9:00pm (brunch + dinner)
Monday
Closed

Take a seat.

Reservations open three weeks out. Walk-ins welcome at the bar.

Demo only - no reservation is created

Reserve a table

This is a demo. Submitting this form does not contact the restaurant. No table is held and no data is stored.

RampStack

Built by the RampStack trinity

How Phở Heights was built

The four-stage workup behind this hospitality + food demo, summarized. Generalized and pattern-level; no named competitors. The full Format A spec and the verification log live in the operated-side run record.

Stage 01

Basano · competitor review

  • Hospitality-food sites bury the menu behind a PDF link or a modal that breaks mobile. A diner who cannot scan a price and a dish in three seconds bounces; the field's leaders treat the menu as the page, not a download.
  • Reservation actions are routed offsite to third-party widgets that destroy the visual contract. The site's identity dissolves the moment the booking iframe loads.
  • Single-dish photography is rare. The field defaults to either a tiled grid of every plate (loses focus) or stock food imagery (loses identity). Edge-to-edge dish-on-linen is the convention the leaders use and the field abandons.
  • Chef and provenance content (where the ingredients come from, who is in the kitchen) is missing or buried in an About page. The hospitality wedge of 'the room is the experience' lives in this content, not in a hero tagline.
  • Structured data is sparse: most restaurant sites carry no Restaurant or Menu schema, forfeiting rich-result eligibility in the search results where diners decide. The field-wide gap is in disciplined JSON-LD with hasMenu, servesCuisine, and acceptsReservations.
  • The unspoken miss across the field: the menu's narrative voice. Dishes are either marketed (adjective stack) or under-described (one-line ingredient list). A confident, ingredient-literate, third-person voice on the menu is the position competitors leave on the table.

Stage 02

Krine · positioning

Position
An elevated phở house. Menu is the page; the broth is the brand. Ingredient-literate, chef-perspective copy; edge-to-edge dish photography; reservations honored on-site, not punted offsite.
Archetype
pass-finedining
Voice
Warm, chef's-perspective, ingredient-literate, confident, unfussy

Stage 03

Tholo · build plan

home

  • landing-page-copy
  • information-architecture
  • frontend-component-build
  • seo-technical

menu

  • information-architecture
  • frontend-component-build

reservations (demo)

  • frontend-component-build
  • landing-page-copy

visit

  • seo-technical
  • frontend-component-build

workup

  • landing-page-copy
  • frontend-component-build

Stage 04

Basano · verification

Holds(5)

  • Lang attribute, meta description, and heading hierarchy hold on every page; one H1, semantic landmarks (header, main, footer).
  • JSON-LD Restaurant present on every page with hasMenu, servesCuisine, openingHoursSpecification, and aggregateRating; the structured-data spine is correct.
  • Menu surfaced as the page (not a PDF link); name, description, and price visible per item; courses grouped.
  • Reservation flow is an on-site demo modal, clearly labeled; no offsite redirect to a third-party widget.
  • Edge-to-edge single-dish hero photograph; dark warm palette consistent with the pass-finedining register.

Fails(5)

  • Intentional noindex and nofollow on the demo build flagged across pages (correct for a demo, flagged against a production-ready standard).
  • Canonical URL declares the production rampstack.co host while the build is served from localhost during the audit; cross-origin canonical mismatch is the localhost-vs-production artefact, not a real defect.
  • Skip-navigation link is missing on every page; the audit reads this as an accessibility polish item, and it is a real one to fix in the next sweep.
  • Structured-data acceptsReservations field is encoded as a string 'True' rather than a boolean true; flagged as a schema.org best-practice item, simple fix.
  • Press pull-quote is a placeholder, not sourced from a real publication; a real build would carry one or more named-publication quotes.

Not assessable(3)

  • Core Web Vitals and page experience (no field data in a static fetch).
  • robots.txt and XML sitemap (single-page audit does not crawl).
  • Reservation backend integration (none in this build by design).