Mercury : de Jupyter Notebook à une vraie app web en production
De Jupyter à une vraie appli web : l’histoire du framework Mercury
Le vrai problème avec les notebooks
Jupyter Notebooks sont parfaits pour explorer des données et tester des idées rapidement. Mais quand vient le moment de les partager avec des collègues non techniques ou de les transformer en outil utilisable, les choses se compliquent.
La plupart des solutions classiques obligent à tout réécrire en Flask ou FastAPI. Ou bien on se tourne vers Streamlit et on accepte ses contraintes. Sinon on reste sur un simple export HTML statique, sans aucune interaction possible.
Mercury propose une approche différente : il garde le notebook comme base et génère directement une application web utilisable en production.
Ce qui rend Mercury intéressant
Mercury n’est pas juste un convertisseur de notebook. Il est pensé pour les développeurs Python qui veulent rester dans leur langage tout au long du projet.
Voici ce qui le distingue :
- Aucun JavaScript : toute l’application s’écrit en Python. Mercury gère la partie web à votre place.
- Interactivité simple : sliders, boutons, champs de texte ou uploads de fichiers s’ajoutent directement en Python, sans code HTML ou CSS.
- Mise à jour instantanée : les modifications s’affichent en temps réel pendant le développement, sans redémarrage de serveur.
- Conçu pour la data : les visualisations s’affichent proprement et les DataFrames restent lisibles.
Cas d’usage concrets
Mercury convient particulièrement bien pour :
- Créer des dashboards interactifs en quelques heures pour des clients.
- Distribuer des outils d’analyse internes à une équipe sans monter une infrastructure web complète.
- Proposer des tutoriels ou des exercices interactifs aux étudiants.
- Transformer des rapports statiques en documents dynamiques où les lecteurs peuvent modifier les paramètres.
Comment ça marche
Mercury analyse la structure du notebook et transforme les cellules en composants web. Les cellules Markdown deviennent de la documentation, les cellules de code deviennent la logique métier, et les widgets deviennent des éléments interactifs.
Le framework fonctionne avec Matplotlib, Plotly, Altair et la plupart des librairies de visualisation Python courantes.
Déploiement et hébergement
Une fois l’application générée, on peut la déployer sur Heroku, AWS, DigitalOcean ou sur n’importe quel serveur VPS. Elle s’intègre aussi avec les systèmes d’authentification existants.
Chez NameOcean, les instances cloud permettent d’héberger ces applications tout en conservant le contrôle complet sur l’environnement.