A 100% offline museum app in 7 languages: the technical behind-the-scenes

A museum kiosk that crashes because the wifi dropped is every cultural venue's nightmare. For the Petit Musée du Vin in Lyon, reliability wasn't optional: the application had to run no matter what, connection or not. Here are the technical choices that make that possible — explained without jargon.
The principle: "offline-first"
"Offline-first" means the application is designed to work without internet by default, with connectivity being merely a bonus. Concretely, everything the experience needs — text, images, animations, games — is stored locally on the device. No network call is required for a visitor to go through a module.
Technically, we packaged the experience as a desktop application (built with Electron and React) installed directly on the museum's tablets, with content and configuration stored locally. The result: since opening, zero downtime, including without a connection.
The 7-language challenge
The museum welcomes tourists from around the world: the app is available in 7 languages (French, English, Spanish, German, Italian, Portuguese, Dutch). Handling several languages isn't just "translating sentences." It's a genuine layout puzzle:
- German text is often 30–40% longer than its French equivalent — a button that's perfect in French overflows in German.
- Each language has its own rhythm, compound words and typographic rules.
Our answer: flexible interface components, with adaptive spacing and text containers that adjust to the real length. Each module was tested in all 7 languages during design, not afterwards. The interface stays readable and balanced whatever the chosen language.
Independence without a developer: "edit mode"
This was a strong requirement from the museum: being able to change content without calling us. So we built an edit mode into the app — a form of embedded CMS. Staff edit text, images and videos directly, and changes are applied locally, without redeployment.
This architectural choice has a direct business consequence: no more invoices for a comma change. The museum owns its content day to day.
Measuring without breaking anything
Late in the project, the museum wanted usage statistics. Adding measurement to an already-developed app is a delicate exercise: the risk is introducing regressions or delaying the opening.
We opted for a minimal, targeted integration: instrumenting only the actions that matter (module views, completions, quizzes, language choice, navigation). The measurement system was operational on opening day, with no impact on the schedule or stability. That same data now feeds the museum's decision dashboard.
What this architecture guarantees
In one sentence: a fast, reliable and controllable experience.
- Reliable: works without internet, zero downtime since opening.
- International: 7 languages handled cleanly, layout included.
- Independent: the team keeps its content alive on its own.
- Steerable: real data to decide what to improve.
These are the same principles — robustness, client independence, measurement — that we apply to every project, from a showcase site to a bespoke business tool.
More in this series on Le Petit Musée du Vin:
Have a similar project?
Let's talk it over in 15 minutes. No sales pitch, just a technical chat.
