Construction
Embedded today, in productionRegional Commercial Contractor
Replacing per-seat ERP licenses with custom Azure web apps. The ERP stays the system of record. The seats don't.
An embedded engineer in the contractor's own Azure tenant, replacing seat-licensed Vista and Trimble workflows app by app — cost-to-complete forecasting, change orders, approvals.
Problem
What they were up against.
Mid-market commercial construction runs on ERP suites priced per named user. Viewpoint Vista and Trimble xChange charge per-PM, per-superintendent, per-controller seat — every hire and every promoted PM drives recurring cost without proportional ROI. Most user-level functions are narrow: enter time, post a job-cost batch, review a forecast, approve a change order. Five years ago rebuilding those flows required a small SWE team. In 2026, with managed Azure surfaces, REST-accessible ERP backends, and AI-assisted code generation, a single embedded engineer can replace seat-bound workflows app-by-app while the ERP stays the system of record.
Approach
How I built it.
- One embedded full-stack engineer working inside the contractor's own Azure tenant. The ERP stays — Viewpoint Vista is the system of record; Trimble xChange provides the official write API.
- Custom apps replace specific seat-licensed workflows: cost-to-complete forecasting, change-order routing, project lookup, job-cost reporting, approvals. Each feature ships as a single PR.
- Reads go through thousands of live Vista SQL views compiled into a queryable, drift-monitored knowledge base. A Vista schema-drift detector catches ERP upgrades before they break downstream code.
- Writes go through Trimble's xChange REST API so every mutation lands through the vendor's own audited pipeline. No middleware platform, no low-code suite, no off-the-shelf "construction tech" SaaS.
- Each app lands behind Entra ID with project-scope authorization enforced per route. Per-seat ERP cost falls each time another role's daily flow moves off the ERP surface.
Architecture
What's running, and why.
Frontend / app surface
- Azure App Service
- Node host serving a Vite + React 19 + TypeScript bundle behind Express.
- Azure Static Web Apps
- Functions runtime for lightweight HTTP endpoints alongside the main app.
Auth
- Entra ID
- Single sign-on with project-scope authorization enforced per route.
Data layer
- Reads — Viewpoint Vista (SQL Server)
- Vista is the read system of record, untouched. Thousands of live SQL views are compiled into a documented, cross-referenced knowledge base — the read contract every app builds against.
- Writes — Trimble xChange REST API
- All mutations (projections, change orders, subcontract batches, AP/JC posts) go through the vendor's own audited pipeline.
- Schema-drift detector
- Watches Vista upgrades and flags view-shape changes before they break downstream code.
CI/CD and operations
- Azure DevOps Pipelines
- Single-PR-per-feature flow with build / lint / test gates before deploy.
- Operational tooling
- Diagnostic scripts plus an isolated scripts/dangerous/ directory for write-class operations that need explicit human gating.
Outcome
What shipped.
~$60K/yr
Vista seat cost already retired through PM workflow migration
6-figure
Addressable seat-cost ceiling at Vista list (~$250/user/month)
Multiple apps
Live in production: cost-to-complete forecasting, change-order management; more in pipeline
Thousands
Vista SQL views compiled into a drift-monitored read contract for every app
Tableau retiring
Tableau seats decommissioning as dashboards migrate to the new stack; license costs stack on top.
Pending
Workflow time savings (forecasting, approvals, batch posting) — not yet measured
Stack
- TypeScript
- Node.js
- React 19
- Vite
- Express
- SQL Server
- Viewpoint Vista
- Trimble xChange API
- Azure App Service
- Azure Static Web Apps
- Azure Functions
- Entra ID
- Azure DevOps
- Tableau
What this proves
The pattern that ports.
A regional GC, MEP, or specialty contractor in Northeast Florida doesn't need to wait for a "construction tech" platform. Per-seat ERP licensing for narrow daily workflows is a recurring six-figure-class line item, and BI seat costs stack on top. The pattern — one embedded engineer, the contractor's own Azure tenant, vendor-API writes, SQL-view reads, app-by-app replacement — ports directly to the next contractor. The ERP stays. The seats don't.
Want similar work in your business?
Same offer, every engagement: $5K/mo flat, your cloud, your code, fire me anytime.