Case study 01 / Education
Français Lingua Voyage
An online French school run entirely through WhatsApp, with around 250 students taught offline and fifteen online. The question was never whether she needed a website. It was whether the site should sell French lessons, or sell the thing her students actually wanted, which was to leave the country.

- Role
- Brand, copy, build, deployment, handover
- Timeline
- September 2026
- Stack
- Next.js, TypeScript, Tailwind CSS v4, Cloudflare Pages
- Status
- Live, owned by the client
The problem
Elizabeth Chuks had a real teaching practice and no way for a stranger to find it or believe in it. Enrolment ran through WhatsApp, where she sent her personal account details, because the school was not yet registered and she could not open a company account. She had a degree in French, around 250 students taught across Nigerian schools, and fifteen online. Everything about the business was real. None of it was visible.
The harder problem was positioning. Most of her students were not learning French as a hobby. They were learning it in order to go abroad. But building the entire site around emigration would have shut out the general learners and working professionals who make up the rest of her intake.
The decisions
Lead with the goal, not the subject.
The site leads on what most of her students are actually trying to do, which is move to a French speaking country, while keeping the general and professional tracks visible rather than buried. Rejected: a generic "learn French online" positioning. That is what every competing site says, and it gives a visitor no reason to choose this one.
English primary, French as accent.
A fully bilingual site was considered and rejected. Her buyers are Nigerian and diaspora English speakers who do not yet speak French. A French language site would have been decoration that cost twice as much to maintain.
Add a USD tier alongside the naira pricing.
This was the call I was least confident about. The school had never had a single international student. Pricing in dollars for an audience that did not exist looked like wishful thinking. We added it anyway, on the argument that diaspora Nigerians searching in English were her most likely inbound, and that naira only pricing would anchor them far too low.

The International tab is the USD tier this decision added. The plan prices are cropped out here. Safeguarding built in, not bolted on.
A parent asked her to teach a teenage daughter partway through the build. Rather than treat that as an edge case, we added parent and guardian consent to the enrolment flow and wrote safeguarding commitments into the terms, the privacy policy and the FAQ. An online school teaching minors without any of that is carrying a liability it has not noticed, and most small tutoring sites are.
The client owns everything.
The site runs on a Cloudflare Pages project under her own account, with the domain in her name and a written handover document. She can move it, change it, or hire someone else tomorrow. Rejected: hosting it under my account and billing her annually. That would have been more profitable for me and worse for her.
What did not work
The founder photographs arrived twice, once as the original phone pictures and once as AI polished versions of the same shots. The polished set looked better in isolation and wrong on the page: too smooth, too even, visibly processed sitting next to real typography. We used the originals with a light grade instead. On a site whose entire job is making one person trustworthy, a photograph that looks retouched costs more credibility than the polish buys.
The email setup is also only half a solution. Cloudflare Email Routing forwards contact@francaislinguavoyage.com to her Gmail, so she receives everything, but her replies still go out from the Gmail address. That seam is visible to anyone paying attention. It is written into the handover document rather than quietly ignored.
The outcome
In the first 24 hours after launch the site recorded 213 unique visitors, from Nigeria, the United States, Germany, Canada and Poland. Enquiries and class registrations followed.
The five countries mattered more than the visitor count. The USD pricing tier was the decision I was least sure of, added for an audience that did not exist yet. It existed on day one.
Measured 18 September 2026 via PageSpeed Insights, mobile, emulated Moto G Power over slow 4G throttling:
| Performance | 96 |
|---|---|
| Accessibility | 100 |
| Best Practices | 100 |
| SEO | 100 |
| Agentic Browsing | 2 of 2 |
| First Contentful Paint | 0.9 s |
| Speed Index | 2.3 s |
| Total Blocking Time | 20 ms |
| Cumulative Layout Shift | 0 |
| Largest Contentful Paint | 2.7 s |
Largest Contentful Paint sits just above Google's 2.5 second threshold. That is the founder portrait in the hero, and it is the one remaining thing on this site I would improve.
The launch figures are launch day traffic driven by the client's own promotion, not organic search, and they are reported as such. Thirty and ninety day numbers will be added when they exist.
What I would do differently
Analytics went on at launch. It should have gone on the preview deployment a week earlier, so there was a baseline to measure the launch against instead of a spike with nothing behind it.
In the client's words
“I came into the project with a clear vision for my brand, and he took the time to understand not just what I wanted, but the story and purpose behind it... What stood out to me most was his professionalism, attention to detail, and willingness to listen. I never felt like I was just handing over a project; I felt involved throughout the entire process... It feels professional, intentional, and like a true reflection of my brand.”
