Skip to main content
← Back to home

Core product

The daily habit, not the dashboard.

Open the app, find the asset, type the reading, and save. A meter photo can assist with OCR. Hour logs queue offline in yards, pits, and dead zones; flags and most other actions need a connection today.
5:00
●●●4G▮▮

DirtFleet · 5:00 PM

Log today's hours?

CAT 320 #104 · Last: 4,812.6

Pinned

CAT 320 #104✓ logged
Skid #09needs
Lowboy 48'needs

End-of-day push → one-tap log

The daily loop

Find the unit, enter the meter, and save.

The shape of every interaction crews have with the app — built for thumbs in gloves and screens in the sun.

App flow (core loop)

Three stages, one job: get honest hours on the books before the crew leaves the yard.

  1. 1

    Find equipment

    Assigned, pinned, and recently logged units appear before the full fleet.

    Search by nickname, unit number, class, or yard.

  2. 2

    Enter reading

    Type the current meter, or use an optional photo to suggest a number.

    The last reading stays visible. Lower readings require an explanation.

  3. 3

    Save

    Save immediately; add a note, photo, or location only when needed.

    If the device is offline, the log queues locally and syncs when signal returns.

Capture

Type the meter — or just take a photo of the dash.

A meter photo can assist with OCR when typing is awkward. The driver must confirm or edit the detected number; the photo stays with the log for later review.

  • Snap, read, confirm or edit, then save.
  • Both the photo and the entered value are kept on the asset record.
  • Hour readings (with optional photo) queue offline and sync later.
  • Mechanics can pull the photo later if a reading looks off.
5:00
●●●4G▮▮

CAT 320 #104 · Photo log

Engine hrs

4,851.2

REC

Detected reading

4,851.2

Last reading 4,812.6 · Δ +38.6 hrs

Photo of dash → confirm reading → done

Reminders that respect the crew

Push at end of day. Auto-flags when the meter says it's time.

One ping at end of shift. A gentle nudge if a unit's still missing. An auto-flag when an asset crosses its hour-based service interval. That's the cadence.

Reminder copy (samples)

Defaults: end-of-day at 5 PM or your shift end; optional start-of-shift prompt. Copy stays short — operators decide in a glance.

End of day (default)

Log today's hours?

5:00 PM

CAT 320 #104 · Last reading 4,812.6 — tap to update before you roll out.

Start of shift (optional)

Start shift — opening reading

6:45 AM

Select the unit you're running today and confirm start hours.

Gentle nudge (if enabled)

Still open: 2 assets

8:15 PM

Lowboy 48' and skid #09 need a reading for today. Takes ~20 seconds.

Manager / Mechanic alert

🔴 Urgent: skid #09 flagged out of service

2:13 PM

Driver M. Ortiz — “hydraulic line leaking, parked at south yard.” Tap to view photo.

Auto-flag (hour-based PM)

🟡 PM due: Excavator 320 #104

Auto

Hit 5,000 hrs — service interval reached. Mechanic dashboard updated.

Repair flagging

Yellow for routine, red for urgent.

Anyone in the field — driver, operator, mechanic — can flag an asset in seconds when you have signal. Red flags page the manager and the mechanic in real time. Yellow flags hit the queue.

  • Yellow = needs repair (routine), Red = urgent / out of service.
  • Voice-to-text or photo attaches in two taps (online).
  • Push notifications + optional SMS fallback for red flags.
  • Mechanics resolve with notes + photos; auto-clears on the dashboard.

Mechanic · Queue

Sorted by urgency

  • Skid #09

    Hyd line leaking — flagged 2:13 PM by M. Ortiz

    Photo attached · 2,167 hrs

  • CAT 320 #104

    PM due — passed 5,000 hr interval

    Auto-flag · 4,851 hrs

  • Light tower #03

    Approaching 250 hr filter change

    Auto-flag · 612 hrs

  • F-450 #211

    On schedule

    Last service 1,200 mi ago

Offline hour logging

Yards, pits, and dead zones don't drop the meter log.

Hour readings queue on the device when signal dies. The instant a phone hits a bar of signal — driving back to the yard, walking past the office wifi — queued meter logs upload to Postgres. Flags, repair notes, and most other actions still need a connection.

  • Offline hour logging on phone or tablet — queued entries sync when you are back online.
  • Conflict-free hour sync: nothing is lost if signal drops mid-save.
  • No GPS tracking, no constant network polling, no battery hit.
  • Sync state is visible on hour entries — drivers know the log landed.

Offline · queued on device

No signal · 4 hrs
  • 07:14Log: CAT 320 #104 → 4,820.4
    synced
  • 11:48Photo: Skid #09 dash
    synced
  • 13:02Flag 🔴 Skid #09 — hydraulic leak
    queued
  • 13:05Note + photo on flag
    queued
  • 16:30Log: CAT 320 #104 → 4,851.2
    queued
Back in signal — syncing now

Hardware tracker · Target Mid-2027

Same app. Now with a tracker that talks to it.

Software-only fleets keep working unchanged. Beta cohorts who want telemetry get a diagnostic-port tracker built for the same crews — engine hours sync without anyone tapping anything, the hardware supports up to three optional cameras for incident capture, and a local WiFi mode keeps things going in cellular dead zones.

  • J1939 (yellow iron) or OBD-II (light-duty) — engine hours, RPM, coolant, faults.
  • Supports up to 3 optional cameras (e.g. forward, left mirror, right mirror) — clip-on incident review.
  • Local WiFi mesh keeps telemetry buffering when cell drops.
  • ATECC608A secure element + signed firmware updates over the air.
  • Hardware is optional — pricing publishes when trackers ship.
Preview · Mid-2027

DirtFleet Tracker · DF-T1

Diagnostic-port edge unit · up to 3 cams

LinkedFW v1.0.0-beta
  • ECU bus

    Engine hours, RPM, coolant, oil pressure

    J1939 · 37 PIDs
  • GPS

    HDOP 0.7 · ±2.1 m

    3D fix · 8 sats
  • Cameras

    Optional · e.g. forward · L-mirror · R-mirror

    Up to 3 inputs
  • Uplink

    Local WiFi mesh · standby

    LTE · -71 dBm
  • Secure boot

    Token rotated 4d ago

    ATECC608A · OK
12V key-on · 0.42 A
T-junction 38°C

Render preview — production hardware targets Mid-2027

Scope, in plain English

What's in the core. What stays an add-on.

We pick simple over complete on purpose. The base stays small, fast to adopt, and easy to trust. Heavier modules ship as paid add-ons — only when you actually want them.

In the core (from $99 / mo · capped at $299)

  • Hours / meter logging (typed or photo)
  • Repair flagging (yellow / red) with photos
  • Push reminders + auto-flag at hour-based PM
  • Mechanic dashboard, manager dashboard
  • Tool tracking (low-stock, PM, warranty, utilization)
  • CSV / PDF exports, week / month rollups
  • Unlimited drivers, mechanics, managers
  • Offline hour-log queue on phone + tablet

Optional add-ons (later)

  • +Full TMS (dispatch, routing, freight)
  • +Deep warehouse workflows
  • +QuickBooks, WEX, Geotab & Samsara depth (beyond today's CSV) — see /integrations
  • +Advanced analytics + custom dashboards
  • +Premium API tier (+$29 / mo org-wide)

These don't ship in v1. They stay opt-in so the core stays easy to adopt and keeps doing one thing well. Integrations board →

Built for three jobs

One product, three honest roles.

Drivers log. Mechanics fix. Managers see. We didn't build a generic app and rename the buttons — each role has a real workflow.

Tool tracking module

Plate compactors and generators, same app.

The engine-powered tools your crews actually track — plate compactors, jumping jacks, generators, welders, light towers, demo saws — get the same hour-based PM treatment as excavators. Hand tools, kits, and consumables sit next to them. QR / NFC scan opens the right action (log hours for equipment, check out or report damage for tools). Dashboard shows who has each tool right now; low-stock alerts fire when consumables drop below threshold. Built-in, not a paid add-on.

See the tool tracking module →

FAQ

Common questions about the product

What about trailers and other equipment without an hour meter?

Trailers, attachments, and no-meter vehicles get a status check-in instead of a numeric reading: In use / Idle / Out of service, with optional photo + note. Same flag flow, same dashboard, same map. Service intervals for these fall back to date-based PM.

Hours, miles, both — how does the app handle a mixed fleet?

Each asset has a meter type: HOURS (yellow iron, gensets), ODOMETER (pickups, vans — miles or km), or NONE (trailers, attachments). Drivers see the right input automatically; managers see units labeled correctly across the dashboard, exports, and PM alerts.

Is photo-of-dashboard logging really part of the base plan?

Yes — and it now reads the meter for you. Local OCR runs on-device (Tesseract.js, free) and detects the reading; the driver confirms or edits before save. If local OCR struggles, a server-side Claude call covers the gap. Both paths included in the base plan.

What stays out of the core product?

Full TMS, deep warehouse workflows, advanced analytics, and third-party video stacks stay paid add-ons. We keep the core minimal so it actually gets used — see /integrations for named vendors and honest status.

Which integrations are live vs roadmap?

CSV/PDF exports, bulk import, VIN decode, push, and email are live today. Named accounting, fuel-card, and telematics connectors (QuickBooks Online, WEX, Geotab, Samsara, Fleetio) are on the transparent roadmap with per-vendor notes — see dirtfleet.app/integrations.

How does offline hour logging work?

Hour logs (and meter photos on those logs) save into a device queue when the browser reports no connection, then POST when you're back online (IndexedDB outbox + clientMutationId dedupe). Flags, repairs, and most other writes still need connectivity today. The installed PWA also caches many GET responses so common screens stay readable in pits and dead zones.

Do you need OCR / AI to read the meter from the photo?

No. Local OCR (Tesseract.js) suggests a reading when it can, and drivers always confirm or edit before save. Claude can assist when on-device OCR misses; you can still type the reading manually if you prefer no AI.

Can a driver see another driver's logs?

No. Drivers see their own logs and the assets they touched. Mechanics see flagged + recently-logged assets. Fleet managers see everything for their organization. Tenant data is isolated at the database level — never mingled across companies.

Get started

Ready to try the daily habit?

We'll help import historic data when you want it. ~30 minutes of setup with us, then ~30 seconds a shift for drivers.