Reusable building blocks for the ecosystem.
Every justice tech organization rebuilds the same components from scratch -- file uploaders, case trackers, calendars, notification systems -- wasting precious time and funding. The result is fragmented, inconsistent tools that don't interoperate and can't be maintained long-term.
An open-source, accessible, well-tested component library purpose-built for justice applications. This directly answers the call to "create shared, open-source component libraries" for the justice tech ecosystem. Instead of every organization reinventing the wheel, teams can build on a common foundation and focus their energy on what makes their tool unique.
graph TD
A[Component Library] --> B[Evidence<br/>FileUploader<br/>EvidenceViewer<br/>ChainOfCustody]
A --> C[Case<br/>StatusTracker<br/>TimelineView<br/>PartyManager]
A --> D[Court<br/>CourtCalendar<br/>HearingCard<br/>JudgeInfo]
A --> E[Communication<br/>NotificationCenter<br/>SecureMessaging<br/>AIAssistantWidget]
A --> F[Layout<br/>DashboardShell<br/>SideNav<br/>CommandPalette]
- Justice tech developers who want production-ready, accessible components out of the box
- Legal aid organizations building tools on tight budgets and timelines
- Court IT departments modernizing legacy systems with consistent UI patterns
- Civic tech volunteers contributing to justice projects without starting from zero
- 20+ production-ready components spanning evidence, case, court, communication, and layout
- WCAG 2.1 AA accessible -- every component meets accessibility standards
- Storybook documentation -- interactive examples and usage guides for every component
- TypeScript-first -- full type safety and IntelliSense support
- Tailwind CSS styling -- customizable design tokens that adapt to any brand
- Tree-shakeable ESM exports -- import only what you need, keep bundles small
npm install @justice-os/componentsimport { FileUploader, StatusTracker, DashboardShell } from '@justice-os/components';
// Build a case dashboard in minutes
function CaseDashboard() {
return (
<DashboardShell title="My Case" sidebar={<nav>...</nav>}>
<StatusTracker
status={{ id: '1', label: 'Discovery', stage: 'discovery', updatedAt: new Date() }}
stages={['Filed', 'Served', 'Discovery', 'Mediation', 'Hearing', 'Resolved']}
/>
<FileUploader
acceptedTypes={['pdf', 'jpg', 'png']}
maxSizeMB={25}
onUpload={(files) => console.log('Uploaded:', files)}
label="Upload evidence files"
/>
</DashboardShell>
);
}See examples/dashboard-demo.tsx for a complete working dashboard.
git clone https://github.com/dougdevitre/justice-components.git
cd justice-components
npm install
npm run dev # Opens Storybook at localhost:6006| Feature | Status |
|---|---|
| Evidence components (FileUploader, EvidenceViewer, ChainOfCustody) | Done |
| Case components (StatusTracker, TimelineView, PartyManager) | In Progress |
| Court components (CourtCalendar, HearingCard, JudgeInfo) | In Progress |
| Communication components (NotificationCenter, SecureMessaging) | Planned |
| Layout components (DashboardShell, SideNav, CommandPalette) | Done |
| Storybook documentation for all components | Planned |
See docs/architecture.md for detailed Mermaid diagrams covering the component taxonomy, design system architecture, and theme provider.
See CONTRIBUTING.md for guidelines.
MIT -- see LICENSE for details.
This repository is part of the Justice OS open-source ecosystem — 32 interconnected projects building the infrastructure for accessible justice technology.
| Repository | Description |
|---|---|
| justice-os | Core modular platform — the foundation |
| justice-api-gateway | Interoperability layer for courts |
| legal-identity-layer | Universal legal identity and auth |
| case-continuity-engine | Never lose case history across systems |
| offline-justice-sync | Works without internet — local-first sync |
| Repository | Description |
|---|---|
| justice-navigator | Google Maps for legal problems |
| mobile-court-access | Mobile-first court access kit |
| cognitive-load-ui | Design system for stressed users |
| multilingual-justice | Real-time legal translation |
| voice-legal-interface | Justice without reading or typing |
| legal-plain-language | Turn legalese into human language |
| Repository | Description |
|---|---|
| vetted-legal-ai | RAG engine with citation validation |
| justice-knowledge-graph | Open data layer for laws and procedures |
| legal-ai-guardrails | AI safety SDK for justice use |
| emotional-intelligence-ai | Reduce conflict, improve outcomes |
| ai-reasoning-engine | Show your work for AI decisions |
| Repository | Description |
|---|---|
| evidence-vault | Privacy-first secure evidence storage |
| court-notification-engine | Smart deadline and hearing alerts |
| justice-analytics | Bias detection and disparity dashboards |
| evidence-timeline | Evidence timeline builder |
| Repository | Description |
|---|---|
| court-doc-engine | TurboTax for legal filings |
| justice-workflow-engine | Zapier for legal processes |
| pro-se-toolkit | Self-represented litigant tools |
| justice-score-engine | Access-to-justice measurement |
| justice-app-generator | No-code builder for justice tools |
| Repository | Description |
|---|---|
| justice-persona-simulator | Test products against real human realities |
| justice-experiment-lab | A/B testing for justice outcomes |
| Repository | Description |
|---|---|
| digital-literacy-sim | Digital literacy simulator |
| legal-resource-discovery | Find the right help instantly |
| court-simulation-sandbox | Practice before the real thing |
| justice-components | Reusable component library |
| justice-dev-starter-kit | Ultimate boilerplate for justice tech builders |
Built with purpose. Open by design. Justice for all.
This project is provided for informational and educational purposes only and does not constitute legal advice, legal representation, or an attorney-client relationship. No warranty is made regarding accuracy, completeness, or fitness for any particular legal matter. Always consult a licensed attorney in your jurisdiction before making legal decisions. Use of this software does not create any professional-client relationship.
I build AI-powered platforms that solve real problems. I also speak about it.
CoTrackPro · admin@cotrackpro.com
→ Hire me: AI platform development · Strategic consulting · Keynote speaking
AWS AI/Cloud/Dev Certified · UX Certified (NNg) · Certified Speaking Professional (NSA) Author of Screen to Screen Selling (McGraw Hill) · 100,000+ professionals trained