← back to the council hall
Works of the council · portfolio piece the second

Bentonville Barbershop

a shopfront worthy of the chair — hours, craft, and character, set in type

live at www.candmbarbershop.net

The Trade, and the Need

A barbershop in Bentonville with loyal chairs and no front door on the internet. The owners needed a page their neighbors could find — hours, the craft, the booking — without a subscription, a site-builder bill, or a single thing they'd have to phone a stranger to change.

The ask, in club terms: build for the town first. The smallest honest surface that makes the phone ring.

Built With

Languages & core
  • HTML & CSS — hand-set static pages; no framework, no build step, nothing to break
  • Python tooling — a photo-conversion script for the shop's own pictures, and a scripted axe accessibility audit run against the pages
  • Booking flow — a dedicated page that puts the chair one click away
Platform & delivery
  • Cloudflare Pages — headers and caching configured in the repo (_headers)
  • GitHub Pages preview — the owners watched the site grow before it went live
  • Owner's guide — a written walkthrough so the shop can serve itself

The End-to-End Pipeline

how Spruce Grove OS carried it from a conversation to a live door

  1. The owners were heard first. Charles and Marie's perspective set the spec: a page they could read like a menu, change like a chalkboard, and afford like a haircut.
  2. The agent built the surface. Sessions of the grove set the pages in type, wired the booking flow, and kept the whole thing static — the architecture a barbershop actually needs.
  3. Accessibility was scripted, not wished for. An axe audit runs against the pages as tooling in the repo — contrast, labels, landmarks — because a shopfront that excludes neighbors fails the trade.
  4. Pictures were processed, not pasted. A conversion script turned the shop's own photos (iPhone stereo dumps included) into web-ready assets.
  5. Preview, then door. The owners reviewed on a Pages preview; the custom domain went live with headers configured from the repository.
  6. It was left better. The owner's guide means the next change is theirs to make — the pipeline taught the shop to fish.

Why It Holds

Stable
  • Static pages: no server to patch, no database to lose, no plugins to expire
  • Hosting configuration lives in the repo — the site is reproducible from a folder
Secure & applicable
  • No forms, no stored data, no attack surface beyond the page itself
  • Scripted accessibility checks keep the door open to every neighbor
  • The pattern — listen, build static, audit, hand over a guide — fits any shop on any street
Every party's perspective was in the room before the build: the owners' budget and pride, the customers' thumbs and eyes, the town's search habits. Convey them all and the smallest site holds like a well-set chair.