Trace
Capture Offline Reports Integrations Pricing Get the app API docs Sign in

Open the app.
Take the photo.
It files itself.

Job site photo documentation for contractors and field crews. Photos land on the right job by GPS, keep the timestamp from the moment the shutter fired, and roll into branded reports you send as a PDF or a link.

Self-hosted · one-time cost · source included · unlimited crew

3 pending

14 Harlan Street

Auto-filed by GPS · 4m

Under a second to the shutter

The app opens straight to a live camera. Nothing stands between wanting to document something and having documented it.

Built for no signal

Photos save the instant they are taken and upload themselves later — in order, none dropped, none duplicated.

A report in four clicks

Select photos, pick a template, send a branded PDF or a share link your client opens in a browser.

The camera is the whole product

Documentation that takes four taps doesn't get done. So the app opens directly to a live preview — no splash, no project picker — and the shutter never waits on anything.

GPS matching that refuses to guess

When two jobs sit close together, or the fix is too coarse to tell them apart, it offers both and lets a crew member tap once. Being confidently wrong costs more trust than being unsure.

Before and after, paired on site

The pairing is decided while the crew is still standing in front of the thing — not reconstructed from dates in the office three weeks later.

Tags and notes after the fact

Shoot first. Add the caption when there is a moment, or let the office do it.

What the matcher decides

Standing on the job

4m away

14 Harlan Street

Filed automatically

Two units, 60m apart

31m and 34m

Brayford Works — Unit 6 or 9

Asks you to pick

Weak GPS fix

±400m

14 Harlan Street

Suggests, waits for a tap

Nothing nearby

no match

Unfiled

Kept safe for the office

Upload queue

12 pending

Flashing pulled away from the stack

07:12

Queued

Standing water, north-east corner

07:19

Queued

Perished felt, second course

08:04

Uploading

Membrane laid and sealed

08:31

Synced

Your photos are safe on this phone and will upload on their own once you have signal.

A basement with no bars is the normal case

Tagging a photo to a project is trivial. What isn't trivial is forty photos taken underground, a drive home, and every one of them arriving correctly. That is where the engineering went.

Written to the phone before the network is even tried

The file lands in app storage and a row goes into the device database the instant the shutter fires. From that moment the photo survives the app being killed or the battery dying.

A retry can never make a second copy

Every capture carries an ID generated on the phone. The server deduplicates on it, so a response lost on a dying connection costs a retry — never a duplicate, never a loss.

Failures stay on screen

Nothing is quietly dropped to keep a counter tidy. The crew sees the pending count before they leave site, and so does the office.

Photos that hold up in a dispute

Every photo keeps the device timestamp from the moment it was taken — not the moment it uploaded. A photo shot at 07:12 and synced at 18:40 is still evidence about 07:12, and that is what the report prints.

  • Capture time, coordinates and photographer, recorded at the source and read-only after
  • Branded PDFs carrying your logo and company details
  • Before/after as a first-class template, not a grid you assemble by hand
  • Share links you can revoke or expire, scoped to one report
  • Archive finished jobs without deleting a single photo

14 Harlan Street — progress report

Northpoint Roofing · R. Marsh

Captured
14 Mar 2026 · 07:12:41
Reached server
14 Mar 2026 · 18:40
Coordinates
51.50735, -0.12776
Filed by
GPS · 23m away
Captured by
S. Porter
Device
Site phone — crew 1

Held in the device queue for 11h 27m before it reached the server.

$0

per user, per month

Unlimited

crew members and photos

100%

kept on your own storage

2 apps

office dashboard and native capture

It complements your job system, it doesn't replace it

Trace is the photo layer — deliberately not a CRM and not a field service platform. If you already run Jobber, JobNimbus, AccuLynx or your own software, Trace pushes photos and finished reports into it over signed webhooks and exposes a read API for pulling on your own schedule.

photo.uploaded photo.updated project.created report.generated report.shared
Read the API docs

POST https://your-crm.example.com/hooks/trace

{
  "event": "photo.uploaded",
  "created_at": "2026-03-14T18:40:02+00:00",
  "team": { "id": 4, "name": "Northpoint Roofing" },
  "data": {
    "photo": {
      "id": 91422,
      "captured_at": "2026-03-14T07:12:41+00:00",
      "gps": { "lat": 51.50735, "lng": -0.12776 },
      "tags": ["roof", "before"],
      "urls": { "thumb": "…", "full": "…" }
    },
    "project": {
      "id": 218,
      "name": "14 Harlan Street — roof replacement",
      "client_name": "R. Marsh"
    }
  }
}

Trade-agnostic on purpose

Most tools in this category market hard at one trade. A job site is a job site.

Roofing
General contracting
Restoration
HVAC
Electrical
Solar
Landscaping
Painting
Pest control
Property maintenance

One license. Every crew member you have.

The hosted tools in this category run $24–49 per user, per month, forever. That maths works against you exactly when things are going well — every crew member you add is another line item, so teams end up sharing logins or leaving people off the system entirely.

One-time

license, source included

Unlimited crew members

Unlimited projects and photos

Office dashboard and native capture app

Your own server, your own storage

Signed webhooks and a read API

Full source, modify anything

Get started

Stop paying per crew member to take photos

Install it, point it at your storage, hand the app to your crews.