Jobsite photos, with the destination named

Two taps to file a jobsite photo against the right job and stage — and two visibly different buttons for save to job and save and send to the customer.

The operating system for post-frame and barndominium builders.

What it is

Add Photo on the crew's link opens a camera that stays open: he swipes left and right for the stage and up and down for the checkpoint, and every shot is filed under whatever is showing. Those photos are saved to the job — never sent to the customer. A photo meant for the customer is its own, deliberate path: it previews with the job and the stage it will attach to, then makes the man press one of two differently-coloured, differently-worded buttons. There is no default destination and no toggle.

Also called: send photo to customer · progress photos · crew photo upload · site pictures

See it, piece by piece
02

Two buttons, and no default

Try it

The camera never sends anything to the customer — every shot from it is saved to the job. A photo for the customer is its own path: from the Photos door, Add Photo, then Just a photo for the customer or a chosen checkpoint. The preview names the job and the stage it will land on, then makes him press one of two visibly different buttons — dark Save to job, or red Save + send to customer. There is no toggle and no remembered choice, and the server refuses any upload whose destination is not one of those two.

Crew portal — where is this photo going?
Attaching to
Wenger 40×60 Shop · Framing
Resized for upload · 4.2 MB → 812 KB
The confirm screen. press either button. Real screen · sample data.
Without it

A toggle sits at the top of the upload screen, set to whatever it was last time. Somebody photographs a mess to show the office, the toggle is still on “share”, and a homeowner's phone lights up with a picture of their build looking like a disaster.

Why we built it

Because “which photos does the customer see” is a question with a wrong answer, and a switch that remembers last time will eventually give it. Two differently-coloured buttons with different words mean the destination is chosen every single time, by the man who can see what is in the frame.

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

It shrinks on the phone, not on your bill

Anything over 4 MB is scaled to a 3000px long edge at high quality; anything under is left completely alone. HEIC becomes JPEG on the way out, and the rotation is baked into the pixels so a portrait shot never arrives sideways.

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 the photo carries, with nothing typed. Real screen · sample data.
Without it

The crew leader takes six photos, presses send, and stands next to the truck watching a progress bar. Two upload, four fail, and he stops bothering — which is the real cost, because the feature did not break, it just made itself not worth using.

Why we built it

Because one bar of signal is the normal condition on a jobsite, and a 12 MB photo on one bar is a photo that never arrives. Cutting resolution before quality means the picture that lands is still good enough to print — which is why nothing is squeezed that does not need to be.

04

Who, when, and roughly where — typed by nobody

The row records the man, the moment, and the coordinates, which are recorded and never enforced. He typed none of it: the job came off his shift (or the one job he is on), and the stage and the checkpoint are whatever was showing on the camera when he pressed the shutter.

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 streams a photo can land in. Real screen · sample data.
Without it

A folder of two hundred jobsite photos, none of them labelled. Somebody needs the one showing the anchor bolts before the pour, and the only way to find it is to scroll through all two hundred guessing at dates.

Why we built it

Because a photo with no context is a photo nobody can use in eight months, and asking a man on a ladder to type context is asking for it not to happen. Everything here is already known at the moment of the shutter, so none of it has to be asked for.

Sound familiar?“someone sent the customer a photo they should never have seen”
05

It lands on the stage it belongs to

Try it

Not a folder called Photos. The shot attaches to the stage the job is actually on, so Concrete has the concrete pictures and Framing has the framing ones, and both are one tap from the job.

Stage — Concrete
CONCRETE
Hutchins 60×80 · Stage 2 of 6
Status
Checkpoints
Customer photos
Photos on a stage. Real screen · sample data.
Without it

Every photo on every job goes into one gallery ordered by date. Finding anything means knowing roughly when it happened, and the person looking is usually the one person who was not there.

Why we built it

Because the question is never “show me the photos”, it is “what did the pad look like before the pour”. Filing by stage answers the question people actually ask, and it costs nothing at upload time because the stage is already known.

06

Some photos are proof, not progress

A checkpoint that requires a picture is not tickable without one. That shot is filed as proof against the checkpoint, which is a different thing from a photo the customer is shown.

Mark checkpoint complete
Are you sure you want to mark “Trusses Up” as complete?
Trusses UpBracing Complete
Add Another Photo
CancelYes, complete
Ticking a checkpoint that needs a photo. Real screen · sample data.
Without it

The checklist says the vapour barrier went down. Six weeks later the floor is poured, the customer asks, and there is nothing behind the tick except a name and a date — from a man who ticked eleven boxes that afternoon.

Why we built it

Because a tick is a claim and a photograph is evidence, and the two are worth very different amounts when a customer or an inspector asks. Requiring the picture at the moment of the tick is the only time it can be taken, because afterwards the thing is buried.

Sound familiar?“no record of who took which site photo”
07

The proof stays together, per job

Every required shot on the job, in one place, still attached to the checkpoint it proves. Nobody assembles it — it assembled itself as the crew worked.

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.

The proof shots on a job. Real screen · sample data.
Without it

A claim comes in about the footings. The builder knows the work was right, and knows somebody photographed it, and spends a day going through phones and messages trying to prove something he was always sure of.

Why we built it

Because the moment you need this is the moment you cannot build it: a dispute, a warranty claim, an inspector with a question. Having it already collected turns an afternoon of searching into opening a page.

08

The job's own wall of photographs

Try it

Everything filed against the job, most recent first, each one still carrying who took it and when. It is one of the blocks on the customer's page you can switch off if this job is not one you want to show.

Customer Photos
Customer Photos(6)Tap one — it opens full size
The job's photos. Real screen · sample data.
Without it

Photos live in three places — the crew's phones, the office folder, and whatever was emailed to the customer — and no two of them agree. The set the customer has is the set somebody remembered to send.

Why we built it

Because the same set of photographs is the sales tool, the record and the reassurance, and which of those it is depends only on who is looking. Keeping one set and controlling the audience beats keeping three sets and reconciling them.

Sound familiar?“iPhone photos won't open on our computers”
09

The customer watches it go up

Try it

On their own project page, the shared photos sit under the progress, in order. They stop ringing to ask how it is going, because they already looked this morning.

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
The customer's view. Real screen · sample data.
Without it

Every Friday the same three customers ring for an update, and the builder — who is on a roof — either takes the call and loses the afternoon or does not and loses the goodwill.

Why we built it

Because the update call is not really a request for information, it is a request for reassurance, and a photograph from yesterday gives more of it than a five-minute phone call ever did. The builder gets the afternoon back and the customer gets a better answer.

10

They can send you one back

Try it

The customer's page takes photos from their side too — the site access, the neighbour's fence, the thing they want you to look at. It lands on the job rather than in your messages.

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 upload. Real screen · sample data.
Without it

The customer texts a photo of a drainage problem to the builder's personal phone on a Sunday. It is seen, meant to be dealt with, and buried under two hundred messages by Tuesday. Nobody involved did anything wrong and the problem still got missed.

Why we built it

Because the customer takes photographs of the job constantly and currently sends them to a mobile number, where they are one of four hundred images and attached to nothing. Giving them the same filing the crew has costs them nothing and puts their picture on the job.

How it works
  1. 1He taps Add Photo. If he isn't clocked in and has more than one job, it asks which job first.
  2. 2The camera stays open: swipe for the stage and the checkpoint, shoot, and tap Done for the whole walk-round.
  3. 3Any shot can be marked up on the phone — arrows, circles, a typed or spoken note — before it goes.
  4. 4Each shot is kept on the phone and sent from there, shrunk if it needs it, whenever there is a signal.
  5. 5For the customer, he takes or picks one photo, sees the job and the stage it lands on, and presses Save to job or Save and send to the customer — two buttons, no switch.
  6. 6It files itself with who took it, when and roughly where, with nothing typed.
Why we built it

A photo of a mess on site and a photo of finished work look identical in an upload queue, and sending the wrong one to a customer is not recoverable. So there is no default and no toggle: the crew names the destination, and anything that fails to say is refused rather than assumed. Two labelled buttons instead of a switch, because a switch has a state you can misread in sunlight and two buttons have no state at all. Photos live on the builder's own storage, so the screen works the same way for every company whatever else they run.

The problem
  • Progress photos lost in personal message threads.
  • Accidental customer-facing sends with no way to unsend.
  • Photos with no job, stage, author or date attached.
What you get
Every photo is filed against the right job and stage with no typing.
Sending to a customer is a deliberate, visibly different act.
Full attribution for the audit trail at zero cost to the person in the field.
What's inside
Photos sized for one bar of signal

Resolution is cut before quality is. A photo already small enough is uploaded exactly as it was — nothing re-saved, nothing lost. An oversized one is scaled down to a size that still prints at ten by seven inches. The confirm screen says which happened.

CREW PORTAL

See jobsite photos, with the destination named
on one of your own jobs.

Twenty minutes, your building, your numbers. Bring the job where “photos live in a group text and never reach the job file” — we will show you exactly where that stops.

leads2build.com
Jobsite photos, with the destination named — Leads2Build