Back to projects
SaaS Product

ServiceClerk

ServiceClerk homepage showing a sample job from quote to final payment

Overview

ServiceClerk is a field service management SaaS for independent contractors and the trades, and the product I'm taking to market. Contractors run the whole money side of a job in one place: build a quote, turn it into a signed contract, request a deposit, issue change orders and progress bills, and send the final invoice. Customers review, sign, and pay from a share link on their phone — no account needed. CRM, scheduling, and job-linked task management keep the day-to-day work close to the job. I designed, built, and launched it as the sole engineer across product, backend, infrastructure, and UI, growing it out of an earlier portfolio project, Estimate Generator.

ServiceClerk is built on the Next.js 16 App Router with TypeScript, backed by Supabase PostgreSQL with Drizzle ORM as the query layer. Supabase Auth handles Google OAuth and email sign-in. Stripe Billing runs the SaaS subscriptions, while Stripe Connect onboards each contractor's own account so they can collect card and bank payments from homeowners for deposits, progress bills, and invoices. Payments are recorded in an append-only ledger, so documents say what is owed while the ledger records what actually moved. Resend delivers transactional email for account and customer-document workflows, Sentry provides production error and performance monitoring, and the app is deployed on Vercel.

Next.js 16 / ReactSupabase (PostgreSQL)Drizzle ORMStripe Billing + ConnectGoogle OAuth + Email AuthResend