What's real, what's scripted, what's next
This is a working front end built to show how Plumb would feel for technicians, the office, developers and subcontractors. Here is exactly what is behind it.
Works for real in this build
- Every screenAll 25 product screens are clickable and connected. Every button does something.
- Shared dataOne dataset in this browser. A snag captured on the phone appears in office review, the report and the developer portal. A subcontractor's fix returns to the technician to verify.
- OfflineSwitch Offline in the bottom bar: captures queue on the "phone" and upload by themselves when you switch back.
- ReportsThe A4 report is built from live data. Download PDF uses the browser's print to PDF, and Excel downloads a real .xls file.
- Camera"Use this phone's camera" on the capture screen uses your real camera where the browser allows it.
- Sound and motionEvery sound is generated live in the browser; there are no audio files. Reduced-motion settings are respected.
Scripted for the demo
- Sign-inThe Microsoft and Google screens are look-alikes; no real OAuth call is made. The domain check and role check behave as the live product would.
- AI suggestionsTrade, priority and the "why" are pre-written for the demo photos. Duplicate detection compares room and trade rather than the image itself.
- Uploads and emailSync is a timer and emails aren't sent. Push notifications appear inside the phone frame only.
- NumbersStorage sizes, temperatures, distances and some chart history are illustrative.
- People and firmsBayline Inspection Services and all staff are invented. Developers are real Dubai names, used only to make the demo read true, and no data comes from them.
How it becomes the live product
| Layer | Recommendation | Why |
|---|---|---|
| Mobile | Flutter, one codebase for iOS and Android | Native camera through CameraX and AVFoundation, fast burst capture, steady 60fps UI. React Native with VisionCamera is a close second if your team prefers JavaScript. |
| Offline | SQLite on the device plus a background upload queue | Captures never wait for the network. Uploads resume after an app kill, and conflicts are resolved per field. |
| Sign-in | OAuth 2.0 with PKCE (AppAuth) against Entra ID and Google Workspace | No passwords stored. Tenant domains and roles are enforced on the server. |
| Backend | API on Azure UAE North, PostgreSQL, Blob Storage per project | Data stays in the UAE. Photos are encrypted at rest and served through short-lived links. |
| Reports | The same HTML template rendered to PDF on the server; Excel as .xlsx with photo thumbnails | What the office previews is exactly what the developer receives. |
| AI assist | A vision model for trade and priority; image similarity for duplicates | It only suggests. The technician always decides, and every suggestion shows its reason. |
| Office web | React web app on the same API | Shares the design system with the report template. |
Assumptions we made
- MarketDubai and the wider UAE: AED, DD/MM/YYYY, 12-month defects liability after handover, English with an Arabic report cover.
- WorkConstruction handover snagging for developers and fit-out contractors, mostly apartments.
- RolesTechnicians and office staff use SSO. Developers and subcontractors use one-time links instead of accounts.
- ReviewEvery report is checked in the office before a developer sees it.
- Our additionsPhoto markup, AI assist, the subcontractor fix loop, the developer portal, the heatmap with DLP clocks and heat-aware scheduling are our proposals. Keep what's useful.
Questions for our next call
- BrandWhat's the company name and logo on the report? Should the app itself carry your brand, or stay Plumb?
- ReportCould you share one or two reports you send today, so we can match the layout and the Excel columns your clients expect?
- Sign-inIs Microsoft 365 or Google Workspace your main one? Do developers and subcontractors need full accounts, or are links enough?
- VolumeRoughly how many units a month, photos per snag, and technicians?
- LanguageDo technicians need the app itself in Arabic, or only the report?
- Existing toolsAre you moving from PlanRadar, Fieldwire or spreadsheets, and does anything need importing?
- ScopeWhich of our additions matter for version one, and which can wait?