What is document management?
Document management is a structured system for storing, categorising, finding, and controlling access to files within your app. It goes significantly beyond raw file uploads: where file uploads let users attach a file to a record, document management lets users organise files into folders, apply metadata and tags, search by name or content, track versions, and set permissions at the document level.
Think of it as the difference between a pile of files on a desk and a filing cabinet with labelled drawers, an index, and a key for each drawer.
Businesses that deal with large volumes of formal documents — real estate agencies managing property files, HR teams managing employee records, professional services firms managing client matter documents, construction companies managing project documentation — often find that basic file attachment isn't enough. They need to find the right document quickly, know they're looking at the current version, and ensure only authorised people can access sensitive files.
When does your app need it?
- Your app manages documents across many entities (clients, properties, projects) and users struggle to find the right file
- Multiple people need to access and update documents, with version history to track changes
- Different documents have different access requirements — some are public within the team, others are confidential
- Your app is replacing a shared drive (Google Drive, SharePoint folder) and needs to replicate its organisation capabilities
- Compliance requires retention of specific documents for defined periods, with records of who accessed them
- Users need to search across document names or content to find what they're looking for
How much does it cost?
Adding document management typically adds 5–11 hours of development — roughly $1,000–$2,000 AUD at Australian boutique agency rates.
A basic implementation (folder structure, tags, search by filename, per-document permissions) sits at the lower end. Adding full-text search within document content, version history with diff viewing, bulk operations, and a sophisticated permissions model sits at the upper end.
The foundation is a working file upload implementation — if that doesn't already exist, add the cost of file uploads and storage to this estimate.
How it's typically built
Document management is built on top of a database schema that stores document metadata separately from the file itself. The file lives in S3 (as with any file upload); the database stores the document name, folder path, tags, creator, created/modified timestamps, version number, and permission settings.
Folder hierarchies are typically stored as a path string or an adjacency list in the database. Tag-based organisation (as an alternative or complement to folders) uses a many-to-many relationship between documents and a tags table.
Full-text search within document content requires extracting the text from uploaded files (PDF text extraction via pdf-parse, DOCX via mammoth) and indexing it — either in a dedicated search engine (Meilisearch, Elasticsearch, Typesense) or in PostgreSQL's built-in full-text search. This is the most technically involved part of a document management system.
Version control stores each uploaded revision as a separate S3 object, with the database tracking the version number and allowing retrieval of any historical version. Per-document permissions are stored as access control entries (user or role → read/write/admin) evaluated at query time.
Questions to ask your developer
- Do users need to search inside documents, or just by filename and tags? Full-text content search is significantly more work and adds infrastructure — confirm whether users genuinely need it.
- What folder structure makes sense for your business? Define the hierarchy (client → matter → document type, or project → phase → document type) before building — retrofitting a different structure is painful.
- Do we need version history, and if so, how many versions should we retain? Indefinite retention adds storage cost; a limit of five or ten versions is usually sufficient.
- What are the permission requirements? Document-level permissions (each document has its own access list) are more complex than folder-level permissions — confirm the granularity you need.
- Does the document management system need to integrate with e-signatures or PDF generation? If users sign documents or generate PDFs that feed into this system, scope that integration alongside the document management work.
See also: File uploads and storage · E-signatures · Audit trail · App cost calculator