Document management with scoped access and workflows
A document management platform with pluggable storage, scoped role-based access, versioning, audit trail, signatures, approval workflows, full-text search and AI summarisation.
The challenge
Document-heavy organisations need controlled storage, clear version history and an audit trail of who did what, while still making content searchable. Approval and signature steps are often handled by email and are hard to evidence later.
What we built
The platform is a TypeScript monorepo with an Express API and a React frontend. Storage sits behind an adapter interface supporting local disk, S3, or dual-write with read fallback. Role-based permissions can be scoped to categories or individual documents, and actions are written to an audit service. Documents are versioned, text is extracted and indexed in Meilisearch, and workflow definitions advance documents through steps. Signature capture, share and request links, watermarking, reminders and Gemini-based summarisation and generation are also implemented.
Key capabilities
- Local, S3 and dual-write storage adapters with fallback
- Role-based access control with category and document scoping
- Version history with restore and audit logging
- Full-text search via Meilisearch with text extraction from PDF and Office files
- Configurable approval workflows, signatures and reminders
- Share/request links, watermarking and AI summarisation/generation
What it delivers
- Storage back ends can be swapped or combined without changing business logic
- Permissions are evaluated per user, category and document, and access activity is auditable
- Unit and property-style tests cover storage adapters, auth, search, signatures and audit services
- Documents, approvals and signatures are handled in one system rather than across email threads
Have a similar backlog?
Most of our work started as a single painful workflow. Tell us yours.


