Stage 1 - Basano: the field's misses
Generalized pattern-level findings. No named competitors.
- 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 2 - Krine: position and register
- 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 3 - Tholo: pages and skills
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 5 - Basano: the built result
Honest verdict on the microsite as built.
Holds
- 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
- 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
- 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).