$ account freelawproject
CourtListener is a comprehensive legal research platform operated by Free Law Project. It aggregates U.S. court opinions, dockets, oral arguments, and judge profiles from multiple sources including PACER/RECAP, Harvard Caselaw, Columbia, state courts (Florida, Texas, New York), and SCOTUS. The system provides full-text search via Elasticsearch, real-time and scheduled alerts, REST API with OAuth2, webhook notifications, citation analysis, and audio transcription. It also includes tools for bulk data import, data cleaning, and embedding generation for LLM training. Architecturally, it is a Django 6.0+ monolith with a Celery task queue (Redis broker), PostgreSQL database, Elasticsearch search engine, and S3-compatible storage. The frontend uses Django templates with Alpine.js and some React components, built via Webpack. The system runs as multiple Docker containers (web, Celery workers, scrapers, daemons). Key data flows include nightly PACER scraping, email-based RECAP document ingestion, citation extraction using eyecite, and state-specific docket merging pipelines. The system is heavily event-driven with pgtrigger-based audit trails and Redis-based throttling. While primarily an application, it has a strong data research character: extensive ETL pipelines, machine learning integration (LLMs for text extraction, OpenAI Whisper for transcription), citation network analysis, and state court data modeling. The codebase demonstrates high craftsmanship in reusable patterns like the CeleryThrottle, tiered caching, and generic merger classes, but also carries some technical debt from many SQL migrations and tightly coupled scrapers.