Félix Boittinclivio.frFR
Clivio case study, part 2 of 5

The website

Most people meet Clivio on clivio.fr, long before they open the app. In October I rebuilt it from scratch, from one approved mockup, and it became the reference the app is measured against.

Visit clivio.fr

Pages
190 addresses in the sitemap: 73 pages in French, 50 in English, the published articles and 61 glossary terms
Free tools
15 in French, 12 of them in English too, all running in the browser, nothing uploaded
Content
44 blog articles, 38 of them scheduled until January; 89 changelog entries in each language; 35 films
Built
174 commits and 22 pull requests in six days, from 14 to 19 October 2026
Dependencies
Five at runtime: Next.js, React, React DOM, MDX and a YAML parser. The old site had 43
Lighthouse
99 performance, 100 accessibility, 100 best practices, 100 SEO, and 3 out of 3 for agentic navigation

Counted in the repository on 19 October 2026.

One binder, four readers

The home page opens on a stack of dividers, one per kind of reader. Each divider has its own promise and the documents filed behind it. Pick one.

Clivio, the binder that files itselfFor renters

Your lease answers for you.

Notice period, rent review, deposit: ask the question, and Clivio finds the clause and answers in one sentence.

Behind this divider

  • Scanned with the phoneResidential lease · 12 rue des LilasOne month’s notice, high-demand area
  • Received by email · PDFRent receipt · October 2026€1,040.00 excluding charges
  • Scanned with the phoneMove-in inventorySigned on March 1, 2024
The hero of clivio.fr, rebuilt on this page with the site’s own words, colours, typefaces and fictional documents. The arrow keys work too.

The binder isn’t decoration. Filing is what the product does, so the page is built like a binder: the sections under the hero are its tabs, and the last call to action is one more divider, labelled “To sort · 3”.

A new site in six days

The product had outgrown its first website.

The first website went up in July, in the same two-week sprint as the app: 86 pages, built to get Clivio online fast. By October the product had found its focus: two plans, a clear audience, e-invoicing at the centre. I reviewed the site line by line, the way I review a client’s, so that every sentence matched what the product does today.

Then I chose a new design over more patches. On 14 October the first commit of a new repository put 92 pages online at once, generated from the boards of the approved mockup, and that repository has been the source ever since. The same day, clivio.app was closed to search engines, and every page that has an equivalent on clivio.fr now redirects there. Four days later the home page moved to another board: the binder above.

The Features menu is a list on the left and a preview on the right. Hover a module and eight seconds of its film loop, cut from the same films as on these pages. The bottom line carries the latest entry of the changelog.

The Features menu of clivio.fr, open on Documents, with a film extract and the latest changelog entry
The Features menu on clivio.fr, open on Documents. Each extract is a silent MP4 of 160 to 460 KB; with reduced motion or data saving on, the poster stays still. Without JavaScript, the menus still open.

Free tools that keep the file

Fifteen free tools, and not one of them uploads your file.

E-invoicing is becoming mandatory in France, and the home page counts the days until businesses have to issue them, on 1 September 2027. People search for “how do I open this Factur-X invoice?” long before they look for a document vault. So the site answers that question with tools that work on the spot: read an e-invoice in plain language, extract its XML, turn it into a PDF, rename a folder of invoices, create a Factur-X invoice, check a SIREN or VAT number, work out VAT or late-payment penalties, write a notice letter.

The free tools page of clivio.fr: read an invoice, convert it to PDF, rename in bulk, processed on this device
The tools hub on clivio.fr/en, with the twelve tools that exist in English. “Processed on this device”, says the badge, and it’s true.
  • Factur-X, UBL and CII invoices are read in the browser. The XML hidden inside a PDF is pulled out with the browser’s own DecompressionStream, and the renamer hands back a ZIP written without a library.lib/facturx.ts, lib/pdf-embedded-xml.ts, lib/zip.ts
  • The invoice creator writes a PDF/A-3 with its factur-x.xml, to the EN 16931 profile: 1,295 lines, no dependency, amounts counted in cents, output checked with veraPDF and the official schematron.lib/facturx-writer.ts
  • The SIREN and VAT checker works out the check digits locally, then asks the public company register and VIES.lib/siren.ts, app/actions/vies.ts
  • Late-payment penalties follow the ECB rate and the legal interest rates, updated every six months.lib/penalties.ts, content/rates.ts

Written to be found

By people searching Google, and by the AI assistants they increasingly ask instead.

A guide, a glossary, a blog

A guide to the 2026 reform with fourteen pages in French, five of them for one profession each. A glossary of 61 terms, each on its own page. 44 articles in two languages: a scheduled one answers 404 until its date, Paris time, and is sent to Bing through IndexNow that morning.

Comparisons with sources

Five pages compare Clivio with Dext, Regate, Google Drive and Dropbox, Paperless-ngx, Pennylane and Indy. Every fact about a competitor links to its source.

The official list

The list of e-invoicing platforms accredited by the French tax authority (155, plus 11 pending) is copied from impots.gouv.fr with its date. Replace the data and the page recalculates its own figures.

Dates engines can trust

The sitemap gives each page the day its text last changed, not the build time. A script fails the check if a page shows one date and the sitemap another.

Made for AI assistants

/llms.txt presents Clivio and its key pages, /llms-full.txt carries the full articles, and the pages describe themselves in structured data: tools, terms, breadcrumbs.

Tools an agent can call

With WebMCP, an AI agent in Chrome sees seven functions: four of the tools, the FAQ search, the status page and the contact form. It gets data back, not a page. It can fill in the contact form, but a person sends it.

The e-invoicing guide of clivio.fr in a browser window, headed “A guide to the reform, dated and sourced”, with its update date
The e-invoicing guide, dated and marked up to date.
The blog of clivio.fr in a browser window, headed “A blog written to be found”, open on an article about credit notes
The blog: four dated articles, filtered by topic.

Measured like a client’s site

Tracking is my day job, so the site got the plan I’d write for a client.

Nothing loads before consent. The banner is home-made, with “Reject all” as prominent as “Accept all”, as the CNIL asks. Google Analytics 4 and Microsoft Clarity start only once the visitor accepts, and the choice travels with them to the app, measured as one journey across both domains. Links to the app say where the visitor came from (the page, the campaign, the referring site) without storing anything on the device. The conversions themselves are sent by the app, from the server, so a blocked script can’t lose a sign-up.

The tagging plan of clivio.fr, as it stands in the code on 19 October 2026.
EventFires whenParameters
cta_clickA link to the app is clickedapp page, plan or source
tool_usedA free tool gives its resulttool, success or error, sample or real file
video_start, video_completeA film starts, or plays to the endfilm
module_viewA feature tab is opened on the home pagemodule
pricing_toggleMonthly or yearly is picked on the pricingperiod
calculator_usedThe free-plan calculator is useddocuments per month
language_switchThe visitor switches between French and Englishlanguage
generate_leadThe contact form is sentform
ai_referralA visit comes from an AI assistant, once per visitassistant
sign_up, begin_checkout, trial_start, purchaseSent by the app’s server, not the browsersign-up method, plan, billing period

One event I had never needed for a client: ai_referral, for visits sent by ChatGPT, Perplexity, Gemini and four other assistants, recognised by their referrer.

The site sets the bar

Once the site was live, it became the reference for the app.

Every promise on clivio.fr became something to check in the app. On 17 October a run of commits made the code match the site, under one rule written in a commit message: clivio.fr is the reference. Since then it has gone both ways.

The plans
Free and Pro only. Pro+ is gone, and every Pro feature is locked the same way across the app.
The limits
25 MB for every format, the same document limit, the 90-day purge, and “VAT not applicable” on the invoices Stripe sends.
The words
“AI actions”, “dropzone page”, “plan”: the app now speaks the site’s vocabulary.
The colour
The site’s blue, #2155e8, replaced the violet as the app’s accent, then went onto the primary buttons and 81 hand-coded action buttons. Violet is now kept for the AI.
The help
The help window inside the app now answers with the site’s 56 questions.
And back again
The Factur-X creator, first written as a free tool for the site, became the app’s invoice issuing on 19 October.
Said plainly
Clivio isn’t an accredited e-invoicing platform, and both the site and the app say so. They also explain that between businesses, an invoice has to go through one.
The pricing page of clivio.fr in a browser window, headed “Pricing in plain words”: Free, Pro at €14.90 a month, and Team on a waiting list
The pricing page. The Team plan says plainly that it doesn’t exist yet.

In the green, everywhere

Lighthouse on the English home page, tested as a phone on 20 October 2026: fast, accessible, by the book, easy to find, and usable by AI agents.

  • 99Performance
  • 100Accessibility
  • 100Best practices
  • 100SEO
  • 3/3Agentic navigation

How it got there: the CSS inlined in the page, posters cut down to 768 pixels for phones, no polyfills, the italic font kept off the critical path, and the cookie banner drawn by the server. Agentic navigation is Lighthouse’s newest category: it checks that AI agents can use the page, and that’s where the WebMCP tools count.

On a phone

The dividers keep working on a small screen, with one-word labels on the tabs. The menu becomes a sheet where each menu opens as its own screen, tables turn into cards, and the breadcrumbs shrink to a single link back. There’s no sticky call-to-action bar either: it would have covered the text of 84 pages.

Under the hood

Small on purpose. A marketing site should be quick to load and quick to change.

  • Next.js 16 and React 19, with two root layouts: French at the root of clivio.fr, English under /en, each page with its twin.
  • No UI kit and no CSS framework. Each page has its own stylesheet, scoped with :where(), so a fix on the French page fixes the English one.
  • Two typefaces, Schibsted Grotesk and IBM Plex Mono, served by the site itself, with an Arial fallback reshaped to their metrics: on desktop, the jump while fonts load fell from 417 to 23 pixels.
  • No Firebase SDK: the contact form and the status page talk to Firestore over its REST API.
  • Five check scripts guard what’s easy to break: share titles, consent, dates, languages and the invoice tools.
  • The PageSpeed pass of 19 October took the largest paint on a phone (LCP) from 3.4 to 2.5 seconds.
The home page of clivio.fr on a phone, open on the Housing divider