Avoy Systems automation flow icon
Avoy Systems
AI Automation & Web Apps
All projects
Lead Management / SaaS2025Live

ServicePro Lead Engine

A full-stack lead capture and management system for service businesses — public contact form, Supabase-backed database, and a protected admin dashboard with status, notes, and CSV export.

ServicePro Lead Engine admin dashboard showing lead records and status filters.
Overview

Project summary

ServicePro Lead Engine is a deployed full-stack web application that handles the full lead lifecycle for a service business: a public marketing site and contact form, a Supabase database for storing leads, and a password-protected admin dashboard where leads can be searched, updated, annotated, and exported to CSV.

Problem

What was broken

Service businesses often capture leads through generic contact forms that drop messages into a personal inbox. Without a structured place to store, track, and follow up on those leads, inquiries get missed, response times suffer, and there is no visibility into which leads are open, contacted, or won.

Solution

What I built

I built an end-to-end system around a typed Next.js App Router stack: a public contact form validated with Zod, a Supabase Postgres table for leads, transactional email via Resend, and a protected admin dashboard for managing the pipeline. The admin view supports search, filter, status updates, internal notes, and CSV export for hand-off to external tools.

Core features

What shipped

  • Public contact form with Zod validation and honeypot spam guard
  • Supabase Postgres table for leads with row-level security
  • Transactional email notifications via Resend on new submissions
  • Password-protected admin dashboard for the lead pipeline
  • Search, filter, status workflow, and per-lead notes
  • CSV export endpoint for downstream tools
  • Responsive UI tested on mobile and desktop
Outcomes

What changed for the business

  • Centralizes every inbound lead in one source of truth instead of a personal inbox.
  • Gives the team a structured status workflow (new, contacted, won, lost) with notes per lead.
  • Provides CSV export so leads can be moved into spreadsheets, CRMs, or accounting tools.
  • Removes manual triage by validating submissions and notifying the team automatically.
Architecture

How it's built

  • Next.js App Router with TypeScript end-to-end and server components for the admin views.
  • Public form posts to a typed API route that runs Zod validation and a honeypot check before writing.
  • Supabase Postgres stores leads; row-level security keeps reads scoped to the admin role.
  • Resend sends transactional emails to the team when a new lead is captured.
  • Admin dashboard is gated by a server-side auth check before any lead data is fetched.
  • Deployed on Vercel with environment variables for Supabase keys and Resend credentials.
Business value

Why it matters

  • Replaces an ad-hoc inbox-based workflow with a structured database the team can actually search.
  • Cuts the chance of lost leads by capturing every submission in a single place with a clear status.
  • Gives the owner a simple admin view to see what is open and what has been followed up on.
  • Enables hand-off to other tools through CSV export, without locking the data into one platform.
What I learned

Takeaways from the build

  • Designing a Supabase schema with RLS up-front is faster than retrofitting auth later.
  • Treating the admin dashboard as its own protected app — not a public route — kept the surface area small.
  • Server-side validation with Zod combined with a honeypot field handled most spam without a third-party service.
  • Keeping the contact form and admin dashboard in one Next.js project simplified deploy, env vars, and TypeScript types.
Screenshots

Product in production

Full-page screenshot of the ServicePro Lead Engine marketing homepage.
Full marketing homepage
Gallery

Inside the build

Full-page screenshot of the ServicePro Lead Engine marketing homepage.
Marketing homepage
ServicePro Lead Engine admin dashboard showing lead records and status filters.
Admin leads dashboard
Have a similar project?

Let's talk about your version of this.

Contact Me