Work/Full-Stack Web

Master Chap CRM

Internal CRM for a bolt distributor: scanned-invoice backfill plus live tickets

Typeclient
Statusshipped
Updated2026-08-02
Commits74
SourcePrivate

What it is

A single Next.js CRM for Chaparral Bolt & Supply that merges a historical backfill of scanned paper invoices with day-to-day sales and purchase ticket creation. Operators key line items beside the source PDF, and live tickets and quotes go out as branded PDFs by email; both flows share one parts catalog.

The problem

Years of paper invoices and a spreadsheet parts list left the distributor without searchable sales and purchase history.

How it works

  1. Next.js 16 on Supabase (Postgres, Storage, Realtime) with three password-scoped sections: hand-entry backfill, typed-entry backfill and live operations
  2. Scanned invoice PDFs are batch-uploaded to a Storage bucket; a split-pane editor shows the PDF beside the line items, with an approve step
  3. Live side creates tickets and quote previews, builds PDFs client-side and emails them through Resend
  4. Parts catalog seeded from the master part-number spreadsheet and pushed by Realtime into in-progress tickets
  5. Every server action re-checks scope behind an HMAC-signed cookie gate in the Next 16 proxy

Stack

Next.js 16TypeScriptSupabasePostgresResendjsPDFpnpm

Disciplines

For your business

A custom internal CRM that digitizes a distributor's paper invoice archive and runs live quoting and ticketing from one parts catalog.