Ariane
The thread of a home or a team, and its journal. Each project is a ball of yarn that unwinds what matters now: what waits and why, what is under way, what falls due soon. An operations journal that converges offline, a Rust core shared with the browser in wasm, and a sentence, typed or spoken, that a small local model lays out as cards. Today it runs a home for two; open source is under consideration.
- Role
- Product, design, development, hosting.
- Period
- 2026
- Stack
- Rust (axum), WebAssembly, SQLite, SvelteKit, llama.cpp, WebAuthn

The brief
Ariane tracks the tasks of a home or a team: who is handling what, how long a task has been waiting, and why. I started the project on 29 September 2026, for a team.
Its first real use was domestic, for two people: the flat, renovation work, trips, paperwork. It changed the interface. The four-column board moved into a menu, and the home screen became the thread, the list of what matters now.
In use
For each project, the thread shows what is waiting and why, what is in progress and what falls due within fifteen days. A card opens in place, with actions in everyday language: “I’ll take it”, “Waiting”, “Done”.
Each action can carry a note or a photo; the photo is resized on the device and its location removed. The “loom” view places the cards on a timeline, with a slider to go back to a past date.
The pot tracks the shared budget from the last stated balance. When a card starts, its amount is set aside, and “Free” shows what remains to spend.
The command palette, the command line and the API share one grammar (termine INF-12, bloque INF-12 <reason>). A free sentence, typed or dictated, is interpreted by a small local model; its proposal appears dotted on the thread, to confirm or cancel.

Architecture
Each change is a hashed operation, timestamped by a hybrid logical clock and signed by the device that made it. The board, the histories and the notifications are computed from this journal. When two changes overlap, both are kept, and the card offers to restore the value set aside.
These rules live in a Rust core isolated from all I/O, also compiled to WebAssembly: the browser validates operations offline and queues them. The server checks signatures and permissions, numbers each operation and forwards it to the authorised devices.
The server’s journal is sealed every night and verifiable offline. Each project has its journal, and a restricted card has its own, shared with its members only.
Decisions
One journal for sync and history. Ariane rests on an operation-based CRDT, a structure that converges to the same state on every device. The journal records actions as they were made.
Small models, constrained output. Parakeet transcribes speech and LFM2.5 (2.6 billion parameters) interprets the sentence, on a Mac Studio. A grammar built from the person’s board limits the output to existing verbs, projects, people and cards. On an M1 Max, a first sentence takes about 0.85 s, the following ones 0.2 s.
A weaving vocabulary. The views and objects carry weaving names (the ball for a project, the strand for a card, the thread, the loom); the actions stay in everyday language.
Everything by keyboard. The interface targets WCAG 2.2 AA, and AAA for text. A card moves by keyboard, through a menu or by drag and drop.
Today
Ariane runs a two-person home on my server, with passkey sign-in, and a team can sign in with its company account. Open source is under consideration.