Case study
Three platforms from one team, working in zero-signal zones, for a commercial contractor operations SaaS
Field technicians work in basements and machine rooms with no cell signal. The client needed crews to log job visits and photo evidence in real time. Wednesday shipped a web dispatch console, an iOS app, and an Android app from a single team.
Field Service / SaaS · Growth-stage SaaS · North America
The challenge
Field crews can't wait for a signal
The client is a cloud platform for commercial contractors. Their customers dispatch technicians to hospitals, warehouses, and commercial buildings for HVAC, electrical, and maintenance work.
The problem: those buildings have basements and machine rooms with no cell signal. Technicians needed to log job summaries and before/after photos at the moment the work was done, not later in the parking lot. If the app required connectivity, the log would be inaccurate, late, or missing.
Two separate user groups needed separate apps. Dispatchers sit at a web console, assigning jobs and tracking technician locations across dozens of active sites. Technicians are in the field, managing their queue and submitting visit summaries from a phone. The apps had to share logic and components without duplicating work, and they had to serve multiple contractor businesses with different permission structures and different workflow configurations per tenant.
High-resolution photo uploads were causing the app to freeze. Technicians attach before/after images to every job. Processing those uploads was blocking the interface, which is not acceptable in the field.
“We needed to build something that would work reliably in the field, not just in the office. Dead zones are not an edge case for our users.”
The approach
One team. Three surfaces. Offline by default.
Wednesday assigned a tech lead and two engineers. The team reviewed the pain points, the product roadmap, and the technical constraints before writing a line of code.
Cross-platform architecture. The team selected React for the web dispatch console and React Native for iOS and Android. A shared private component library meant common UI elements were built once and used across all three surfaces. The library was optimized for bundle size and structured so new components could be added without slowing down subsequent builds.
Role-based access controls. The platform serves multiple contractor businesses. Each has different permission structures: dispatchers see everything, technicians see their own queue, and admins configure the system. The team built role-based access using AWS Cognito, with user groups defined at the tenant level. A contractor with a specific workflow gets a specific experience. No config bleeds between tenants.
Offline-first architecture. The team chose AWS AppSync with AWS Amplify for its built-in offline sync. Technicians log visit summaries and attach photos without any signal. The data queues locally and syncs automatically when connectivity returns. A custom conflict resolution strategy handles edge cases where the same record is updated from two places before either syncs.
Native image uploads. High-resolution concurrent uploads were freezing the interface. The team moved upload processing to native code, offloading it from the main thread entirely. The interface stays responsive regardless of how many photos are queuing for upload.
Automated release pipeline. A CD pipeline handles version numbering and release tagging automatically. New builds go out on schedule without manual steps.
“Their desire to exceed expectations rather than just follow orders sets them apart. They go out of their way to improve the engineering, not just ship the feature.”
The results
All three surfaces shipped. Zero data lost in the field.
The dispatch console, the iOS app, and the Android app all shipped from one team. Dispatchers manage job assignments and track active technicians from the web. Technicians see their daily queue, log visit summaries, and attach photos from their phone, in any building, with or without signal.
The offline sync works. Data logged in a zero-signal basement is in the system when the technician walks back to the van. The shared component library reduced the cost of each subsequent feature because new screens draw from existing components rather than building from scratch.
Photo uploads no longer freeze the interface. Technicians can attach multiple high-resolution images without the app becoming unresponsive while they complete the rest of the visit summary.
“They delivered on time and exceeded expectations. They found issues we didn't even know we had.”
ROI
One team delivered three platforms. Building separate iOS, Android, and web teams for the same scope would have roughly tripled the team cost with no benefit to delivery speed or product quality.
Run the numbers
See what these results would look like for your team size and budget.
“Their desire to exceed expectations rather than just follow orders sets them apart. They go out of their way to improve the engineering, not just ship the feature.”
Director of Engineering — Field service platform
Next step
Facing a similar multi-platform build?
30 minutes with an engineer. Bring your current setup and your deadline. You leave with a squad shape and a written burn estimate.