CourtNetra
Independent Product — Indian LegalTech SaaS
The Challenge
India's judicial system operates across 19,660 courts — 1 Supreme Court, 25 High Courts, 688 District Courts, 18,735 Subordinate Courts, and 899 Tribunals — with 5.58 crore (55.8 million) pending cases, ~21,285 working judges, and ~20 lakh registered advocates. Each court has its own website, its own cause list format, its own hearing schedule, and often its own language. Missing a hearing means missing a client — and potentially losing a case. Existing tools are either fragmented (one platform per court system), expensive ($1000+/mo), or built for Western jurisdictions that do not understand Indian procedure, the CPC, or regional languages.
The Approach
Architected CourtNetra as a triple-repository multi-tenant SaaS platform: an Express.js + Prisma backend as the API layer, a Next.js 14 web frontend with CMS dashboard and client portal, and an Expo React Native mobile app for courtroom use. Built Puppeteer-based scrapers normalizing cause lists from 19,660 courts into a unified schema. Integrated Anthropic Claude for 12 AI features including case summaries, hearing prep, and document drafting. Added offline-first mobile with SQLite caching so advocates can work inside courtrooms without connectivity. All backed by Razorpay subscription billing and Meta Cloud API WhatsApp alerts — the way Indian advocates actually communicate.
Three-Repository Architecture
A backend API, a web platform, and a mobile app — each their own repository, their own deployment, their own tech stack. Connected by REST, JWT, and a multi-tenant PostgreSQL database.
Express.js + Prisma API
Express.js 4.21 + TypeScript 5.7 + Prisma 6.4 + PostgreSQL 16. 54 backend services exposing 268 endpoints across 35 route files. JWT authentication with multi-tenant isolation. AI pipeline (Claude SDK), court scrapers (Puppeteer), Razorpay billing, WhatsApp integration (Meta Cloud API), node-cron scheduling, Nodemailer SMTP, pdfmake, Zod validation, Pino logging, Sentry monitoring, Vitest testing. Dockerized multi-stage build on port 4000.
Next.js 14 CMS + Client Portal
Next.js 14 + React 18 + TypeScript 5.6. 41 pages split into CMS dashboard (56 components) + client portal + Three.js landing page (25 components). FullCalendar for hearing schedules, Recharts for analytics, i18next for 8-language support (EN/HI/MR/TE/TA/KN/BN/GU), Framer Motion for animations, Tailwind CSS for styling. Magic-link client portal auth and real-time case progress tracking.
Expo React Native (Android + iOS)
Expo 54 + React Native 0.81 + TypeScript. 37 screens + 20 reusable components organized across 9 Zustand stores and 91 service functions. Offline-first architecture with SQLite cache and background sync — advocates can use it inside courtrooms with no connectivity. Push notifications via Expo, Razorpay native SDK for in-app subscriptions, Reanimated 4 for GPU animations.
The Solution
- Auto-fetch cause lists from 19,660 courts via Puppeteer scrapers normalizing output into unified schema
- 12 AI features powered by Anthropic Claude: case summaries, hearing prep, document drafting, and more
- Multi-tenant case management with full CRUD across cases, hearings, compliance, and filings
- Client portal with magic-link authentication and real-time case progress tracking
- Razorpay subscription billing with 4 tiers: Free, Pro, Team, Enterprise
- WhatsApp alerts for hearing reminders and compliance deadlines via Meta Cloud API
- Time tracking with billable hours, approval workflow, and automatic rate calculation
- Document management with versioning, categories, and client sharing
- Google Calendar 2-way sync + iCal feed for cross-tool interoperability
- Full audit trail with login history, session management, and RBAC (Superadmin/Editor/Clerk/Viewer)
- CSV/PDF/JSON export and import with smart column mapping
- Court fee schedules, e-filing portal lookup (9 portals), and holiday calendars
Feature Breakdown
Case & Court Tracking
- Multi-tenant case CRUD (cases, hearings, compliance, filings)
- Auto-fetch from SCI, 25 HCs, 18,735 District/Subordinate, 899 Tribunals
- Cause list normalization across different court formats
- Hearing calendar with FullCalendar integration
- Compliance deadline tracker for statutory limits
- 9 e-filing portal integrations for direct submissions
AI Features (Claude)
- Case summary generation from filings and orders
- Hearing preparation briefs with precedent research
- Document drafting (petitions, applications, notices)
- Legal research assistant for case law analysis
- Client update drafting in multiple languages
- 12 distinct AI features in total (powered by Claude SDK)
Client & Billing
- Client portal with magic link authentication
- Real-time case progress tracking for clients
- Time tracking with billable hours and approval workflow
- Automatic rate calculation per client / matter / lawyer
- Razorpay subscription billing (Free / Pro / Team / Enterprise)
- Invoice generation and payment reconciliation
Mobile (Offline-First)
- 37 native screens across 9 Zustand state stores
- SQLite offline cache for courtroom use without connectivity
- Background sync when network returns
- Expo push notifications for hearing reminders
- Razorpay native SDK for in-app subscriptions
- Reanimated 4 GPU-accelerated animations
Scale & Scope
The Impact
Tech Stack
“Indian advocates deserve technology that speaks their language — literally. Eight languages, 19,660 courts, offline-first mobile for courtroom use, WhatsApp alerts in the way Indians actually communicate, and AI that understands the CPC. CourtNetra is not a Western legaltech product retrofitted for India. It is a triple-repository, multi-tenant SaaS built from the ground up for a country with 5.58 crore pending cases and 20 lakh advocates — the hardest legal market in the world, and the one most incumbents have given up on.”