Skip to content
GLO
All posts

Blog

We Built a Full CRM for a Paving Company in 2 Weeks — Here’s What We Learned

May 20, 20267 min readBy Tiago Jahchan
Dark dashboard concept showing job tickets, scheduling cards, and invoice rows in a glassmorphic UI with the silhouette of a paving truck.

In April 2026, we built a complete custom CRM, invoicing system, and AI voice agent for Ottawa Driveway Experts — a residential paving contractor in eastern Ontario — and shipped the whole stack to production in 14 days. Here’s what we built, what we cut, and what we learned about building custom software for Canadian small business.

The starting state

Pierre Chevrier Jr., the owner, was running his business out of three things: a notebook, a Google Sheets file, and an inbox. Quotes were sent as PDFs, invoices were chased manually, and every customer record lived in one of those three surfaces. Generic CRMs had been tried and abandoned twice — once because the workflow didn’t match how paving jobs actually run, once because the team simply stopped logging in.

The pitch was straightforward: build something that fits the way the business already runs, instead of forcing the business to fit a SaaS tool.

What we scoped

After a 90-minute consult and a half-day on site watching how quotes and jobs actually flowed, we landed on the minimum useful system. Six modules:

  • Lead intake. One screen to log a new lead with address, driveway dimensions, surface type, and source — including auto-creation from inbound AI voice calls.
  • Quotes. Templated quote generator that priced asphalt square-footage with regional defaults and produced a branded PDF.
  • Scheduling. Drag-and-drop crew calendar with weather overlay and route grouping.
  • Invoicing. Stripe-backed invoicing with deposit and final payment splits, plus a Pay Now button on every PDF.
  • Customer history. One screen per customer showing every quote, job, call transcript, and payment.
  • AI dossier and follow-ups. A button on every customer screen that drafts a tailored follow-up SMS or email using job history and the most recent call transcript.

What we deliberately cut

Half the value of a custom build is what you don’t ship. We cut timesheets, payroll integration, vendor purchase orders, and a customer-facing portal. None of them were what was bleeding the business right now. They can ship in v2 if the data argues for it.

We also explicitly didn’t build a mobile app. Pierre’s team uses the system on phones — but as a responsive web app, not a native install. Two weeks vs eight, same UX.

The architecture (in plain words)

  • Next.js 14 + Supabase Postgres. Single Vercel deploy. One database, one auth layer.
  • Stripe for invoicing. Webhooks pipe payment events back into the CRM so customer history is always live.
  • Twilio + Retell for the AI voice agent. Calls hit Retell, Retell hits our intake endpoint, the lead lands in the CRM with a transcript.
  • OpenAI + Anthropic for the dossier and follow-up drafting. Routed through a small in-house abstraction so we can swap models without touching the UI.

Total third-party cost: under $80 CAD/month including AI usage at current call volume. No SaaS subscriptions, no per-seat pricing.

What we shipped in week 1 vs week 2

Week 1: data model, auth, lead intake, customer screen, quote generator. The team started using lead intake on day 5.

Week 2: scheduling, Stripe invoicing, AI voice agent integration, dossier/follow-up drafting, deploy hardening. Live on day 14.

Three things every owner should demand from a custom build

  1. You own the code. Repo in your name, deployable to your own cloud account if you ever want to leave. Anything less is hostage data dressed up as a project.
  2. A real cutover, not a parallel run. Ask for a clean migration plan from your current notebook/sheet/SaaS. If the team is asked to log work in two places for a month, the project will fail.
  3. Embedded support after launch. The first two weeks of production usage will surface ten things you didn’t know you needed. A build that ships and disappears is half a build.

What this kind of project actually costs

A focused custom CRM for a small business — five-to-fifteen modules, AI assists, clean Stripe integration — typically lands between CA $8k and CA $18k for the build, plus a monthly retainer in the low four figures that covers hosting, AI usage, monitoring, and ongoing feature work. That’s less than two months of a senior employee, and the system never quits.

If you’re running on spreadsheets and you can feel the bottleneck, that’s the signal. The longer you wait, the more expensive the eventual migration. Book a 30-minute call and we’ll tell you, on the call, what we’d build first and what we’d cut.

Want this kind of system in your business?

Tell us about your business. We’ll tell you what we’d build, what it’d cost, and whether it’s worth doing.

Book a Call