vccs
Composable charting components for Vue 3, ported from Recharts
Real opinions from real courts. We collate published state appellate opinions from official sources into a structured, searchable archive. No generated text, no fabricated citations.
DataPython · HTMLGitHub @OnionMadderOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A navigator for the public record — state appellate court opinions, organized.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A navigator for the public record — state appellate court opinions, organized.
State appellate research has historically been dominated by paid databases.
DocketDrift collates published opinions from official sources, normalizes them
into a structured archive, and makes patterns in judicial decisions easier to
find and read together. It is a solo project, and it is free to use.
DocketDrift does not generate text. There is no chat box, no "summarize
this for me," no synthesized holdings, no drafted prose anywhere on the site.Read the full README ↗A navigator for the public record — state appellate court opinions, organized.
Live: docketdrift.com · Minnesota · New Hampshire · Arizona
State appellate research has historically been dominated by paid databases. DocketDrift collates published opinions from official sources, normalizes them into a structured archive, and makes patterns in judicial decisions easier to find and read together. It is a solo project, and it is free to use.
DocketDrift does not generate text. There is no chat box, no "summarize this for me," no synthesized holdings, no drafted prose anywhere on the site.
That is a deliberate architectural commitment, not a roadmap gap. Generative legal tools have been documented to fabricate case citations at meaningful rates; the failure mode is the same behavior that produces the fluent prose in the first place. A system that cannot produce text cannot produce a fake citation.
Machine learning appears in exactly two places:
voyage-law-2 embeddings (1024-dim) stored in
MariaDB's native VECTOR column. A query vector is compared to opinion
vectors by cosine similarity; the output is an ordered list of real opinion
IDs. No text is generated.AUTO_APPLIED for audit; below it, the suggestion
enters a human review queue.Everything else — case number, release date, disposition, panel composition, statute citations, holdings — is deterministic extraction over the published text. Either the pattern matches or it doesn't.
The "The holding" panel is the one surface that looks generated and isn't: it quotes the court's own holding sentence verbatim (courts announce holdings in a small, stable phrase set — "we hold that…", "we conclude that…"). When no such sentence exists, the panel does not render. A blank holding is honest; a guessed one is not.
Users are lawyers, and a lawyer's research trail is work product that can be subpoenaed. The posture is architectural rather than promissory: we cannot produce what we never stored.
DocketDrift stands substantially on the work of the Free Law Project:
Free Law Project's eyecite is vendored but not wired into any production code path — a measured bake-off against our extractors found it would add about 1% of resolved citation targets while losing docket-format citations entirely (the only key that reaches unpublished opinions). The write-up lives in the project notes; the decision is revisitable if treatment quality ever outranks graph size.
As of August 2026 — 128,000+ opinions across the three live states, all embedded for semantic search.
| Minnesota | New Hampshire | Arizona | |
|---|---|---|---|
| Opinions | 69,607 | 20,682 | 37,834 |
| Date range | 1851–present | 1843–present | 1866–present |
| Dispositions parsed | 97.9% | 78.4% | 64.2% |
| Reporter cites | 80.4% | 90.2% | 74.9% |
| Judges | 119 | 37 | 169 |
| Panel votes | 32,291 | 17,736 | 29,195 |
Plus a 1.45-million-edge citation graph (bulk-derived breadth + text-extracted edges carrying verbatim citing passages and treatment classification) and ~45,000 verbatim-extracted holdings.
Stated plainly, because silence reads as completeness:
Django 5.2 · MariaDB 11.7 (native VECTOR) · PyMySQL · gunicorn · HTMX where it
earns its keep. No SPA, no build pipeline, no JavaScript framework. Server-rendered
templates and server-rendered SVG charts.
Deployed on NearlyFreeSpeech.NET shared hosting, which shapes several design decisions — no numpy (the FreeBSD wheels are broken), no resident daemons (a ~10-minute wallclock cull), and a 25-second statement timeout that batch commands must lift explicitly.
Requires Python 3.11 (production pins to it; 3.12+ f-string syntax will not run there). Local dev defaults to SQLite, so no database server is needed.
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
python manage.py migrate
python manage.py runserver
State subdomains are resolved by middleware from the Host header, so to see a
state site locally, browse via a hostname like mn.localhost:8000 (the apex
localhost:8000 renders the state picker).
python manage.py check runs the project's own system checks, including a
deploy-blocking guard against multi-line {# … #} template comments — Django
only supports those on a single line, and a multi-line one renders as raw page
text to the user.
Issues and pull requests are welcome. Two standing constraints on any change:
New dependencies with C extensions need a FreeBSD-compatibility check before they can ship.
GNU Affero General Public License v3.0 — the same license CourtListener uses. If you run a modified version of this software as a network service, the AGPL requires you to offer its source to your users.
Opinion text itself is the public record and is not covered by that copyright.
Errors in an opinion record, a judge bio, or a search result: [email protected]