Paperasse
Every business runs on procedures: hiring, approving the accounts, opening a worksite. Paperasse becomes their copilot and their memory: it guides each step, fills the firm's own Word templates, gets them signed on the spot or remotely, and keeps for every file what was done, when and by whom. Small local models come next, to carry the routine. Cachet, a small black cat, keeps watch in a corner. On the bench, first beside an accounting firm.
- Role
- Product, research, design, development.
- Period
- 2026
- Stack
- Rust (axum), WebAssembly, SQLite, SvelteKit, docx-handlebars, WebAuthn

The brief
Paperasse guides a business through its procedures: hiring, approving the accounts, opening a worksite. Errors often come from a procedure that only one person knows, or from a forgotten step, sometimes a legal obligation.
I am developing it with an accounting firm, from its field report of 27 September 2026 and its Word templates. Each sector can configure it with its own library of procedures.
In use
A procedure is a sequence of steps, and each step assembles blocks named after verbs: gather, act in another tool, check, fill in, get signed. Each block flags the information it is missing.
Each step has a guard. A blocking guard locks what follows until the step is complete. A soft guard lets the expert continue if they give a reason, which is recorded.
For a Word template, the expert uploads the file, sees the recognised fields and previews the document filled with fictional data. A single dictionary feeds the templates, the forms and the checks.
Deadlines follow the legal counting rules (calendar, business or working days, public holidays). After an interruption, a resume card recalls where the task stands, the next deadline and the latest actions.
Architecture
The business logic lives in a Rust core, isolated from all I/O and from the system clock. It receives a command and determines the facts it produces; every state is computed from an append-only journal of signed operations.
Each device is a replica with its own Ed25519 key, and sync takes one round trip. Compiled to WebAssembly, the core applies the rules offline in the phone’s browser. If two devices modify the same task offline, the operation received second is kept and marked as a conflict.
The server (Axum, SQLite) runs on the firm’s computer and starts with the session. Procedures and the dictionary are TOML files, templates are DOCX files. A running task keeps the version of the procedure it started with.
Decisions
The data stays at the firm. Everything is stored on site and works with the network down. The planned outside services (remote signing, timestamping) are isolated behind interfaces.
Procedures before code. Before fixing the data model, I wrote the twenty procedures from the two field reports with the block catalogue alone. The exercise revealed sixteen gaps, from legal deadlines to weighted votes.
Word stays the firm’s tool. Paperasse fills the firm’s Word templates and produces the PDFs in Rust, with the same result on Windows, on Mac and on Raspberry Pi.
AI as an observer first. Small local models will first work in shadow mode: the model proposes, the human decides. Autonomy will extend by type of step, when the agreement rate passes a threshold set by the head of the firm, and will pull back at the first discrepancy.
Today
Paperasse runs on desktop and on phone, with the five block types, guards, legal deadlines, recurring tasks and the resume card. Cachet, a small black cat, keeps watch in a corner of the screen. The next milestone brings remote signing and timestamped proof.