Case study · Hair salon & day spa · Champaign, Illinois

The Egyptian Queen Salon & Spa: booking, retail, email, and search, replaced in one build

Services
Website design & architecture · Booking & commerce (StatikBase) · SEO & AI search · DNS & email migration · Care & stewardship
Stack
Astro · Cloudflare Pages · StatikBase · Stripe · Google Calendar API · Resend · Cloudflare Turnstile · Neon Postgres · Cloudflare R2 + Images
20products live with variants, stock, and Stripe checkout
$40phone-consultation deposit, booked and paid online
≈$0monthly hosting (was a managed WordPress plan)
0email interruptions through the DNS migration

The situation

The Egyptian Queen Salon & Spa is an owner-operated hair salon and day spa in Champaign, Illinois, known locally for curly-hair and blowout work and carrying a 4.9-star Google rating across several hundred reviews. Its website was a WordPress build (Elementor for layout, WooCommerce for a small shop, a booking plugin for appointments) on managed hosting, with the business email on Google Workspace.

The owner wanted three things at once: a site that matched the salon’s standard, a way for new clients to book a paid phone consultation before their first appointment, and a shop for the salon’s own line of hair and body oils. On the old stack each of those was a separate plugin with its own settings, its own failure modes, and its own monthly cost, and the site was slow enough to hurt.

What Hyrizen built

A static site with a bespoke design system. Every service page, the owner’s profile, visit and contact pages, reviews, and the shop are pre-rendered HTML on Cloudflare Pages. Fonts are self-hosted, images run through an image pipeline, and every page ships one connected schema graph.

The Egyptian Queen home page: a dark gold-on-brown design with the headline "Where beauty meets sophistication", a book-a-consultation button, and the salon's 4.9-star rating, 18 years of practice, and 99% satisfaction rate

Paid consultation booking, on StatikBase. New clients book a fifteen-minute phone consultation and pay a $40 deposit at booking. Availability is calculated from the salon’s hours and exceptions in the salon’s own timezone; a booking places a short hold, takes payment through Stripe on the salon’s connected account, and confirms, with the appointment pushed to the owner’s Google Calendar and her busy blocks closing the matching online slots so nothing double-books. Bot checks, hold caps, and a no-same-day rule came out of the first weeks of real bookings.

The consultation booking page on the live site: "$40 consultation fee, applied to your service when you book on the call", with a three-step flow and a calendar of available times pulled from the salon's real availability

A real shop. Twenty products with sizes as variants, stock, photos, shipping and pickup rates, and Stripe checkout; orders, refunds, and “they booked in the salon” outcomes handled from a phone-first dashboard. When the owner edits a price, the site rebuilds and redeploys itself within minutes.

The shop landing page for the salon's boutique oil collection, with complimentary salon pickup on every order, a shop-the-collection button, and a cart in the header

Email that kept working. The domain’s DNS moved to Cloudflare with the Google Workspace mail records carried across byte-for-byte. The migration surfaced a DKIM record that had been silently missing on the old zone (signing would have decayed at cutover without anyone noticing) and seven mail/FTP records that an importer had wrongly proxied. Both were fixed before the switch. Transactional email (booking and order confirmations) sends from a dedicated subdomain with SPF, DKIM, and DMARC set properly.

Search and AI visibility, engineered in. An entity register was researched and confirmed with the owner (name, address, phone, hours from Google Business Profile, coordinates, profile URLs); schema was rebuilt from that single source and bound to the live catalog so product data can never go stale; hours drive copy, schema, and the booking model from one constant. Deprecated FAQ markup came out; every heading got a stable fragment id; the redirect map from the WordPress URLs was written before cutover; and the build fails on broken links, schema regressions, weight budgets, or accessibility violations. Real reviews replaced placeholder text, quoted verbatim from the salon’s Google export with dates.

How it went live

The old site stayed up behind a maintenance curtain while DNS moved and the new site was rehearsed on a staging origin: real slots painted, canary bookings correctly refused at the bot wall, test orders through Stripe, confirmation emails delivered. Uptime monitoring and a booking end-to-end test procedure were in place before the switch. The first real booking arrived within days, and produced the owner-notification email and no-same-day rule that are now standard.

What it costs to run

Hosting is effectively free on Cloudflare. Stripe charges its per-transaction fee. StatikBase, monitoring, updates, and changes are covered by the care plan.

What we’d say to another owner-operator

Nothing here required a big team or a big budget; it required treating booking, shop, email, and search as one system instead of four subscriptions. That is the shape of every Hyrizen build.

← All client work