OnTract Contract Management System
A team-built contract intelligence platform for small and mid-sized businesses: it summarizes contracts, extracts key clauses, and lets users ask questions about their documents in chat. Built with Next.js, Supabase, OpenAI, LangChain, ChromaDB, and LangSmith.
- Stack
- Role
- Member of a seven-person team.
- Links
- Private repository. Live app
Screenshot

Purpose
Contract-analysis tools tend to be built and priced for enterprise legal teams. OnTract aims to give smaller businesses similar summarization, clause extraction, and document search at a lower cost, so they do not have to review every agreement by hand.
Team-level description based on a teammate's public case study of the project.
Team
Seven people built the platform: the Next.js front end, the Supabase backend (authentication, database, storage, edge functions), the AI pipeline for summarization, clause extraction, and chat, and the billing, tracing, and email integrations.
Technical architecture
- Core. A Next.js front end on Supabase (authentication, Postgres, storage) and Supabase edge functions. Only Supabase is required to run the core app.
- AI processing. Edge functions call OpenAI to summarize contracts and extract key clauses when a document is ingested. LangChain and ChromaDB provide semantic search and multi-turn chat over ingested contracts, and answers point back to the source excerpt.
- Observability. LangSmith traces LLM calls, so a wrong answer can be traced to retrieval, the prompt, or the model.
- Other integrations. Stripe for subscription billing and Resend for team and client invitation emails. These are optional and only switch on when their keys are configured.
Sources: the team's local setup guide and a teammate's public case study.
Technical decisions
- Chunking on clause boundaries rather than fixed sizes, so a clause stays together with its key figures.
- ChromaDB over a managed vector service to avoid recurring hosting cost while demand was being validated, with the retrieval layer kept swappable.
- Optional-by-default integrations, so a new teammate can run the app locally with only Supabase.
Team decisions, as described in a teammate's public case study.
Known limitations
As the team has noted, pre-launch evaluation relied on manual spot-checks rather than a repeatable test set, and pipeline latency was not formally measured. Scanned PDFs without clean OCR give weaker summaries.