Juris AI
An AI assistant that analyzes legal contracts and helps you negotiate them.
- Status
- Live
- Role
- Full Stack Developer
- Team
- Solo
- Timeline
- 1 week

The problem
Legal contracts are dense and hard to understand and negotiate.
Who it is for
Users who need to understand a contract. It does not replace professional legal advice.
What I built
A legal assistant that summarizes contracts, highlights key clauses, and suggests negotiation points using Gemini. Files are processed in memory and the extracted text lives briefly in Redis with a TTL, so nothing is stored permanently. Next.js frontend, Express backend, Google OAuth and email/password sign-in.
Built with
- Frontend
- Next.js (App Router)
- Tailwind CSS
- Backend
- TypeScript
- Node.js
- Express
- AI
- Google Gemini
- Auth
- Passport.js
- Google OAuth 2.0
- Email/password
- Data & Files
- Redis (TTL cache)
- PDF parsing
- DOCX parsing
In detail
Note
Privacy first
All uploaded documents are processed ephemerally and are never permanently stored. Files live in memory only for the duration of analysis.
Key features
AI-powered contract summaries
Turns dense legal clauses into plain summaries.
Key clause and term highlighting
Finds important legal terms and sections in a contract.
Negotiation insights
Suggests points users can raise to improve their negotiating position.
Privacy-first processing
Files are processed in memory and discarded after analysis. Nothing is written to disk.
Temporary data storage with TTL
Extracted text is cached briefly in Redis with a short TTL and deleted once processing finishes.
Authentication
Google OAuth 2.0 and email/password sign-in through Passport.js.
Data flow & privacy model
Authentication
User logs in with Google OAuth or email/password.
File upload
User uploads a legal contract (PDF or DOCX) through the frontend.
Text extraction & temporary storage
Backend extracts raw text from the document. Text is stored temporarily in Redis with a short TTL; the original file is immediately discarded.
AI analysis
Extracted text is sent to the Gemini API for summarization and insights.
Result delivery
AI-generated summaries, highlighted clauses, and negotiation insights are returned to the user dashboard.
Automatic data deletion
Redis entries are deleted immediately after successful processing.
Decision
Ephemeral by design
Documents are never persisted. File handling stays in memory and Redis with a TTL is the only intermediate store, so there is no stored set of user contracts to secure, leak, or subpoena.
Outcome
Juris AI analyzes contracts without storing them. Files are handled in memory, extracted text lives briefly in Redis, and the model returns structured summaries, highlighted clauses, and negotiation insights.
Challenges
- Secure in-memory file processing
- Reliable contract summarization
- Ephemeral data handling with Redis
What I learned
- AI-driven document analysis
- Privacy-first system design
- File parsing and text extraction pipelines

Have a role in mind?
Send me a message on X with the role and a link to the posting. My resume has the rest.