Work / 2026

RevenantsBarbershop

A bilingual site for a four-chair barbershop, hand-written as one static page that ships in about 35 kB.

The Revenants Barbershop hero: “Ceux qui reviennent” set in Archivo over a low-lit portrait, with a booking button and the shop's Google rating
Client
Revenants Barbershop, Saint-Eustache
Year
2026
Services
Art direction, Web design, Front-end development, SEO
/01

The challenge

Revenants had four chairs, a five-star reputation across hundreds of Google reviews, and nowhere to send anyone. Bookings arrived as Instagram DMs and phone calls, which meant the shop was answering its phone mid-cut and losing the people who would not wait for a reply. Saint-Eustache is a French-speaking town with an English-speaking half, so the site had to work in both languages without turning into two sites — and it had to feel like the room it represents: low light, warm brass, leather, quiet.

/02

The approach

One page, hand-written. No framework, no CMS, no build step — a static HTML, CSS and JavaScript site that a barbershop can keep running for years without a dependency upgrade. The brand's script wordmark draws itself on once at load, then docks into the header and never performs again. Language is a single toggle that swaps every string in place and remembers the choice, so both audiences share one URL and one set of links. Booking bypasses the studio entirely: each of the four barbers gets a direct link into their own Square calendar, so choosing a chair and choosing a time is one decision instead of two.

/03

The outcome

The site went live at revenants.ca as a single static page that loads in roughly 35 kB of markup, styles and script. Every service, price, portrait and opening hour lives in the page itself, marked up as LocalBusiness structured data so the shop's address, hours and rating surface directly in search. The phone stopped being the booking system.

The room, translated

The brief was easier to feel than to write down: the shop is dark, warm and unhurried, and a bright, busy website would have misrepresented it before anyone read a word. So the page is built almost entirely out of black, bone and a single brass accent, with film grain and a vignette over the whole thing. Photography carries the weight — the type gets out of its way.

The “Le rituel” section: three tall photographs of the wash, the scissor work and the finishThe service menu, listing the classic cut, cut and beard, beard and line-up, hot towel shave and junior cut with prices
The ritual reel and the menu. Prices sit on the page rather than behind a booking flow, because the first question is always what it costs.
The “Les mains” section: four high-contrast portraits of the barbers James, Jad, Rick and Alessio

Four chairs, four links

People do not book a barbershop. They book a barber. Each of the four is photographed the same way, given the same amount of room, and linked straight into their own Square calendar — so the site's job ends at the moment the client has already chosen who is cutting their hair.

The booking page: “Choisissez votre barbier”, with the four barbers presented as selectable cards
The booking page is the only second page on the site, and it exists to ask one question.

Two languages, one page

Every translatable string carries its French and English text as data attributes, and the FR/EN toggle rewrites them in place before storing the preference. It keeps the shop on one URL with one canonical page to rank, and it means adding a service means writing it twice in one file rather than maintaining two parallel sites that drift apart by the second update.

The homepage on a phone: the headline and booking button stacked over the portraitThe service menu on a phone, with each service, price and description stacked full width
Most visits arrive from an Instagram bio on a phone, so the phone layout was drawn first and the desktop one grew out of it.
The “Les produits” section: the shop's own styling cream, matte clay, sea salt spray and shampoo shot on white
The retail line gets the one white section on an otherwise black site, so the packaging reads as product rather than atmosphere.
The “Passez nous voir” section: address, phone number and opening hours beside a photograph of the shop floor

Found before it is clicked

Address, phone number and every opening hour are written into the page and mirrored in LocalBusiness structured data, alongside the shop's rating and review count. For a business whose customers search the name of their town and the word barbier, the search result is the first page of the site — so it was designed like one.

The “Le travail” gallery: a grid of finished cuts and work in progress at the shop
The gallery is the shop's own work, curated down until every frame earns its place in the grid.
35 kB
of HTML, CSS and JavaScript on first load
0
frameworks, plugins or build steps to maintain
2
languages sharing one URL and one canonical page
4
barbers, each with a direct link into their own calendar

Want one of these of your own?

Let's makeit real.

Start a project