Shazil Khan
Back to portfolioMy own product · Legal tech

FrontDesk Legal

My own product: an AI front desk that answers a personal injury firm's website visitors at any hour, collects the case details and sends the lead to the team.

Role
Founder and developer
Timeline
2026, live since June
Stack
Next.js 15 App Router, React 19, TypeScript, Supabase with pgvector, Vercel
Live
frontdesklegal.com ↗
FrontDesk Legal home page
5chat API routes
6tables plus vector search
1private demo per prospect firm
24/7answering website visitors

The situation

Injury cases often arrive at night, when nobody at the firm is answering. Most website visitors leave without speaking to anyone, and those leads go to whichever firm replies first.

Selling to firms also needed proof: every prospect should see the assistant working on their own brand.

What I built

  • The marketing site, with SEO set up and a blog.
  • A private demo for every prospect firm, behind a link checked on the server with a signed cookie.
  • An admin area to create, edit and remove demos and see each prospect's activity.
  • The chat engine, phase one: six tables plus pgvector, five API routes (config, init, message, lead, end), lead extraction and scoring, and rate limiting.

What was hard

A form that was marked as spam

The demo request form posted from the server, and the form service rejected those posts as spam. I moved the submission into the browser, where it is treated as a real visitor.

Tracking that broke after the response

Activity tracking read request headers inside Next.js's after() callback, where they are no longer available. I captured them first and passed them in.

A lead score that silently skipped

Some conversations never got a lead score. I found the skip and fixed it in the new engine, so every finished chat is scored.