Live project dashboard

Once the build starts, the same URL becomes a live view of the customer's project: what stage is underway, what milestone is next, photos, activity, invoices and their agreement.

What it is

The final stage of the funnel. It reads the project's synced Gantt phases, milestone completions, stage logs and customer photos and refreshes every 30 seconds. The header carries an underway-now and next-milestone banner, a segmented progress bar and an action rail for anything that needs the customer. Every block below is individually switchable by the builder.

Also called: customer build tracker · project status page · client dashboard · track my build

See it, piece by piece
01

The first thing they read is what is happening this week

The header names the phase underway and the next milestone due, above a bar with one segment per phase, weighted so a twelve-step framing phase reads as a longer stretch of the build than a three-step one. A single percentage does not answer where is my building; framing half done, siding not started does. The customer answers their own status question at nine on a Sunday night instead of calling you on Monday.

Live Project Dashboard
Cedar Hollow
Cedar Hollow Builders
Live Project Dashboard
Zimmerman Equipment Barn
Marla Zimmerman Approved Live
Underway now
Framing
Next milestone
Trusses Up
1184 Quarry Ridge Rd, Seneca, KS 66538
Build progress
60% · 21/35 milestones
Permitting
Dirt Work
Concrete
Materials
Framing
Siding & Roofing
Final Payment
Underway now and next milestone, then one bar segment per phase. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
02

Every phase opens into the checkpoints your crew actually ticks

Permitting, dirt work, concrete, materials, framing, siding and roofing, final payment — each expands into its checklist with completion dates and the site photos posted to that phase. If you renamed a stage or added one for a particular build, the customer sees your names, not a generic default set. Milestone photos your crew took as internal documentation stay internal.

Build Progress
Build Progress
PermittingCompleted
4/4
Dirt WorkCompleted3
4/4
ConcreteCompleted5
6/6
MaterialsCompleted
4/4
F
FramingIn Progress4
3/6
Post Set
Completed August 6, 2026
Girts Done
Completed August 11, 2026
Equipment on Site
Completed August 14, 2026
Trusses Up
Bracing Complete
Framing Inspection
Photos (4)
S
Siding & RoofingPlanned
0/6
$
Final PaymentPlanned
0/5
One phase expanded: ticked checkpoints with dates, and its photo strip. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
03

Photos in one place, forever, instead of one text at a time

Published site photos land in a grid with a full-screen viewer, arrow-key paging and a position counter, and they also appear inside the phase they belong to. This is the update customers ask for most and the thing they forward to family. Only photos you publish reach them, so crew documentation shots stay on your side of the wall.

Customer Photos
Customer Photos (8)
The customer-facing grid — every photo here was published by the builder. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
04

An unpaid invoice or an unsigned change order surfaces at the top

A compact rail in the header states how many invoices are due and the total balance, and how many change orders need a signature, and jumps to the real card lower down. When nothing is outstanding it renders nothing at all, so the dashboard never nags a customer who is square with you. Before it existed, a customer with a due invoice could scroll straight past it.

05

Project total, current stage, approval date, milestones completed

Four tiles at the top of the page, so the questions customers phone about — what was the total again, what stage are we on — are answered without scrolling. The status tile names the phase that is actually running rather than a generic label.

Live Project Dashboard — summary
Project Total
$84,320.00
Status
Framing
Approved On
June 12, 2026
Milestones
21 / 35
Project Total, Status, Approved On, Milestones. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
06

A history that does not bury the rest of the page

Completed milestones, stage changes and photo days in one feed, newest first, five at a time, with reveal five more, reveal all, and collapse back to five. A finished build logs around forty milestones plus stage completions and photo days; unbounded, that feed turns the dashboard into a wall nobody reads.

07

The signed agreement stays retrievable, without leaving the page

A card on the dashboard opens the fully executed agreement in a modal over the project, keeping the print action and never navigating them away. It appears only once the contract is genuinely counter-signed, so a half-executed agreement is never handed over as the final copy. Customers ask for their contract months later, and this is where it lives.

08

The customer knows the exact day their build started

The first time you click Start Project, the page they bookmarked greets them with confetti in your brand colours and a card telling them the project is underway and this is now their dashboard. It fires once per browser, so somebody checking progress daily is not celebrated every visit. Breaking ground is the peak of their year; otherwise it is just another email.

How it works
  1. 1The dashboard only mounts once the project_started_at gate is set
  2. 2/api/client-portal/project returns phases, milestones, milestone config, stage logs and photos
  3. 3Phases are ordered by the Gantt's own startDay, with a stable sort as belt-and-braces
  4. 4Milestone lookups key on the unique task id; stage status, photos and fallbacks key on the stage type
  5. 5dash: keys from the shared sections map decide which blocks render, all defaulting ON
Why we built it

Once the contract was signed, a customer's only source of progress was phoning the builder, and "any update?" calls are the tax a builder pays for a page that does not exist. The same link becomes a live dashboard carrying phase progress, milestones, photos, invoices and change orders, and any block can be added or removed at any time without resending anything. Two faults had to go first: custom phases collapsed into one another and lost their milestones, and stages could render out of sequence, putting permitting last on a job whose permit was pulled first. A progress bar that reads out of order is worse than no progress bar, because the customer trusts it.

The problem
  • Status update calls and texts during a months-long build
  • Customers with no visibility after they sign
  • Progress presented out of sequence and undermining trust
Sound familiar?
What you get
The customer answers their own status question at any hour
The same bookmarked link they used for the quote
The builder chooses exactly how much of the build to expose
What's inside
Segmented build progress bar
One bar segment per phase, each filled by its own milestone completion and weighted by how many milestones that phase has.
Phase timeline with milestone checklists
Every build phase as an expandable row showing its checkpoints, which are ticked, when they were completed, and the site photos for that phase.
Jobsite photos with lightbox
A grid of the builder's published site photos with a full-screen lightbox, arrow-key navigation and a position counter.
Recent activity feed with reveal in fives
A running feed of completed milestones, stage changes and photo days, showing five at a time with reveal-five, reveal-all and collapse controls.
Needs-your-attention action rail
A compact rail in the dashboard header showing only what genuinely needs the customer — an unpaid balance or an unsigned change order — and nothing at all when there is nothing outstanding.
Project summary tiles
Four compact tiles at the top of the dashboard: project total, current stage, approval date and milestones completed out of total.
Signed agreement always one click away
A dashboard card opens the fully signed agreement in a modal over the dashboard, never navigating the customer away.
Contact your builder from the dashboard
A contact block and call button on the dashboard, using the one authoritative business number and hiding itself entirely when that number is blank.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →