Jobsite photos

The crew shoots from a phone, and two visibly different buttons decide whether a photo goes in the job file or in front of the customer.

The operating system for post-frame and barndominium builders.

Part of The Handover
What it is

Photos taken on the stage the crew is standing in, filed against that job and that checkpoint automatically. Two streams, not one: the office record, and the customer's gallery. Which stream a photo lands in is one deliberate tap, and the two buttons are made to look nothing alike — because the mistake this prevents is a one-way one. Because Leads 2 Build serves only post-frame and barndominium builders, those stages and checkpoints are the trade's own — posts set, trusses up, steel on. Because Leads 2 Build serves only post-frame and barndominium builders, those stages and checkpoints are the trade's own — posts set, trusses up, steel on. Because Leads 2 Build serves only post-frame and barndominium builders, those stages and checkpoints are the trade's own — posts set, trusses up, steel on. Because Leads 2 Build serves only post-frame and barndominium builders, those stages and checkpoints are the trade's own — posts set, trusses up, steel on. Because Leads 2 Build serves only post-frame and barndominium builders, those stages and checkpoints are the trade's own — posts set, trusses up, steel on.

Also called: progress photos · site photos · customer photos · document the build

See it, piece by piece
01

Two streams, not one pile

Every photo goes to the office record, the customer's gallery, or both — and it is decided as it is taken, not sorted out later by somebody who was not there.

Customer photos vs checkpoint proof
Customer PhotosShared

Published to their portal the moment you tick it.

Checkpoint proofInternal

Stays internal. Your record, not their gallery.

The two destinations, chosen at the moment of the shot. Real screen · sample data.
Without it

By Friday afternoon somebody is scrolling two hundred shots deciding which ones the customer is allowed to see, and nobody can remember any more which pour those forms belong to.

Why we built it

A customer reads every photo as news about their build, and a crew only shoots freely when they know nobody outside will see the mess. The two piles do different jobs — one is a story you are telling, the other is evidence you may need — so they are kept apart end to end, and internal is the default: nothing reaches the customer that was not put there on purpose.

02

The buttons look nothing alike

Try it

Save to job and send to customer are deliberately dissimilar — different shape, different weight, different words. This is the one tap where a slip is public and permanent, so it is made hard to make. What those two taps look like in a pair of gloves, out at the site, is the crew's side of it.

Crew portal — where is this photo going?
Attaching to
Wenger 40×60 Shop · Framing
Resized for upload · 4.2 MB → 812 KB
Two buttons a tired thumb cannot confuse. Real screen · sample data.
Without it

A gloved thumb in full sun sends the six-a.m. mud shot to the customer, and the reassurance call happens before the pour is even finished.

Why we built it

A crew lead needs to shoot without worrying he'll embarrass the company. Colour, weight and wording all differ, and both targets are sized for a work glove rather than a desk mouse. Two buttons rather than one toggle, because a toggle has a state you can misread in sunlight and two labelled buttons have no state at all — and the upload route refuses any photo whose destination is not literally one of the two, so a missing field can never quietly mean customer.

03

It already knows which stage you're on

Open the stage, shoot. The job, the stage and the checkpoint are attached with no typing — because a filing step the crew has to remember is a filing step that does not happen.

Mark checkpoint complete
Are you sure you want to mark “Trusses Up” as complete?
Trusses UpBracing Complete
Add Another Photo
CancelYes, complete
Filed against the checkpoint, automatically. Real screen · sample data.
Without it

Three hundred pictures in a camera roll and no way to say which of the four jobs on the go this footing belongs to.

Why we built it

Nobody on a ladder wants a filing job, and a photo that files itself is one that actually gets taken. The confirmation names the checkpoint and shows the shots riding along with it, so the last look happens before the tick is committed rather than a week later — and one more photo can go on right there, which is exactly when the missing one gets noticed. On the crew's phone the job and the stage come from the shift he is clocked into; if he is on two jobs with no shift open the upload is refused with "clock in first", because a refusal is a better answer than a guess about which site he is standing on.

Sound familiar?“photos are on five different phones”
04

Ten in a row, without leaving the camera

Documenting a pour means twenty shots, not one. Shoot, look at it, retake it, take another — up to ten without ever going back to the screen — and they land together as a strip on the checkpoint you were standing at.

Stage checkpoints
Framing Details
CheckpointsEdit
Post Set3 photos
Post SetGirts DoneTrusses Up
Girts Done2 photos
Equipment on Site
Trusses Up
Bracing Complete
Framing Inspection
A burst, landed as a strip on one checkpoint. Real screen · sample data.
Without it

Documenting a pour takes twenty shots and the crew quits at four, because every frame throws them back to a screen before they can take the next one.

Why we built it

A crew that can document a pour without breaking stride will actually do it. Review and retake happen inside the camera, so one more shot costs one more tap instead of a round trip through a form. They land on the checkpoint row rather than in a job-wide album, which means a burst dropped on the wrong row is visibly on the wrong row — and every tile carries its own delete, so fixing it is one tap too.

05

Circle the problem before the photo is sent

Try it

Before a walk-round leaves the phone, the crew lead can draw on any shot — a ring round the brace, a numbered arrow at post 4, a note typed or spoken. The photo stays untouched; the marks ride beside it. Everything that editor does is marking up a photo.

Crew phone — marking up the walk-round
Cancel
Framing · 2 of 6
Done
‹›
Thickness
100%
Post 4 flagged on the crew's phone, shot 2 of 6. Real screen · sample data.
Without it

The out-of-plumb post gets mentioned on a call at six, and by Monday nobody remembers which post.

Why we built it

The man who saw the problem is the best person to point at it, and the best moment is while he is still standing in front of it. When he can say it on the photo, the office understands the first time and he feels his judgement counted — fewer callbacks, fewer wrong fixes.

Sound familiar?“photos live in a group text and never reach the job file”
06

One bar of signal, and it says so when there isn't

The shot is made ready on the phone before anything is sent — over four megabytes it is scaled and re-encoded, under it goes byte for byte. A walk-round from the camera waits on the phone and sends itself when there's a bar, with the count on screen — 4 photos saved on this phone, waiting to send. A single photo that can't go gets the sentence, not a spinner: no signal, the photo wasn't saved, try again when you have a bar. How a man with no app and no password reaches that camera at all is the crew field portal, and what the upload costs him in data is the crew's side of it.

Crew field link
Marlin Zook
Crew B
On the clock · 3h 12m
Wenger 40×60 Shop
Framing
Clock Out
Add Photo
Blocked
Framing
✓Posts set and braced
✓Trusses set
Purlins and girts on
Roof steel on
WainscotNot needed on this job
This week
32h
24h approved · 8h waiting
Mon · Wenger 40×60 Shop8h ✓
Tue · Wenger 40×60 Shop8h ✓
Wed · Wenger 40×60 Shop8h ✓
Thu · Wenger 40×60 Shop8h · waiting
The crew's phone — the whole day on one link. Real screen · sample data.
Without it

The back line of that property has no bars, the upload dies without saying so, and the shots that would have proved the pad was right sit on a phone nobody thinks to check.

Why we built it

A crew trusts a tool that tells the truth about what happened to their work. So nothing fails quietly: a walk-round waits on the phone with its count showing until the signal comes back, and a single shot that can't go says so in plain words. A queue you can see is honest; one you can't is how a crew believes a photo is filed when it isn't. When a file does have to shrink, resolution is cut before quality — a barn photo is mostly sky and concrete, which is exactly where compression shows.

07

Found again in seconds, months later

Try it

Every shot lands in the photo gallery: a cover per job, opened into its build stages in the order they were photographed, each closed until you need it — with one search across every photo on the account.

Gallery — Projects
6 jobs
Every job with photos, a tap from its stages. Real screen · sample data.
Without it

The photo that would settle the dispute exists, but it's one of thirty thousand and nobody can say which job it's under.

Why we built it

A photo you can't find might as well not exist, and people stop taking photos they never see again. Filing by job and stage — the way a builder already thinks — means the office actually goes back to the record, and the crew sees their photos being used.

08

What the customer actually sees

Try it

Only the shots you sent. Nothing else on that job reaches them, ever — which is why you can send one without thinking twice about it, and why the wall of photographs on their own page reads as a story you chose rather than somebody's camera roll.

Customer Photos
Customer Photos(6)Tap one — it opens full size
The released set, and nothing else. Real screen · sample data.
Without it

The customer's whole sense of how their build is going comes from what they could see from the road and what a neighbour guessed.

Why we built it

Customers relax when what they see is chosen and clean — it reads as a builder in control. The customer's page asks for photos on this job marked customer, and that is the whole of the rule — no second filter, no hidden flag, no per-photo permission list to keep in step. One column decides it, so the guarantee still holds in a year when somebody builds a screen nobody has thought of yet.

Sound familiar?“the crew says they took photos but I cannot tell which site”
09

Progress they can follow

Try it

Photos file against the stage, not the date, so a released set arrives in build order on its own — pad, posts, trusses, steel. Tapping Framing shows framing, at eleven at night, without ringing anybody. What sits beside them on the live project page — the milestones, their building in 3D — is that page's job, not the photo's.

Their project dashboard
↓ Tap a stage — watch the build progress
Site Prep & ExcavationDay 3 · Site
Current stage
Site Prep & Excavation
Photos posted
2 from the field
Next up
Concrete
Photos from the field — posted by your crew
Photos hung off the build stages, in order. Real screen · sample data.
Without it

Every Friday brings the same call asking whether anything actually moved this week, and answering it properly costs half an hour you were going to spend quoting.

Why we built it

A customer who can watch the building go up stops worrying, and a customer who stops worrying stops calling. Ordering by stage rather than by upload time is the decision, and it costs something: a shot sent up two days late from a phone that had no signal lands where the work was instead of at the top of the feed, so nothing announces itself as new. In exchange a stage nobody photographed is visibly empty — which is the honest answer, and usually the useful one.

10

Photos that close a checkpoint

Ticking a checkpoint stops and asks for the shot before it commits — take one, or pick one off the phone. The proof and the progress are the same action, so the record is complete without anybody doing paperwork.

Checkpoint proof shots
Framing · checkpoint proofInternal — not shared
✓
Posts plumb and braced
Tue 7:42am
✓
Trusses set and strapped
Thu 11:15am

Proof shots live on the checkpoint. They are your record if a dispute arrives — the customer never sees them unless you put them in the other stream.

A checkpoint with its proof attached. Real screen · sample data.
Without it

Six months on, somebody asks what the rebar looked like before the pour and all you have is your word for it.

Why we built it

Proof that costs no extra effort is proof that actually gets taken. The ask sits on the tick rather than on the photo, because the tick is the only moment the thing is still visible — afterwards the rebar is under six inches of concrete. The shot stays on the internal side with the time it was taken sitting on it, so the record accumulates as a by-product of the work instead of being one somebody has to sit down and produce.

11

Proof when a delay isn't your fault

Rain on the pad, a washed-out approach, a late delivery. Attach the photo to the delay and the record of why the schedule moved is dated and unarguable — which is the difference between a conversation and a dispute.

Report a delay
Report a delay
Post Set · Hostetler Equipment Shed
What caused it?
WeatherCrew No-ShowMaterial IssueEquipmentPermit DelaySite AccessScope ChangeOther
Days lost
2
Hours lost
4
What happened?
Two inches of rain overnight. Post holes filled and the skid loader could not get to the back line without cutting up the yard.
Photos (2)
Jobsite progress photoJobsite progress photo
Add photos
CancelSave delay
A delay, with the photo that explains it. Real screen · sample data.
Without it

Three weeks after the wet spell the customer wants to know why their build slipped, and all you have is your memory of how bad the approach was that morning.

Why we built it

People accept a delay they can see the reason for; they resent one they only hear about. A delay with no evidence beside it is only your side of the story, so the photo hangs off the delay record itself and the first promised date is kept next to the new one. The customer sees the reason and the date move together instead of hearing about the slip on its own.

Sound familiar?“I do not want the customer seeing the mess at 6am”
12

Send one later, if you want

Try it

The stage keeps its own Share with customer button open long after the pour — shoot a new one, or pick one off the phone — and anything already on their page can be taken off it from the same screen. The decision is reversible in the safe direction.

Stage — Concrete
CONCRETE
Hutchins 60×80 · Stage 2 of 6
Status
Checkpoints
Customer photos
Share with customer, or remove — on the stage itself. Real screen · sample data.
Without it

The one clean shot of the finished gable sits in the job file where the customer will never see it, while Tuesday's mud is in the gallery where they will.

Why we built it

Being able to change a sharing decision later takes the pressure off getting it perfect on site. Everything added in this section is customer-visible by construction, and internal proof shots live on the checkpoint rows instead — so there is no per-photo switch to misread and no way for a shot to change sides after the fact. Taking one back deletes the file rather than hiding it: a photo you decided the customer should not have has no business surviving as a link somebody could still open, and the price of that is that removal is permanent.

13

The customer can send you one too

Try it

They photograph the thing they are asking about instead of describing it down the phone, and it arrives against the job rather than in your texts. That same photo also sits in their thread, beside every message and call they have ever sent you.

Portal media upload

Upload up to 50 MB (MP4), or paste a YouTube / Vimeo / direct link. Takes precedence over photo when both are set.

Try it:
Same path, same bucket
hansen-shop-front.jpgTestimonial photo2.1 MB
walkthrough-zimmerman.mp4Testimonial video41.8 MB
zimmerman-barn-planset-r3.pdfPlans & blueprints8.4 MB
The customer's own upload. Real screen · sample data.
Without it

The walkthrough video and the plan set the customer keeps asking about are stuck in your outbox, too big to send, so the answer to their question turns into another phone call.

Why we built it

Customers feel listened to when they can show you rather than describe it. What a customer sends goes straight to storage on a signed upload rather than through the app, which is the only reason a fifty-megabyte walkthrough survives the trip at all — the old path through the server died at about four and a half. Over the ceiling the refusal names the ceiling in megabytes, and it comes before the upload starts rather than at the end of it, so nobody watches a bar crawl to ninety for nothing.

Sound familiar?“there is no signal on that site”
14

Six fields, and nobody typed one of them

The job, the stage, who took it, the moment the shutter fired, roughly where he was standing, and which stream it went to. All six are attached by the system — the man holding the phone typed none of them.

What the photo filed itself as
What the photo filed itself as

Six fields, none of them typed by the man holding the phone.

JobHostetler Equipment Shedfrom the shift he is clocked into
StageRoof & Sidingthe stage the job is on right now
Taken byNate Ottingerthe crew link he opened — no login
Taken atAug 26, 2026 · 2:14 PMwhen the phone took it, not when it uploaded
Where40.0361° N, 76.2447° Wrecorded, never enforced
Visible toCustomerbecause he pressed the second button
What one photo carries, none of it typed. Real screen · sample data.
Without it

Six months on, two men each swear they photographed that footing, and the file holds one picture with nothing on it but a date.

Why we built it

Crews want the credit for good work, and owners want to know who to ask. Who took it is stamped from the authenticated caller on the way in and only on the way in, so a photo pushed to the customer's side a month later is never re-credited to whoever pushed it — attribution is set once, at capture, or it is not attribution. His name is kept next to his id because crews churn and a credit that resolves to nobody is worse than no credit, and the location is recorded against the row rather than left buried in a file the customer might download.

15

The bundle that came off the truck creased

Try it

Short counts and damage go on the order line where they happened, with the photograph attached — so the credit conversation starts from a record instead of from two memories. Counting what arrived is the materials check; the photograph is this.

Short and damaged — with the photo
Report what was wrong

Short and damaged go on the order with a photo, so the credit conversation starts from a record.

6 shortRibbed steel wall panel, 11.0′61 of 67
Six panels not on the truck. Driver confirmed and signed the sheet.Claim a creditReorder shortAdd another photo
2 damagedGable-end wall steel (cut to rake)17 of 17
Two creased along the rib on the top of the bundle — strapping cut into them in transit.Claim a creditReorder shortAdd another photo

The photo travels with the claim. Three weeks later nobody has to remember which bundle it was.

Short and damaged, with the photo on the line. Real screen · sample data.
Without it

You ring the yard in October about six panels that never came off the July truck, and the whole call is your word against the driver's.

Why we built it

A yard settles faster when the evidence is in front of them and nobody has to argue. The photographs ride inside the claim itself rather than as numbered links — nobody at a lumber yard clicks "1 2 3" in an email — and only the lines that went wrong travel with them, because a four-hundred-row order with ten bad lines buried in it is an order that gets ignored. The evidence is stored on the claim, not just sent in the mail, so it is still under that order and that supplier's name a year later; the cost is a cap of six images inline, because a mail a yard's server bounces proves nothing at all.

16

The stages nobody photographs

Every stage type carries two counts — how many photos exist on it, and how many of those the customer was shown. Permitting with twelve and none shown is exactly right; framing with four is a hole in your record, and you find it now rather than the week you need it.

Stage performance
StageRunsPlannedActualVarianceLong / shortDays lostPhotos
Permitting
Top cause: Permit Delay · 21d
34/381418.6+4.622 / 521d12 (0 shown)
Dirt Work
Top cause: Weather · 9d
41/4233.4+0.411 / 99d96 (41 shown)
Concrete
Top cause: Weather · 14d
39/4156.1+1.117 / 814d188 (79 shown)
Materials Delivery
Top cause: Material Issue · 26d
37/4058.2+3.224 / 326d74 (11 shown)
Framing
Top cause: Crew No-Show · 11d
33/3687.4-0.69 / 1811d402 (166 shown)
Siding / Roofing
Top cause: Weather · 12d
28/3178.9+1.916 / 612d311 (140 shown)
Final Payment
26/27330.04 / 4—58 (26 shown)
Photos per stage, and how many were shown. Real screen · sample data.
Without it

The dispute lands on the one stage that ran three weeks long, and that is also the one stage with two photographs on it.

Why we built it

An owner sleeps better knowing where the record is thin before it matters. The count sits in stage analytics beside how long that stage ran and how many days it lost, because those turn out to be the same question asked twice — a stage nobody documented is usually a stage nobody was watching. Counting is all it does: no target, no nag, because a number that scolds a crew gets fed pictures of the sky.

How it works
  1. 1The crew opens the stage they are working on and shoots
  2. 2The photo is filed against that job and that checkpoint — nobody types anything
  3. 3Two visibly different buttons: save to job, or save and send to the customer
  4. 4Customer-facing shots appear in their gallery on the project page
  5. 5Everything else stays in the office record, attached to the checkpoint that proves it
  6. 6Ten shots in a row without leaving the camera when a stage needs documenting
  7. 7Poor signal queues the upload rather than losing the photo
  8. 8Everything lands in the photo gallery — by job, by build stage, by day — with one search across every photo, and any shot can be marked up with numbered arrows and notes
  9. 9Everything lands in the photo gallery — by job, by build stage, by day — with one search across every photo, and any shot can be marked up with numbered arrows and notes
  10. 10Everything lands in the photo gallery — by job, by build stage, by day — with one search across every photo, and any shot can be marked up with numbered arrows and notes
  11. 11Everything lands in the photo gallery — by job, by build stage, by day — with one search across every photo, and any shot can be marked up with numbered arrows and notes
  12. 12Everything lands in the photo gallery — by job, by build stage, by day — with one search across every photo, and any shot can be marked up with numbered arrows and notes
Why we built it

Jobsite photos on a normal job live in five different phones, in a group text, sorted by nothing. When a customer disputes what was there before the pour, the photo exists — and finding it takes an hour of scrolling somebody's camera roll. The second problem is worse than the first. Once the crew's photos and the customer's photos are the same pile, every photo is a decision nobody is making. The muddy pad at six in the morning, the mistake that got fixed before lunch — a customer seeing those reads them as trouble. So the split is built into the act of taking the photo, and the buttons are deliberately dissimilar so a tired thumb cannot get it wrong.

The problem
  • Evidence that exists but cannot be found
  • One undifferentiated pile of photos serving two different audiences
  • Photos with no job, stage or location attached
  • Uploads lost to bad reception
What you get
Photos attached to the exact stage they document
Explicit customer-visible vs internal split
Customers self-serve updates from their portal
Built only for post-frame and barndominium builders — photos file against your own stages and checkpoints
What's inside
Photos record where and when they were taken

Location and time are captured with the picture — the position, how accurate it is, and the shutter time. Location is best effort: a phone that refuses the prompt never blocks the photo. Older photos simply don't carry it.

PHOTOS

See jobsite photos
on one of your own jobs.

Twenty minutes, your building, your numbers. Bring the job where “photos are on five different phones” — we will show you exactly where that stops.

leads2build.com
Jobsite photos — Leads2Build