Collaborative document editing, a full e-signature pipeline with audit trails, and optical character recognition for the documents that arrive as photographs. Paperwork is where most business software quietly gives up and exports a PDF.
| Measure | Value | Source | Measured |
|---|---|---|---|
| Dedicated services for documents, signing and recognition | 4 (document service, document collaboration, e-signature service, OCR with a separate worker) | kubectl get deployments -n kamo | |
| Optical character recognition error rate | 0.180 CER, on our own evaluation corpus | ocrservice evaluation run | |
| Known limitation we publish rather than hide | Signature capture stores a flattened image, not stroke data | e-signature implementation review |
What building it taught us
Document work is unglamorous and it is where a great deal of real business time goes. Getting a contract signed, extracting numbers from a scanned statement, letting two people edit the same file without one of them losing an afternoon's work. Each of these is a genuinely hard engineering problem dressed as an administrative one, which is why so much software stops at 'download the PDF and email it'.
Collaborative editing means running a document server and solving multi-tenancy inside it, so that two organisations editing files of the same name never see each other's. Signing means an audit trail that would survive a dispute: who saw what, when, from where, and proof the document did not change afterwards. We learned the limits of our own signing implementation the hard way — consent is captured and the audit trail is sound, but the signature pad stores a flattened image rather than the stroke data, which matters for certain kinds of forensic challenge and which we say out loud rather than discovering in a deposition.
Optical character recognition is the piece clients most often assume is solved. It is not. Accuracy depends enormously on document quality, and a system that quotes a single accuracy figure without saying which corpus it was measured on is telling you nothing. Ours is measured, stated, and imperfect.
Built with
- Collabora Online
- WOPI
- Java
- Spring Boot
- Python
- Tesseract-class OCR
- MinIO
Tell us what you are trying to do
A short conversation is usually enough to tell whether we are the right people. If we are not, we will say so and point you somewhere better.