Compta
Comptabilité locale, chiffrée et déterministe pour micro-entreprise
Les logiciels de comptabilité indépendante du marché sont des SaaS mensuels dont les données bancaires transitent par le cloud. Tech Fox a conçu Compta, une application de comptabilité 100 % locale pour micro-entrepreneur : un cœur métier Swift qui importe les relevés bancaires, catégorise les opérations de façon strictement déterministe et auditable, calcule les cotisations URSSAF et tient les registres légaux inaltérables ; le tout chiffré au repos et exposé par une interface web locale moderne servie par un serveur Swift embarqué. Aucun serveur distant, aucune donnée qui sort du Mac.
Contexte & problème résolu
Un micro-entrepreneur doit chaque mois ou trimestre suivre ce qu'il a encaissé et dépensé (perso et pro mélangés sur ses relevés), distinguer ce qui entre dans le chiffre d'affaires déclarable, calculer et provisionner ses cotisations URSSAF, tenir un livre des recettes légal et inaltérable conservé dix ans, et surveiller ses plafonds. Le marché français (Indy, Freebe, Abby, Tiime, Qonto…) répond par des SaaS mensuels dont la valeur repose sur l'agrégation bancaire : les données réelles transitent obligatoirement par le cloud d'un prestataire agréé. Pour une activité manipulant des données financières sensibles, Tech Fox a fait le choix inverse : tout reste sur la machine.
Contrainte-pivot identifiée dès la recherche : lire les comptes en direct via l'open banking (DSP2) exige en France un agrégateur agréé muni d'un certificat qualifié, inaccessible à un particulier, et la donnée transiterait forcément par le cloud. Le « 100 % local » ne peut donc porter que sur le stockage et le traitement. Réponse d'architecture : le cœur du produit est l'import de fichiers (relevés bancaires OFX et CSV), la catégorisation locale, le calcul URSSAF et les registres légaux ; la synchro « live » devient un module optionnel opt-in, clairement séparé et documenté comme hors du socle 100 % local.
Architecture : cœur Swift + interface web locale

Principe directeur : le cœur métier ne connaît ni le réseau ni l'UI. Tout ce qui touche à l'argent est calculé dans un cœur Swift pur, en type décimal exact, et couvert par des tests headless. Un package Swift multi-cibles sépare strictement le cœur métier, la persistance (SQLite via GRDB, chiffrée par SQLCipher), le serveur web local (Network.framework, sans dépendance HTTP externe) et les exécutables (serveur, fenêtre macOS native, outil en ligne de commande de validation).
L'interface est un front Next.js 16 / React 19 exporté en statique puis servi par le serveur Swift ; aucun runtime Node embarqué, aucun calcul comptable côté client. Le flux type va de l'import d'un relevé (parsing, conversion en décimal, déduplication) à la déclaration : toute opération arrive « à trier » (rien n'entre automatiquement dans le chiffre d'affaires), l'utilisateur transfère et qualifie manuellement, le moteur fiscal agrège par période, et les exports produisent le livre des recettes scellé et une synthèse URSSAF.
- Invariant non négociable : tout montant est un type décimal exact ; l'usage de flottants binaires est proscrit en comptabilité.
- Persistance durable : journalisation WAL, écriture synchrone complète, sauvegardes par copie atomique ; jamais de copie d'une base active.
- Trois itérations d'UI documentées (SwiftUI native, puis SPA vanilla locale, puis Next.js + shadcn/ui) sans jamais changer le moteur ni la base chiffrée.
Import, déduplication & catégorisation déterministe
Le piège central des relevés bancaires français est l'absence de standard : chaque banque impose son séparateur, sa décimale, son encodage, ses colonnes et parfois des libellés multi-lignes. Un lecteur maison conforme au format RFC 4180 gère les guillemets et les retours à la ligne internes aux champs, avec des profils par banque et un mapping des colonnes par nom. La déduplication s'appuie d'abord sur la référence bancaire, complétée d'un index d'occurrence et d'un moteur de réconciliation floue strictement inter-sources (montant exact, fenêtre de dates, similarité de libellé) pour éviter aussi bien les doublons de ré-import que la fusion à tort de deux opérations légitimement identiques.
Contrainte légale absolue posée par Tech Fox : aucun modèle de classement automatique n'est autorisé à qualifier une écriture comptable. L'application propose, l'humain valide. La cascade de catégorisation est déterministe et auditable ; catégorie fournie par la banque (suggestion informative), puis règles transparentes et rejouables définies par l'utilisateur, puis décision manuelle qui fait foi. Un assistant d'aide au classement, strictement cantonné à l'onglet personnel et opt-in, est bordé de trois verrous inscrits dans le code (perso uniquement, écriture de la seule catégorie, vocabulaire fermé) et n'applique jamais rien sans validation humaine explicite.
Moteur fiscal, registres légaux & sécurité
Le moteur fiscal est 100 % déterministe : chiffre d'affaires sur principe d'encaissement, agrégé par période, uniquement sur les recettes transférées en entreprise et qualifiées manuellement. Les paramètres sont datés par année et par activité, jamais codés en dur ; un invariant strict qui couvre les taux de cotisation, l'ACRE dégressive et l'option de versement libératoire. Le risque juridique n°1 (débours contre refacturation) est traité par une checklist des conditions cumulatives : au moindre doute, la recette est classée en chiffre d'affaires à déclarer. Un calendrier de déclaration matérialise les échéances, y compris les périodes sans encaissement (déclaration à zéro obligatoire), et surveille plafonds micro et seuils de franchise de TVA.
Le livre des recettes reprend les colonnes officielles et est scellé par une chaîne de hachage SHA-256 ligne à ligne : toute altération a posteriori casse la chaîne et devient détectable, répondant à l'obligation d'inaltérabilité et de conservation dix ans. Les justificatifs sont stockés chiffrés dans la base. La base entière est chiffrée au repos et illisible sans la clé (vérifié : refusée par sqlite3 sans elle), la clé de chiffrement étant conservée dans un fichier local à permissions restreintes, le trousseau macOS étant réservé aux identifiants de la synchro bancaire optionnelle.
Résultats & compétences
Le socle métier est couvert par une soixantaine de tests Swift verts portant sur le parsing, les importateurs, la déduplication et la réconciliation, la catégorisation (dont l'absence de mutation comptable automatique), les récurrences, les périodes URSSAF, les exports et le scellement. Le front compile sans erreur TypeScript, avec une QA navigateur automatisée (zéro erreur console, responsive vérifié, mode sombre). Le moteur a été exécuté sur l'historique bancaire réel de la micro-entreprise avec validation humaine cas par cas ; les chiffres correspondants étant privés et volontairement exclus de cette fiche. La chaîne de bout en bout est vérifiée : application native signée, base chiffrée persistée, parité fonctionnelle entre le moteur Swift et l'interface.
Le projet démontre l'architecture logicielle (cœur métier pur, une seule source de vérité pour tous les calculs monétaires), le développement Swift 6 avancé, la maîtrise des bases de données et de la sécurité (SQLite/GRDB, SQLCipher, trousseau, migrations, sauvegardes durables), le front-end moderne (Next.js/React/Tailwind/shadcn) intégré à un back-end Swift, le parsing et l'ingestion de données, l'algorithmique déterministe (détection de récurrences, scellement par hachage), une réelle expertise de la fiscalité micro-entreprise et une rigueur privacy-by-design assumée.
Construisons-le.
Présentez le problème, même s'il est encore flou. On transforme le besoin en système clair.