We built one Next.js and Supabase system for the division. It covers quoting, bidding, jobs, purchasing, billing, reports and a shared calendar, with permissions checked on every read and write.
- 01
Bid mailbox import
A scheduled task reads the bid mailbox every 15 minutes and brings new invitations into the RFQ Inbox. Estimators stop copying bid requests out of email by hand.
- 02
Itemised quotes with revisions
Quotes are itemised with markup, overhead and tax, and every revision is kept. Estimators can download a quote as a PDF and always see what changed between versions.
- 03
Drag-and-drop bid board
Quotes move across New Requests, Accepted, In Progress and Submitted columns with the total value of each stage shown. The team sees the whole pipeline at a glance.
- 04
Quote to job in one step
A won quote becomes a job with one action. Each job has tabs for purchase orders, change orders, RFIs and submittals, shop drawings, deliveries, schedule of values and billing.
- 05
Purchase order controls
Purchase order numbers come from a ledger seeded by the ERP export, so no number can repeat. Orders above a set amount wait on a PO Approvals screen until an approver signs off.
- 06
Live billing grid
The Billing Tracker replaces the master workbook with a month-by-month grid per job, with export, bulk import and a scan button. Daily scans flag missed billings and late deliveries.
- 07
Nine built-in reports
Reports cover vendor spend, vendor performance, per-PM rollup, customer profitability, billing aging, year-over-year billing, WIP schedule, cash-flow forecast and a PM scorecard. Managers get answers without building spreadsheets.
- 08
Tasks, calendar and permissions
Each person has a task board, and a calendar shows task due dates, deliveries, billing milestones and lien deadlines. Admins define roles from thirty permission keys, enforced by row-level security.