DocketReady
Legal technologyA federal court filing gets rejected for reasons that have nothing to do with its argument: a scanned page with no searchable text, an unflattened form field, a personal identifier left visible. The check exists, but it happens in someone's head at 9pm the night before a deadline.
The constraint
Every competing product asks the firm to hand over its CM/ECF credentials. For a solo attorney, giving a new vendor the keys to file on their behalf is a professional-liability question, not a software question. The product had to be useful without ever holding a credential — which ruled out the entire category of automated filing.
The decision
Run every deterministic check in the browser, so the document never leaves the machine. OCR and identifier scanning became an opt-in server job with an explicit retention choice, and the output never claims a redaction is confirmed — it flags a possible identifier and makes a human confirm it. Court-specific rules ship as versioned rule packs keyed to court and date, so a rule change is a data update rather than a deploy.
What shipped
- Browser-local PDF analysis — encryption, searchable text, page size, fonts, attachments
- Versioned per-court rule packs with effective dates
- Stripe Checkout with a signed webhook and an idempotent event ledger
- Filing-pack credits that are never granted from a URL parameter, only a verified session
Next.js · TypeScript · Supabase · Stripe
Apptillion