Phở Heights

The menu.

What we cook. The kitchen changes the small dishes a few times a year as the seasons turn. The bowls and the broths do not.

Starters

  • 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

Phở

  • 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 Phở gà, on dark linen in warm low light: Old-hen broth, poached free-range chicken, ginger oil, lime.

    Phở gà

    Old-hen broth, poached free-range chicken, ginger oil, lime.

    $22

  • Editorial food photograph of Phở chay, on dark linen in warm low light: Vegetarian broth from charred onion and toasted spice. King oyster mushroom, fried tofu.

    Phở chay

    Vegetarian broth from charred onion and toasted spice. King oyster mushroom, fried tofu.

    $21

  • Editorial food photograph of Phở đuôi, on dark linen in warm low light: Tail-and-bone-marrow bowl. Richer, slower. Available evenings only.

    Phở đuôi

    Tail-and-bone-marrow bowl. Richer, slower. Available evenings only.

    $28

Rice and noodles

  • Editorial food photograph of Cơm tấm, on dark linen in warm low light: Broken rice, grilled pork chop, fried egg, pickled vegetables, scallion oil.

    Cơm tấm

    Broken rice, grilled pork chop, fried egg, pickled vegetables, scallion oil.

    $22

  • Editorial food photograph of Bún chả, on dark linen in warm low light: Grilled pork patty and belly, warm dipping broth, vermicelli, herb plate.

    Bún chả

    Grilled pork patty and belly, warm dipping broth, vermicelli, herb plate.

    $23

Vegetables and herbs

  • Editorial food photograph of Stir-fried morning glory, on dark linen in warm low light: Garlic, fish sauce, a quick blistering wok. Side or share.

    Stir-fried morning glory

    Garlic, fish sauce, a quick blistering wok. Side or share.

    $11

  • Editorial food photograph of Herb plate, on dark linen in warm low light: Thai basil, sawtooth, perilla, mint, bean sprouts, lime, chili.

    Herb plate

    Thai basil, sawtooth, perilla, mint, bean sprouts, lime, chili.

    $6

Desserts

  • Editorial food photograph of Chè thái, on dark linen in warm low light: Tropical fruit, jelly, coconut milk over crushed ice.

    Chè thái

    Tropical fruit, jelly, coconut milk over crushed ice.

    $9

Drinks

  • Editorial food photograph of Cà phê sữa đá, on dark linen in warm low light: Vietnamese iced coffee, condensed milk, robusta from Đà Lạt.

    Cà phê sữa đá

    Vietnamese iced coffee, condensed milk, robusta from Đà Lạt.

    $7

  • Editorial food photograph of Salt-plum soda, on dark linen in warm low light: Pickled plum, soda, lime. The summer drink, all year.

    Salt-plum soda

    Pickled plum, soda, lime. The summer drink, all year.

    $6

Ready to come in? Reservations open three weeks out.

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.

Allergies and dietary requests are welcome at the time of reservation. The kitchen handles peanuts, fish sauce, and shellfish on most plates; please ask.

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).