Demo only - no appointment is created

Book a chair.

Pick a service, a barber if you have a favorite, and a time window. A real Iron & Rye would confirm by text or email within the hour. This page is a concierge demo, so submitting the form acknowledges receipt without contacting the shop.

Demo only - no appointment is created

Book a chair

This is a demo. Submitting this form does not contact the shop and does not reserve a chair. No data is stored.

RampStack

Built by the RampStack trinity

How Iron & Rye Barbershop was built

The four-stage workup behind this local service booking 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

  • Local-service competitors bury the booking action below the fold or behind a third-party scheduler iframe that breaks the visual contract; the room's identity is gone the moment the booking UI loads.
  • Trust signals (years in business, license, review average, visible barber roster with faces) are routinely scattered across a footer, an about page, and an external review widget rather than aggregated above the fold where a first-time visitor decides.
  • Service menus are presented as flat lists without duration or price, forcing a phone call to qualify; this both blocks conversion and tells the visitor the shop is friction-tolerant.
  • Hours and address are present but rarely in a structured-data form a search engine can lift into the SERP, so the field forfeits map-pack and rich-result eligibility that costs nothing to ship.
  • The unspoken miss across the field: every booking flow assumes the visitor already knows which barber to choose. Putting a small, photographed barber roster above the booking CTA is the conversion lever the field leaves on the table.

Stage 02

Krine · positioning

Position
Booking-first chair shop. The room, the roster, and the soonest open slot are the home page; everything else is one click away.
Archetype
forge-fitness
Voice
Warm, plain-spoken, confident, unfussy

Stage 03

Tholo · build plan

home

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

services

  • information-architecture
  • frontend-component-build

book (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)

  • Title tag and meta description present on every page; one H1; semantic landmarks (header, main, footer).
  • JSON-LD LocalBusiness + HairSalon with address, hours, telephone-placeholder, and aggregateRating present on the home page.
  • Service menu shows duration and price per service; barber roster shows faces and specialties above the fold.
  • Booking action is the primary CTA on every page; demo modal is clearly labeled, no fake confirmation, no fake payment.
  • Hours, address, and license are aggregated in a single trust block above the fold, not scattered.

Fails(3)

  • Intentional noindex and nofollow on the demo build (correct for a demo, flagged against a production-ready standard).
  • Localhost-only artifacts: HTTP not HTTPS on the served URL; canonical declared to the production base, which differs from a localhost serving origin.
  • Image alt on barber portraits is generic rather than specialty-keyed (judgment item).

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).
  • Live map embed performance and third-party reviewer-widget impact (none in this build by design).