Open sourceWraft is AGPLv3 and self-hostable — read the source on GitHub

Document repository

A drive that reads what you put in it

Folders, uploads and versions on your own S3-compatible storage — and every file that lands is read, extracted and available to act on. Bring your Google Drive across and it stops being a pile.

MinIO · RustFS · AWS S3 · No metered retrieval

S3
MinIO, RustFS or AWS
AGPLv3
Licence
Postgres
Your own database
0
Metered retrieval

The familiar part

Everything you expect from a drive

No new mental model to teach anybody. It is a tree of folders on storage you run, and the things that are usually someone's filename convention — versions, classification, provenance — are fields instead.

Folders, paths and files

A tree you organise yourself, with real paths, breadcrumbs and nesting. Drop a PDF in, move it, rename it, delete it and get it back. Nothing here needs explaining to anybody.

Bring the drive you already have

Sync from Google Drive, Dropbox or OneDrive. Files arrive with their source and external identity recorded, so the copy knows where it came from and can be brought up to date again.

Versions, not filename suffixes

Each item carries a version number and a current-version flag, so the thing you open is the live one and the earlier states are still there rather than living in -final-v2-USE-THIS.pdf.

Block storage underneath

Objects sit on block storage through an S3-compatible interface — MinIO, RustFS or AWS S3. Point it at a different endpoint and the application does not change, because storage is addressed in one place rather than assumed throughout.

Classified per item

A classification level on every file, from public through confidential, alongside role-based access. The label travels with the item rather than being a property of the folder someone filed it in.

Checked on arrival

A SHA-256 checksum recorded at ingest, plus access and download counts against every item. You can prove a file is the one that landed, and see who has been reading it.

The document lake

Let everything land, and read it on the way in

A data lake takes whatever arrives and makes sense of it later. Documents deserve the same: drop in the scanned contracts, the signed PDFs, the exports nobody has opened in years, and let extraction do the sorting rather than a person with a naming convention.

The difference between a drive and a lake is what the system knows without being told. A drive knows a file is 719 KB and was modified on Tuesday. A lake knows it is an agreement with two parties, a renewal date and a value — because something read it when it arrived, and wrote that down next to the file rather than in somebody's spreadsheet.

What it does

A repository that works, not a filing cabinet

Every function here exists to answer one question quickly: which document, which version, what is in it, and who has touched it.

Extraction built in

PDF and DOCX read into text and structured fields — parties, dates, values — with no add-on product and no per-page charge. It is what turns a folder of scans into something you can ask questions of.

Automation on arrival

A file landing is an event. Pipelines run on what arrived, so ingest, classification and downstream work happen without anybody watching the folder.

Complete version history

Every revision retained and diffable. Compare any two versions, see who changed what and when, and restore a prior state in place.

Search across the repository

Find items by name, path and metadata across the whole tree, with extracted content held against each file rather than locked inside the PDF.

Access you can evidence

Role-based permissions down to the item, plus download counts and last-accessed timestamps on every file, written to a log in your own database.

Storage you choose

MinIO on your own hardware, RustFS, AWS S3, or any S3-compatible provider. Change the backend without changing the application.

Not built yet

Records management is the next layer, and it is not here

The primitives records management needs are in place — classification on every item, version history, checksums, access records. The scheduling layer that turns those into a retention programme is honestly described as forthcoming.

Planned

Retention and disposition

Retention classes attached on write, with a disposition date computed rather than remembered, and automatic expiry when it arrives.

Planned

Legal hold

A hold that overrides disposition for the duration of litigation, applied across a matter rather than file by file, and evidenced when it is lifted.

Planned

Auto-archival

Rules that move cold items to colder storage on their own — by age, by class, by last access — so tiering is a policy rather than a quarterly chore.

Planned

DoD 5015.2-style records management

The records-management model the US DoD criteria describe: record categories, filing plans, and disposition you can produce evidence for. We have the classification and audit primitives; the scheduling layer above them is the work.

If a retention obligation is the reason you are reading this page, say so early and we will tell you plainly whether our timeline meets yours. DoD 5015.2 is a design-criteria standard with a formal certification behind it; we are describing the model it sets out, not claiming to have been certified against it.

What happens to a file you drop in

Four things, none of which you have to do

The work that usually falls to whoever owns the folder — naming, sorting, recording what a document is — happens on arrival instead.

  1. 01 It lands Uploaded, generated by Wraft, or synced across from Drive, Dropbox or OneDrive.
  2. 02 It is checked A SHA-256 checksum recorded, its type and size read, a version number assigned.
  3. 03 It is read PDF and DOCX converted to text, with parties, dates and values extracted into fields.
  4. 04 It becomes an event Pipelines fire on what arrived, so the next step happens without anybody watching the folder.

Who this is for

Teams whose documents outlive their tools

If your volume is modest and nothing you store has to be produced on demand, a hosted drive is the sensible choice. These are the cases where it is not.

Legal and professional services

Matter files kept for the full retention period, with privilege boundaries enforced and every access recorded.

Financial services

Residency and retention met by where your bucket is, rather than by which regions a vendor has chosen to offer.

Healthcare

PHI-adjacent records held inside your own compliance boundary, on infrastructure that never has to reach the public internet.

Public sector

Public-records obligations and information requests answered from a repository you control outright.

Before you commit

The questions worth asking us

Is this just a file drive?
It starts as one, and deliberately — folders, uploads, versions and search need no explaining to anybody. The difference is what happens after a file lands: it is read, its fields are extracted, and pipelines can fire on it. A drive holds documents. This one knows what is in them, which is the whole point of putting them somewhere structured.
What happens to my repository if Wraft disappears?
Your documents are already in your own S3-compatible bucket and your metadata in your own Postgres. Both stay readable without our software. The code is AGPLv3, so you can also keep running and extending it. For a system holding a ten-year obligation, that is the whole argument.
Can we use our existing storage?
Yes. MinIO, RustFS, AWS S3, or any S3-compatible provider, configured at deployment. You can change the backend later without changing the application, because storage is addressed through a single interface rather than assumed throughout the code.
Can we bring across what is already in Google Drive?
Yes. Sync from Google Drive, Dropbox or OneDrive, with each file keeping a record of where it came from and when it was last synced. Most teams run both for a while rather than migrating in one weekend, which the sync source field is there to support.
How do you make money if the software is free?
Support, managed hosting, and paid migration work. Storage is not metered by us — you pay your infrastructure provider directly at their rates, with no margin added by us.
Does extraction cost extra?
No. Extraction is part of the platform rather than an add-on tier, and it is not priced per page. That is deliberate: a repository you cannot afford to query is a filing cabinet.
Do we get records management — retention, disposition, legal hold?
Not yet, and we would rather say so than let you find out during an audit. What exists today is the layer underneath: classification on every item, version history, checksums, and access records. Retention scheduling, holds, auto-archival and a DoD 5015.2-style filing plan sit above that and are not built. If your obligation depends on them, tell us your timeline and we will be straight about whether ours meets it.
Can we migrate an existing archive in?
Documents and metadata import through the API, and bulk ingestion handles large historical sets. What usually needs rebuilding is permission structure, because most systems do not export it in any usable form.
Is it production ready?
Wraft is in active development with early access available. A repository is a long-term commitment, so be direct with us about volume and obligations and we will tell you plainly whether it fits today or whether you should wait.

Custody, not a subscription

Keep the documents, the metadata, and the keys