// simulateur pédagogique de bulletin de paye français et international · v0.1.8
VUE :
TRADUIRE EN
ACCESSIBILITÉ
Mode malvoyant
Zoom ×2
Mode dyslexie OpenDyslexic · lettres colorées
Mode noir & blanc
Mode dactylo
SAISIE SALARIÉ
Brut reconstitué :
Europe
+ autres pays
Amérique
Asie
Océanie
%
h
h
ans
Saisissez un salaire et cliquez sur [ CALCULER ] pour générer le bulletin
▶ Cliquez sur une ligne de cotisation pour afficher son explication historique et la référence légale
jnfavari@proton.me
// ce site ne collecte aucune donnée, par choix. mon hébergeur fait quelques stats mais à part ça… rien. même pas un p'tit cookie ;)
SAISIE
Brut reconstitué :
Europe
+ autres pays
Amérique
Asie
Océanie
%
h
h
ans
En attente de saisie...
jnfavari@proton.me
// ce site ne collecte aucune donnée, par choix. mon hébergeur fait quelques stats mais à part ça… rien. même pas un p'tit cookie ;)
Saisissez un salaire brut mensuel et une année, puis cliquez sur [ SIMULER L'ANNÉE ].
XENNA PAIE
Un simulateur de bulletin de paie français — pédagogique et open source.
Chaque cotisation est expliquée, datée, et rattachée à son texte de loi.
Transparent. Citoyen. Vérifiable.
HUMAN INPUT :
COMMENT C'EST CONSTRUIT
Rust
Langage système · édition 2021
Fiable par construction
Rust rend impossible la compilation de toute une classe de bugs :
pointeurs nuls, accès mémoire hors-limites, conflits d'accès concurrents.
Pas de ramasse-miettes = zéro pause aléatoire.
Un bulletin complet se calcule en quelques microsecondes.
rust_decimal
Arithmétique décimale exacte
Les centimes comptent
En virgule flottante IEEE 754, 0.1 + 0.2 ≠ 0.3.
Sur des cotisations à quatre décimales, ces erreurs s'accumulent ligne après ligne. Tous les montants sont en Decimal exact.
Les taux sont stockés en texte en base — jamais convertis en nombre flottant.
SQLite
Base embarquée · migrations versionnées
La base voyage avec l'app
Aucun serveur à installer. Les taux, SMIC et plafonds sont versionnés par date :
chaque simulation est reproductible depuis 2015.
Des triggers empêchent les chevauchements de périodes à l'écriture.
Tauri 2
Application desktop · macOS / Windows / Linux
5 MB au lieu de 200 MB
Electron embarque un navigateur complet dans chaque app.
Tauri utilise la WebView native du système d'exploitation.
Le même moteur Rust alimente l'app desktop et le site web — zéro code dupliqué.
Axum
Serveur HTTP · déploiement Railway
Le moteur ignore qu'il est sur le web
Le moteur de calcul est une bibliothèque pure sans dépendance au transport.
Axum est juste un adaptateur : il prend une requête HTTP, appelle la lib, retourne le JSON. POST /api/calculer_bulletin — déjà disponible.
Vanilla JS
ES Modules · Vite · zéro framework UI
L'intelligence est dans le backend
Le JavaScript n'est que de la présentation — pas de React, pas de Vue.
Bundle < 15 KB. Lisible par n'importe quel développeur.
Pas de breaking change de framework à gérer dans dix ans.
PRINCIPES
· Zéro constante hardcodée : tous les taux, plafonds et paramètres Fillon
sont en base de données, chargés selon la date de simulation.
· Chaque cotisation cite son texte : ANI, LFSS, décret —
avec les partenaires sociaux signataires quand ils existent.
· Fillon annualisé avec régularisation mensuelle —
conforme à la méthode légale de régularisation progressive.
· Le moteur est une bibliothèque pure : aucune dépendance à Tauri ni à Axum.
Il peut tourner en CLI, en WASM, sur mobile — sans modification.
CE QUE CE PROJET PEUT DEVENIR
API publique
POST /api/calculer_bulletin — déjà actif
Interopérabilité
Le moteur est déjà exposé via HTTP. La prochaine étape : documentation publique,
versioning sémantique, SDKs.
N'importe quel SIRH, outil RH ou script pourrait calculer un bulletin
sans embarquer son propre moteur — en appelant simplement une route.
Codes DSN
Nomenclature NEODES · déjà en base
Interopérabilité déclarative
Chaque cotisation est déjà associée à son code S21.G00.
La prochaine étape : générer un bloc DSN valide depuis un bulletin simulé,
pour une intégration directe dans les outils de déclaration sociale.
Tests de non-régression
Zéro suite de tests automatisés aujourd'hui
Fiabilité
Chaque évolution de SMIC, de taux AGIRC-ARRCO ou de barème Fillon
doit être testée sur des bulletins de référence connus.
L'objectif : valider chaque migration de taux par comparaison avec des bulletins réels.
Cas complexes
Aujourd'hui : CDI temps plein, entrée 1er du mois
Robustesse
Temps partiel, entrées/sorties en cours de mois, absences non rémunérées,
congé maternité, CDD, mois atypiques.
Chaque cas exige une règle de prorata et un traitement Fillon spécifique.
Conventions collectives
Aujourd'hui : droit commun + Alsace-Moselle
Adaptabilité
Chaque CCN peut imposer des taux de prévoyance, de mutuelle ou des cotisations propres.
L'architecture base de données est prête à accueillir des jeux de taux
par convention — la structure est là, les données restent à alimenter.
Données personnelles
Aujourd'hui : aucune donnée nominative stockée
Sécurité
Xenna ne connaît que Prénom, Nom, Brut — jamais de NIR, jamais de données de santé.
Un futur module nominatif exigerait authentification, chiffrement au repos
et conformité RGPD complète.
LICENCE GPL-3.0 — LE CODE QUI SE PROPAGE
La GPL (General Public License v3) est une licence copyleft — l'inverse du copyright.
Au lieu de restreindre l'usage, elle impose le partage.
LES 4 LIBERTÉS GARANTIES
Utiliser pour n'importe quel usageÉtudier le code source librementRedistribuer des copiesModifier et redistribuer les modifications
La clause virale. Si tu intègres du code GPL dans ton projet
et que tu distribues le résultat, ton projet entier doit aussi devenir GPL.
C'est ce qu'on appelle la "contamination" — ou plus précisément, le copyleft fort.
Ce que ça protège. Quiconque distribue une version modifiée
doit en publier le code source sous GPL-3.0.
Le partage est une condition d'entrée — pas une option.
Ce que ça permet. Tout gestionnaire de paie peut lire le code,
comprendre chaque calcul, adapter le moteur à sa convention collective,
le faire tourner en local. La connaissance est libre.
La seule contrepartie : ne pas la fermer derrière une porte en sortant.
// En pratique
Utiliser Xenna Paie pour apprendre, tester, comprendre — libre et sans contrainte.
Intégrer le code dans un logiciel distribué à des tiers déclenche les obligations GPL-3.0.
MODÈLE ÉCONOMIQUE
Le moteur de calcul open source restera libre.
Maintenir les données légales, héberger le service et développer des fonctionnalités avancées
a un coût réel. Certains modules seront à terme distribués sous licence commerciale —
une pratique courante dans l'écosystème open source appelée double licence ou open core.
LES GRANDES FAMILLES DE LICENCES
MIT · Apache 2.0
Permissif — liberté totale
Usage
Fais ce que tu veux : utilise, modifie, revends, ferme le code.
La seule obligation est de conserver la mention de copyright d'origine. Exemples : React, VS Code, Kubernetes, Swift.
LGPL
Copyleft faible — bibliothèques
Usage
Conçu pour les bibliothèques : tu peux l'utiliser dans un logiciel propriétaire
via liaison dynamique sans ouvrir ton propre code. Exemples : Qt, FFmpeg, GNU libc.
AGPL-3.0
Copyleft réseau — SaaS inclus
Usage
Extension de la GPL : si tu offres le logiciel comme service en ligne,
tu dois quand même publier ton code source. Ferme la porte de l'hébergement cloud opaque. Exemples : Nextcloud, Mastodon.
BSL · SSPL
Source visible, commercialisation restreinte
Usage
Le code est lisible mais la commercialisation est restreinte pendant N années,
après quoi il bascule en open source.
La SSPL couvre même les couches d'infrastructure qui hébergent le logiciel. Exemples : MariaDB, HashiCorp Vault, MongoDB v4+.
Double licence
GPL + licence commerciale en parallèle
Modèle
Le même code est distribué sous deux licences simultanées : GPL pour la communauté,
licence commerciale pour ceux qui veulent intégrer sans obligations copyleft. Exemples : Qt, MySQL, Ghostscript.
Open Core
Noyau libre + modules commerciaux
Modèle
Le cœur du produit est open source. Les fonctionnalités avancées
(haute disponibilité, intégrations entreprise, support dédié) sont vendues séparément. Exemples : GitLab, Elastic, Keycloak.
CARNET DE BORD
Le journal de bord du projet — au fil des frappes.
jnfavari@proton.me
Gaabrielle - module de gestion du personnel
Matricule
Nom
Prénom
Date d'embauche
Date de naissance
Poste
ETP
Taux de travailleurs handicapés (RQTH)
Répartition des rémunérations
🔒 cliquez sur € (ou choisissez une base de rémunération) pour révéler la dispersion
Pyramide des âges// effectif par tranche de 5 ans
// Hercuule — Module Comptabilité · Journal de paie · Plan comptable
... et sans Hercule
// MODULE COMPTABILITÉ — APERÇU
Grand livre · Journal · Balance
Rapprochement bancaire · Clôture
Calculez d'abord un bulletin France secteur privé pour accéder au journal de paie.
Écriture 1 — Constatation de la rémunération
Sens
Compte
Libellé
Débit
Crédit
Écriture 2 — Charges patronales
Sens
Compte
Libellé
Débit
Crédit
Plan comptable — comptes mobilisés
Compte
Libellé PCG
Catégorie
Débit
Crédit
Virements — Organismes collecteurs
QUIZZ PAIE0 / 0
Q.01
…
0.0s
// 1 bonne réponse parmi 4
🏆 CLASSEMENT — FRANCE
Votre score : —
chargement…
// Proposer une question
// Questions proposées par la communauté — FRANCE
chargement…
// Mécénat · Soutenir Xenna
/□
Xenna est un projet open source et libre. Si il vous est utile,
vous pouvez soutenir son développement sur Tipeee.