Take a paper process off your staff, and keep the record.
A permit, a license renewal, a contractor prequalification and an insurance certificate are the same machine wearing different labels: a form arrives, a document is read, a rule is applied, somebody signs, and the whole sequence has to leave a record nobody can quietly edit. Those five pieces are production code here today. A build points them at your form.
Who this is for: Agency IT, clerks, permitting and licensing offices, procurement, and the department that owns a process currently held together by a shared inbox.
Where this starts
Fixed scope, fixed deliverable, and a written statement of what is out of scope, so a change order is a conversation rather than an argument.
What is built
Each item below is generated from an inventory in which every entry names the source files that implement it. Where a capability has a boundary, the boundary is printed with it.
A first-party electronic signature engine: templated documents, drag-placed fields, multiple signers with sequential or parallel ordering, one-time-passcode verification, coordinate-accurate stamping onto the source PDF, and a completion certificate.
Boundary: Built in house. It is our own engine rather than a resold or white-labelled signature vendor, and we will not describe it as one.
Automated parsing of insurance certificates and evidence documents: ACORD 23, 24, 25, 27, 28, 101 and 131, a generic ACORD path, HO-4 dec pages, and application sections, with an OCR path for non-ACORD and scanned documents.
A tokenized vendor upload portal: each vendor gets its own link, uploads certificates without an account in the main application, and sees its own open deficiencies and upload history.
Boundary: Uploads are capped at ten megabytes and checked by file type. A portal link expires after ninety days.
A multi-tenant, organization-scoped web application covering vendors, certificate holders, policies, rulesets, MVR orders, audit history, and billing settings.
Sensitive personal data is encrypted at the field level before it is written to storage.
Every server-side mutation writes an append-only audit row recording the actor, the action, the target, the timestamp and the caller fingerprint, with personal data scrubbed out of the recorded metadata before it is stored.
Boundary: Two records, not one. Every mutation writes an append-only row, and the hash chain below covers the platform log specifically.
The platform audit log is hash-chained: each row carries a SHA-256 over its canonical projection plus the previous hash, and a verifier walks a day of rows to show that none was inserted, removed or edited.
Boundary: Chains reset at the UTC day boundary, and the hashed projection deliberately leaves out free-text metadata and IP address. It proves the record was not altered, not the contents of data we scrub.
A machine-validated vendor risk register tracking each subprocessor's data classification, business-associate or data-processing agreement, and agreement expiry.
Boundary: It tracks our own subprocessors and their agreements. It is not a vendor management product for your agency to run.
The published terms state that the customer retains all rights to the documents and data it uploads, and that after termination it may request an export and have the data deleted.
Boundary: Export is on request rather than a self-service button, and deletion is subject to the retention terms we publish.
The public surface is built against WCAG 2.1 AA: a skip link to main content, visible keyboard focus states from the shared component library, semantic landmarks, and labelled form controls.
Boundary: Built to that standard rather than certified against it. No third-party accessibility audit has been performed and no VPAT exists. If your solicitation requires one, say so and we will answer it as a gap instead of a checkbox.
Every capability stated on our public government pages is rendered from an inventory in which each entry names the source files that implement it, and continuous integration fails the build when a named file disappears or when a feature we do not have reappears in marketing copy.
Boundary: It proves the code we cite still exists and that a removed claim has not crept back. It is not a third-party audit and it does not certify that the code is correct.
How the work happens
Scope in writing before anything is built
What the form collects, who touches it, what has to be proven afterwards, and what the record has to survive. Fixed scope, fixed deliverable, and a written statement of what is out of scope so a change order is a conversation rather than an argument.
Built on the pieces already running
Intake, document parsing, the rules engine, the signature engine, encrypted storage and the audit record are production code serving customers now. A build arranges them for your process rather than starting from an empty repository.
You keep the data and the record
Our published terms say you retain rights to what you upload and can request an export and deletion. The audit record is designed to be readable by somebody who does not trust us, which is the correct posture for a public agency.
Talk to the person who builds it
Send the scope, the question, or the solicitation itself. If you are doing market research before writing one, that is a conversation we are glad to have.
This is scoped software delivery, not staff augmentation and not general web development.