Nova Home Care is a fictional cleaning company in Cotonou. The brief was a complete small-business site, not just a landing page — eight pages, bilingual, with real prices, hours, and a guarantee a visitor could actually check, not placeholder text standing in for a business that doesn’t exist yet.
What makes it work
- French that works even if a script fails. It isn’t a script swapping words on the English page — it’s real, separate pages that work with JavaScript off, and that Google can actually find and rank on their own.
- Every fact matches, in both languages. Prices, guarantee terms, service area — the same real answer everywhere it appears, checked with an actual cross-language audit, not just translated and hoped for.
- Fake contact details that are still safe. An email that can never resolve to a real inbox, a phone number built from the one pattern telecom networks never assign to a real line — convincing without any risk of reaching anyone.
Design at a glance
- forest · #1E5245
- gold · #D89B4A
- cream · #FAF9F6
- ink · #16221F
- border · #DEE3DE
- Services & pricing — pending capture
- Gallery — pending capture
Built to last
- Fully self-hosted fonts — nothing loaded from Google at runtime
- Every page works with JavaScript switched off
- Consistent bilingual terminology, locked and checked page by page
- One placeholder left, and it’s disclosed: About-page team photos
For developers — the full technical breakdown
01. French as real pages, not a JavaScript toggle
- Problem
- Cotonou is Francophone, but the site also needed to work if JavaScript failed to load.
- Choice
- Seven real French pages, hand-translated, each linking to its exact English equivalent — not a script.
- Result
- French that works with JS off and is independently indexable — the same architecture I later chose for this studio’s own site.
02. A fictional business model, held to real consistency
- Problem
- Prices, hours, and a guarantee that contradict themselves between pages or languages break the illusion.
- Choice
- A fully specified business model — prices, discounts, guarantee, service area — documented once and reused everywhere.
- Result
- Every policy has the same real answer everywhere it appears, verified with a cross-language grep audit.
03. Fictional contact details, safe and still convincing
- Problem
- Contact info needs to look real without any risk of reaching an actual person.
- Choice
- Email on the
.exampleTLD (RFC 2606, can never resolve). Phone: an all-zero subscriber number. - Result
- Visually complete and realistic, while being genuinely, verifiably inert.
Accessibility & performance
- All JavaScript is progressive enhancement over a fully functional no-JS baseline
- Three font families self-hosted — zero Google Fonts requests at runtime
hreflangalternates connect every page to its translation, English markedx-default- Approved bilingual terminology locked in a glossary during QA, so terms translate identically everywhere
What I’d do differently
About-page team photography is still a visual placeholder — the project’s own README says so rather than hiding it. Every other page has a real, licensed photo; this is the one honest gap left.
Stack
- HTML5
- CSS3 (custom properties, Grid)
- Vanilla JavaScript
- Self-hosted variable fonts