Inspiration

Every year, businesses lose thousands of dollars to auto-renewed contracts they forgot about. A missed cancellation window on a $50K SaaS license can blow an entire quarter's budget. We saw this happen repeatedly in B2B teams juggling dozens of vendor relationships — and realized there was no simple, intelligent tool to solve it.

ContractPulse was born from a simple question: What if your contracts could tell you when they need attention?

What it does

ContractPulse is a contract renewal intelligence platform that:

  • Parses contracts with AI — Upload a PDF and Amazon Textract automatically extracts key terms (renewal dates, notice periods, payment terms, liability clauses)
  • Scores risk automatically — Contracts are flagged as high/medium/low risk based on value, auto-renewal status, and time remaining
  • Sends smart alerts — A daily cron job checks for contracts expiring in 30, 60, or 90 days and notifies the right people
  • Visualizes spend — Dashboard with vendor spend analytics to identify cost-saving opportunities
  • Supports multi-tenancy — Org-scoped data with role-based access for teams

How we built it

We chose a production-grade stack from day one:

  • Frontend: Next.js 14 with App Router, React Server Components, Tailwind CSS, and shadcn/ui for a polished, accessible UI
  • Database: Amazon Aurora PostgreSQL (Serverless v2) — scales to near-zero during inactivity while providing enterprise reliability
  • ORM: Prisma for type-safe database access and easy migrations
  • AI: Amazon Textract's AnalyzeDocument API to extract structured data from contract PDFs
  • File Storage: Vercel Blob for contract document storage
  • Auth: NextAuth.js with JWT sessions and middleware-based route protection
  • Deployment: Vercel with automatic CI/CD from GitHub
  • Alerts: Vercel Cron Jobs running daily to check renewal windows

The architecture follows a clear separation: Vercel handles compute and edge delivery, AWS handles data persistence and AI processing.

Challenges we faced

  1. Prisma on Vercel — Vercel's dependency caching meant Prisma Client wasn't regenerated on deploy. Solved by adding prisma generate to the build script.
  2. Special characters in database URLs — Aurora's generated passwords contain characters that break URL parsing. Had to URL-encode the connection string.
  3. Multi-tenancy scoping — Ensuring every query is scoped to the user's organization required threading session context through server components and API routes.
  4. Textract term extraction — Raw Textract output is unstructured blocks of text. We built a keyword-matching parser to identify relevant contract clauses with confidence scores.

What we learned

  • Aurora Serverless v2 is genuinely impressive for startups — you get enterprise PostgreSQL that costs almost nothing at low traffic
  • Next.js App Router with Server Components eliminates most of the client/server data-fetching complexity
  • Prisma + Aurora is a powerful combination for rapid prototyping that doesn't sacrifice production readiness
  • Building for multi-tenancy from day one saves massive refactoring later

What's next

  • Email delivery via Amazon SES for real alert notifications
  • Slack integration for team notifications
  • Contract comparison (diff two versions)
  • Bulk upload and batch Textract processing
  • Team collaboration features (comments, approvals, workflows)

Built With

  • amazon-aurora-postgresql
  • amazon-textract
  • next.js
  • nextauth.js
  • prisma
  • react
  • shadcn/ui
  • tailwind-css
  • typescript
  • vercel
  • vercel-blob
Share this project:

Updates

posted an update

ContractPulse is Live!

Just submitted ContractPulse to the AWS + Vercel Hackathon (#H0Hackathon).

What it does: AI-powered contract renewal intelligence — upload PDFs, automatically extract key terms with Amazon Textract, and get smart alerts before renewals slip through.

Tech stack:

  • Aurora PostgreSQL Serverless v2
  • Next.js 14 (App Router)
  • Amazon Textract for document AI
  • Vercel Blob for file storage
  • Prisma ORM + NextAuth.js

Live: https://contract-pulse-ten.vercel.app/ Code: https://github.com/Ray56monds/contract-pulse

Built solo in a weekend on production infrastructure from day one. More features coming soon — SES email alerts, Slack integration, and bulk PDF processing.

Log in or sign up for Devpost to join the conversation.