← All projects

Halo Hair

The website for my sister Amy's one-to-one hair salon in Chinnor, near Thame. I built it to replace her Wix subscription and I look after it for her, paid in free haircuts. It's quick on a phone, shows up in local search and makes it easy to get in touch.

Halo Hair homepage on desktop with a hair colour photo in an arched frame
Desktop, with real work up front.

The short version

page, doing one job
1
frameworks
0
phone sizes checked before each release
5

What it is

Halo Hair is my sister Amy's salon at home in Chinnor, seeing one client at a time. She was paying for a Wix subscription. Now she has a site I built and look after, and my fee is free haircuts. It has its own domain, and it's mostly photos of Amy's real work.

It's deliberately boring technology: one HTML page, one stylesheet and a little JavaScript. It loads fast on a phone.

What I had to steer

The salon is in Chinnor, and the easy win would have been to say Thame, because more people search for it. The site welcomes clients from Thame without ever claiming a Thame address, and the title, FAQs and business data all agree on that.

There are no prices online, because Amy quotes personally, and no invented reviews. The real reviews and booking link are still to come, and the site waits for them rather than faking them.

What I wired together

Static HTML, CSS and JavaScript on Vercel, with the domain on Namecheap. A Python script makes responsive WebP copies of every photo, respects EXIF rotation and strips the source metadata. Another script checks the site before release and again against the live domain afterwards. HairSalon structured data, Open Graph images, a sitemap and call and text buttons that stay within thumb reach on phones.

Where I pushed it

I did accessibility and phones properly. The menu works with Tab, Shift+Tab and Escape. The gallery opens with Enter and puts focus back where it came from. Every release is checked at 320, 390 and 430 pixels portrait plus two landscape sizes, with reduced motion and with JavaScript switched off.

The only thing left to maintain is the photos.

Live site

See it live.

halohair.design homepage
Small business site The live site. Scroll it and open the gallery.

The build log

Giving the salon its own site

Halo Hair is my sister Amy’s salon. She’s been cutting and colouring since 2020, and she was paying for a Wix subscription. Instagram does a lot, but it doesn’t show up when someone types “hairdresser near Thame” into Google. I wanted a site that matched the salon, got found locally and didn’t need a subscription. I build and maintain it for her, in return for free haircuts.

It’s one static page with no framework or build step: about Amy, services, a gallery of real client work, FAQs, booking and contact. Photos go through a script that makes responsive WebP copies and strips the metadata, so nobody’s phone location ends up on the website.

The fiddly part was local search. The salon is in Chinnor, but a lot of the searching happens for Thame. The site serves both without pretending to be somewhere it isn’t.

It’s live at halohair.design. The mobile release in October tightened the phone layout, the quick contact bar and the local search copy, and it passed every check on five phone sizes. Real reviews and the confirmed booking link go in when they exist.