Abstract
A July 2024 product bulletin announced “Modern View”, a proprietary interface promising faster load times and custodian-suggestion workflows. We reverse-engineered the user-facing features, rebuilt them with licence-free libraries and benchmarked the replica against a 1 400-custodian mock matter. All code is released under Apache-2.0; no external SaaS is required.
- Design Goals
- First meaningful paint ≤ 1.2 s on a 100 Mbps link
- Keyboard-only navigation (WCAG 2.2 AA)
- Column config, filters and custodian suggestions persisted in URL state for shareability
- Git-style immutable audit log for every user action
- Architecture Overview
Front-end: Lit web-components (13 kB gzip) + Shoelace style system
Back-end: FastAPI + SQLite (encrypted with SQLCipher)
Auth: OpenID-Connect via Keycloak; default realm shipped in Docker
Object Store: MinIO with object-lock (WORM) for custodian data - Matter-Centric Dashboard —
matter-view
Web Component: <matter-view matter-id=”123″ />
- columns: array of field names
- filters: Mongo-like query object
- freeze-first: boolean to pin initial column
State Management: - Redux slice persisted to IndexedDB; optional export as JSON-LD for e-discovery exchange
Performance: - 1 400 custodians render in 680 ms (Chrome 131, 6× CPU throttle)
- Memory footprint: 2.1 MB heap
- Column Customisation —
col-prefs
Drag-and-drop reorder via SortableJS (MIT)
Filter grammar:
{ “field”: “lastHoldDate”, “op”: “gte”, “value”: “2024-01-01” }
Saved views encoded in URL (base64url) for instant shareability - Custodian Suggestion Engine —
suggest-custodian
Algorithm:
a) TF-IDF vectorisation of matter description against employee directory “role” field
b) Cosine similarity > 0.25
c) Exclude users already on hold
d) Rank by closeness-centrality in corporate graph (Neo4j query included)
Precision@10: 0.84 vs. 0.71 for legacy keyword match (paired t-test, p < 0.01) - Performance Optimisations
- Server-side: Postgres materialised view refreshed every 5 min
- Client-side: Virtual scroll (windowing) for ≥ 200 rows; renders only DOM nodes in viewport
- CDN: Static assets served as pre-compressed brotli files; 19 % smaller than gzip
- Accessibility & I18n
- Keyboard shortcuts mirror those in Gmail (j/k navigation, x select)
- ARIA labels auto-generated from column headers
- Strings externalised; en-GB and en-US packs shipped; community translations welcome via Weblate
- Audit & Immutability
Every CREATE/UPDATE/DELETE is appended to an SQLite table with:
- user_id, timestamp, table, row_id, diff (JSON), commit_hash
- commit_hash = BLAKE3(previous_hash + diff)
- hourly snapshot pushed to a WORM MinIO bucket
Verification:
make audit — replays log and confirms final hash matches stored value
- Benchmark Summary
Metric (n = 3 runs) Modern View Replica Legacy Proprietary Tool Δ
First meaningful paint 1.05 s 2.30 s –54 %
Filter return (10 k rows) 120 ms 410 ms –71 %
Custodian suggestion (p@10) 0.84 0.71 +18 %
Annual licence cost USD 0 USD 18 200 –100 % - Deployment
Single container:
docker run -p 8080:8080 ghcr.io/open-discovery-stack/modern-view:2025.10
Default SQLite encrypted with random key stored in Docker secret; production should switch to Postgres cluster. - Security Notes
- All front-end assets sub-resource-integrity hashed
- CSP header blocks inline scripts; nonce only for web-component shim
- Back-end uses SQLCipher; key rotation via AWS KMS-compatible interface (support for OpenBao)
- Limitations
- No offline mode yet (PWA cache planned for 2026)
- Custodian graph needs write access to corporate directory; read-only LDAP mirror recommended
- Emoji rendering in chat widget requires Twemoji CDN (can be self-hosted)
- Future Roadmap
- Module federation so firms can plug custom cards without recompiling
- Post-quantum signature of audit log (CRYSTALS-Dilithium integration in progress)
- Public test-fest 17–18 January 2026, UCL; bring your heaviest matter, leave with a shareable URL
Conclusion
A matter-centric legal-hold interface boasting sub-second load times, AI custodian suggestions and immutable audit trails can be delivered without proprietary dependencies. The released web-component library offers firms a path to full UI ownership while exceeding accessibility, performance and defensibility benchmarks set by commercial equivalents.