Méthodologie : comment Facturus reste 100% local
Facturus promet que vos données de facturation ne quittent pas votre navigateur. C'est une affirmation forte, et un utilisateur prudent veut la vérifier — pas la croire sur parole. Cette page explique l'architecture technique exacte, ce qui sort vraiment de votre navigateur (et ce qui n'en sort jamais), et comment vous pouvez le constater vous-même en 30 secondes.
1. Architecture en un schéma
Trois précisions qui structurent l'ensemble :
- Le JavaScript de Facturus est servi statiquement par notre hébergeur (OVH) puis exécuté dans votre navigateur. Aucune logique applicative ne tourne sur un serveur Iris.
- Vos données vivent en mémoire pendant l'usage et sont persistées dans un fichier de votre choix (
.facturus) sur votre disque, ou un dossier synchronisé (Drive, Dropbox, NAS…). Nous ne connaissons ni l'emplacement ni le contenu. - Les trois ressources tierces (Google Fonts, Unpkg, dashboard Iris) ne transportent jamais de données de facture. Elles servent respectivement à charger une police d'affichage, la bibliothèque PDF, et — uniquement en cas d'erreur JS — un message d'erreur sans contexte applicatif.
2. Vérifiez vous-même en 30 secondes
La meilleure preuve n'est pas une capture d'écran (qui peut être falsifiée) — c'est ce que vous constatez dans votre propre navigateur. Voici la procédure :
- Ouvrez facturus.fr dans Chrome, Firefox, Edge ou Brave.
- Appuyez sur F12 (ou clic droit → Inspecter) pour ouvrir DevTools.
- Allez dans l'onglet Network (ou Réseau) et cochez Preserve log.
- Rechargez la page (Ctrl+R). Vous voyez le chargement initial : HTML + CSS + JS Facturus + Google Fonts. C'est normal.
- Videz le panneau Network (icône 🚫 ou Ctrl+L). Vous repartez d'un panneau vide.
- Créez ou modifiez une facture, ajoutez un client, changez votre profil. Tapez, sauvegardez, jouez avec.
- Regardez le panneau Network. Aucune nouvelle requête ne devrait apparaître tant que vous n'avez pas cliqué « Générer le PDF ».
- Cliquez « Générer le PDF » la première fois. Vous voyez une seule requête sortir : vers
unpkg.compour récupérer la bibliothèquepdf-lib. Aucune donnée de facture n'est envoyée — seul le téléchargement d'un fichier JS standard. - Re-générez un PDF d'une autre facture. Cette fois, aucune requête ne part : pdf-lib est déjà en cache navigateur, et tout le rendu se fait localement.
Vous venez de constater empiriquement ce que le schéma annonce : vos données ne transitent par aucun serveur applicatif. Ce que vous voyez dans DevTools = la totalité de ce qui sort de votre poste.
Note d'audit : si vous voulez un rapport plus complet, le code source sera publié en open-source (licence MIT) sur GitHub courant 2026 — voir section 4 ci-dessous.
3. Ce qui sort / ne sort pas de votre navigateur
Tableau honnête, sans ambiguïté :
| Sort de votre navigateur | Ne sort jamais |
|---|---|
Requête vers fonts.googleapis.com + fonts.gstatic.com au chargement de chaque page (police Inter). Votre IP est visible par Google le temps du téléchargement.
|
Votre profil émetteur : raison sociale, SIREN, adresse, IBAN, BIC. |
Requête vers unpkg.com (CDN Cloudflare) au premier clic Générer, pour télécharger pdf-lib (bibliothèque PDF). Votre IP est visible par Cloudflare le temps du téléchargement.
|
La liste de vos clients (raisons sociales, adresses, SIREN, contacts). |
Si une erreur JavaScript survient : un message d'erreur (texte du message + URL de la page) part vers dash.irisdigital.tech. Cela nous aide à corriger les bugs. Aucun champ de facture ni de profil n'est inclus.
|
Le contenu de vos factures : numéro, dates, lignes, montants HT/TVA/TTC. |
| Le HTML / CSS / JS de Facturus servi par OVH au chargement initial. Notre hébergeur voit donc votre IP — comme tout site web. | Les PDF Factur-X générés (ils restent dans votre navigateur, vous les téléchargez en local). |
Si vous voulez bloquer les chargements tiers, une extension type uBlock Origin ou Privacy Badger empêche complètement les requêtes vers Google et Cloudflare. Facturus continue de fonctionner : la police de remplacement est appliquée par votre OS, et pdf-lib peut être téléchargé manuellement et hébergé en local.
4. Code source ouvert
Le moyen ultime d'auditer une promesse de privacy est de lire le code. Le repo public iris-digital/facturus (licence MIT) sera publié sur GitHub au fil de la sortie 2026, conformément à la roadmap de la couche authority. Vous pourrez :
- Lire l'intégralité du JavaScript exécuté côté client
- Vérifier qu'aucun appel
fetch()ouXMLHttpRequestne pointe vers nos serveurs - Auto-héberger Facturus si vous voulez le contrôle total
- Proposer des contributions si vous identifiez une amélioration
En attendant la publication, le code servi par facturus.fr est lisible directement dans votre DevTools (onglet Sources) — non minifié pour cette raison précise.
FAQ technique
Pourquoi unpkg.com charge-t-il quelque chose ?
Pour charger pdf-lib, la bibliothèque qui assemble vos PDF Factur-X (PDF/A-3 + XML embarqué). Cette bibliothèque pèse environ 350 ko et serait inutile à charger pour les visiteurs qui ne génèrent pas de PDF. Elle est donc téléchargée au premier clic Générer, puis mise en cache navigateur. Les requêtes suivantes ne partent plus.
Le contenu téléchargé est uniquement du code JavaScript standard, sans aucune donnée applicative. Cloudflare (qui opère unpkg) voit votre IP le temps du téléchargement, comme n'importe quel CDN.
Une version V2 prévoit d'embarquer pdf-lib directement dans le bundle Facturus pour éliminer ce transfert.
Google Fonts est-il un tracker ?
Non au sens strict (pas de cookie, pas d'ID utilisateur). Mais Google Fonts est opéré par Google et reçoit votre IP à chaque chargement. Pour les utilisateurs sensibles à ce point (jurisprudence allemande de 2022 sur Google Fonts et RGPD), une version V2 prévoit de servir la police Inter en local. En attendant, vous pouvez bloquer Google Fonts via une extension : Facturus reste fonctionnel.
Que envoie error-reporter.js ?
Ce script intercepte les erreurs JavaScript non gérées et envoie au dashboard Iris un objet minimal :
- Le message de l'erreur (ex : "Cannot read property 'foo' of undefined")
- L'URL de la page où l'erreur s'est produite
- Le fichier JS et la ligne en cause
- La stack trace tronquée à 1024 caractères
Ne sont jamais envoyés : le contenu de vos formulaires, votre profil, vos clients, vos factures, votre IBAN, vos PDF générés. Le script n'a même pas accès à ces données — il observe uniquement les erreurs runtime du navigateur. Le code source de cette page-là est disponible ici pour audit immédiat.
Que stocke Facturus dans IndexedDB ?
Uniquement la référence technique (FileSystemFileHandle) vers votre fichier .facturus, pour pouvoir le rouvrir automatiquement à votre prochaine visite. Aucune donnée applicative (profil, clients, factures) n'est stockée dans IndexedDB. Le contenu réel reste dans votre fichier sur disque.
Pourquoi pas un mode self-hosted dès aujourd'hui ?
C'est techniquement possible (clonage du repo dès qu'il sera public, hébergement statique trivial). C'est une voie ouverte. La V1 hébergée sur facturus.fr reste utile pour la majorité des utilisateurs qui veulent simplement créer une facture sans installer quoi que ce soit.
Engagements de stabilité
Cette architecture privacy-first est structurelle, pas marketing. Trois engagements concrets :
- Aucun ajout de tracker, analytics, pixel ou cookie tiers ne sera jamais introduit. Si Facturus ajoute un jour un service cloud, ce sera une option opt-in séparée, jamais sur le tronc commun.
- Toute évolution qui modifierait la frontière "ce qui sort / ne sort pas" sera documentée ici dans les 30 jours, avec la date.
- Les ressources tierces actuelles (Google Fonts, unpkg) sont en cours d'internalisation : V2 prévoit un bundle 100% local.
Pour aller plus loin
- Politique de confidentialité complète (RGPD, données responsable, CNIL)
- Le format Factur-X expliqué simplement
- Guide complet de la réforme 2026