Construction

Embedded today, in production

Regional 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.