Core Module ยท MVP
Field Operations

A mobile app purpose-built for construction sites โ€” offline-first, bilingual, and designed for a field worker to complete a full progress report in under 45 seconds. Every update flows back to the schedule, the superintendent, and the financial dashboard in real time.

The Field Worker's Interface

Carlos doesn't sit at a desk. He's on a job site by 6:30 AM, often in areas with poor cell coverage, working with tools in his hands. The BuildOS mobile app is designed around his reality: large touch targets, minimal reading, clear visual hierarchy, and full functionality with no internet connection.

The app is available on both iPhone and Android. It is available in English and Spanish โ€” language is set per user account.

โฑ
Design target: under 45 seconds per task report. Opening the app โ†’ finding the task โ†’ taking a photo โ†’ setting percent complete โ†’ submitting. That's the entire workflow. Every design decision in the field app optimizes for this time target.

What Carlos Sees

Task List

When Carlos opens the app, he sees his assigned tasks for today โ€” pre-filtered by his crew assignment, today's date, and his active project(s). He doesn't need to navigate or search. The list is sorted by priority: critical-path tasks appear first.

Each task card shows:

Progress Reporting

Tapping a task opens the progress report screen. The workflow:

1
Take a photo (optional but encouraged)
The camera opens. Carlos takes one or two photos showing the current state of the work. Photos are automatically tagged with GPS coordinates and timestamp โ€” no manual entry needed.
2
Set percent complete
A large slider from 0% to 100%. Carlos drags it to the current completion level. If the task is done, he drags to 100% and a green checkmark appears.
3
Submit
Tap the submit button. The app confirms: "Marked complete. Framing Inspection is next: April 8." If offline, it shows "Pending sync" โ€” the data is safe and will send automatically.

Crew Check-In

At the start of each workday, Carlos checks in at the project site. One tap captures his GPS location, timestamps the arrival, and creates a site presence record. Mike sees the check-in in real time. No morning phone call needed. Check-ins are idempotent โ€” tapping twice doesn't create duplicate records.

Daily Field Log

At end of day, Carlos can submit a brief daily log โ€” a free-text note about what happened, any issues encountered, and what's planned for tomorrow. These logs are stored per project and visible to Mike and Sarah in the web dashboard. They serve as a lightweight site diary and can support lien waiver documentation and dispute resolution.

Offline-First Design

The BuildOS field app is engineered to work completely without internet connectivity. This is not a fallback mode โ€” it is the primary mode. Here's how it works:

Pre-loaded data
When the app has connectivity (typically overnight or during the commute), it syncs today's task list, project data, and any schedule updates to a local database on the device. Carlos starts the day with everything he needs already on his phone.
Local outbox queue
Every progress report, check-in, and field log is written to a local outbox queue on the device first. If there's connectivity, it sends immediately. If not, it sits in the queue safely.
Automatic sync on reconnect
The moment the device regains connectivity, the outbox drains automatically โ€” in the order updates were made. No action needed from Carlos. The "Pending sync" badge disappears as each item confirms.
Duplicate protection
Every update carries a unique ID generated on the device. If a network retry sends the same update twice, the server recognizes the duplicate and ignores it. No double-counted completions, ever.
๐Ÿ“ถ
If Carlos loses connectivity mid-day, the app shows a small "Pending sync" badge next to items that haven't been confirmed yet. He can keep working normally. When he drives back to an area with signal, everything syncs automatically โ€” typically within seconds. Retry logic uses exponential backoff (1 second, 2 seconds, 4 seconds, up to 5 minutes between attempts) to avoid hammering a slow connection.

Push Notifications

Mike receives push notifications on his phone for key field events. These notifications are sent via Firebase Cloud Messaging (FCM) and arrive even when the app is closed:

EventNotification ContentRecipient
Task marked complete "[Carlos] completed WBS 9.2 โ€” Second Floor Framing. Next: Framing Inspection (Apr 8)" Mike
Critical task overdue "WBS 7.1 โ€” First Floor Framing is overdue. Schedule impact: 2 days" Mike
Weather alert "Rain forecast tomorrow. 3 exterior tasks at Maple Estate may be affected." Mike
Procurement critical "ACTION: Order windows for Maple Estate by April 1 โ€” 2 days remaining" Mike & Sarah
Sub confirmed "Joe Smith confirmed Plumbing Rough-In for April 8" Mike
Sub delay reported "DELAY: Joe Smith cannot make April 8 for Plumbing Rough-In. Schedule recalculating." Mike

Failed push notifications are automatically retried up to 6 times using exponential backoff (30 seconds to 1 hour between retries). Permanently failed notifications are logged in a dead-letter queue for manual review.

Data That Flows Back to the Office

Every action Carlos takes in the field creates data that immediately improves the accuracy of what Tom, Sarah, and Mike see in the web dashboard:

Carlos DoesWhat Updates in the Office
Marks task 60% complete Gantt chart updates; schedule progress percentage updates; Mike gets notification
Marks task 100% complete Task closed; dependent tasks unlock; CPM recalculates new dates; Mike gets notification; Sub Liaison Agent may trigger SMS to next sub
Checks in at site Site presence logged with GPS and timestamp; Mike sees crew is on-site
Submits daily log with issue note Log stored and visible to Mike and Sarah in the project timeline
Takes a photo with progress report Photo stored with GPS tag, timestamp, and linked to the task record โ€” permanent documentation

Bilingual Support

The BuildOS mobile app is available in English and Spanish. Language is set per user account by the organization admin. All task names, status labels, notifications, and UI text appear in the user's chosen language. The language setting does not affect the web dashboard โ€” it applies only to the mobile app.

This is especially important for firms with mixed crews where English is not the primary language for all field workers. Accurate field reporting increases when the interface is in the worker's native language.