Ariane
Le fil d'une maison ou d'une équipe, et son journal. Chaque projet est une pelote qui déroule ce qui compte maintenant : ce qui attend et pourquoi, ce qui est en cours, ce qui tombe bientôt. Un journal d'opérations qui converge hors ligne, un cœur Rust partagé avec le navigateur en wasm, et une phrase, tapée ou dite, qu'un petit modèle local pose en cartes. Aujourd'hui, elle tient une maison à deux ; l'open source est à l'étude.
- Rôle
- Produit, design, développement, hébergement.
- Période
- 2026
- Stack
- Rust (axum), WebAssembly, SQLite, SvelteKit, llama.cpp, WebAuthn

Le besoin
Ariane suit les tâches d’une maison ou d’une équipe : qui s’occupe de quoi, depuis quand une tâche attend, et pourquoi. J’ai commencé le projet le 29 septembre 2026, pour une équipe.
Le premier usage réel a été domestique, à deux : appartement, travaux, voyages, démarches. Il a changé l’interface. Le tableau à quatre colonnes est passé dans un menu, et l’accueil est devenu le fil, la liste de ce qui compte maintenant.
À l'usage
Pour chaque projet, le fil montre ce qui attend et pourquoi, ce qui est en cours et ce qui arrive à échéance dans les quinze jours. Une carte s’ouvre sur place, avec des actions en langage courant : « Je le prends », « En attente », « Terminé ».
Chaque action peut porter une note ou une photo ; la photo est réduite sur l’appareil et sa localisation retirée. La vue « métier » place les cartes sur une frise, avec un curseur pour revenir à une date passée.
Le pot suit le budget commun à partir du dernier solde déclaré. Quand une carte commence, son montant est réservé, et « Libre » indique ce qui reste à dépenser.
La palette de commandes, la ligne de commande et l’API partagent une même grammaire (termine INF-12, bloque INF-12 <raison>). Une phrase libre, tapée ou dictée, est interprétée par un petit modèle local ; sa proposition s’affiche en pointillé sur le fil, à valider ou à annuler.

Architecture
Chaque modification est une opération hachée, horodatée par une horloge logique hybride et signée par l’appareil qui l’a faite. Le tableau, les historiques et les notifications sont calculés à partir de ce journal. Quand deux modifications se croisent, les deux sont conservées, et la carte propose de rétablir la valeur écartée.
Ces règles tiennent dans un noyau Rust isolé de toute entrée-sortie, compilé aussi en WebAssembly : le navigateur valide les opérations hors ligne et les met en file d’attente. Le serveur vérifie les signatures et les droits, numérote chaque opération et la transmet aux appareils autorisés.
Le journal du serveur est scellé chaque nuit et vérifiable hors ligne. Chaque projet a son journal, et une carte restreinte a le sien, partagé avec ses seuls membres.
Décisions
Un journal pour la synchronisation et l’historique. Ariane repose sur un CRDT à opérations, une structure qui converge vers le même état sur chaque appareil. Le journal enregistre les actions telles qu’elles ont été faites.
De petits modèles, une sortie contrainte. Parakeet transcrit la voix et LFM2.5 (2,6 milliards de paramètres) interprète la phrase, sur un Mac Studio. Une grammaire construite à partir du tableau de la personne limite la sortie aux verbes, projets, personnes et cartes existants. Sur un M1 Max, une première phrase prend environ 0,85 s, les suivantes 0,2 s.
Un vocabulaire de tissage. Les vues et les objets portent des noms de tissage (la pelote pour un projet, le brin pour une carte, le fil, le métier) ; les actions restent en langage courant.
Tout au clavier. L’interface vise WCAG 2.2 AA, et AAA pour le texte. Une carte se déplace au clavier, par un menu ou par glisser-déposer.
Aujourd'hui
Ariane gère une maison à deux sur mon serveur, avec connexion par clé d’accès, et une équipe peut s’y connecter avec son compte d’entreprise. L’open source est à l’étude.