How Tessera Construction Replaced JobTread and Got Full Control of Their Data

Tessera Construction is a residential and light commercial general contractor based in Kansas City. They run custom home builds, additions, and remodels — jobs that range from $50k kitchen renovations to $700k+ custom builds. Before Cubitworks, they ran on JobTread.

This is a first-person account of why they left, what they built, and what changed when they owned the platform instead of renting it.

The Problem With JobTread

JobTread is a solid product. The team behind it clearly understands construction workflows — the budget structure, the document flow, the customer portal concept. For a lot of contractors, it's a big upgrade from spreadsheets and QuickBooks alone.

But Tessera Construction hit three problems that couldn't be solved by waiting for a JobTread feature release:

1. The API was too limited for automation

JobTread exposes a public API (the Pave API). It's read-mostly. You can query job data, pull documents, read budget line items. What you can't reliably do is write back to the system at the level of granularity that automation requires. Creating a budget item from an external source, triggering a document workflow from a webhook, updating task status from a mobile shortcut — these patterns either weren't supported or required workarounds that broke on API version updates.

Tessera Construction was building AI-driven automation for daily logs, field data capture, and schedule management. Every time an automation reached a write operation, it hit a wall. The dependency on a third-party API that you can't control is a structural problem — not a feature request you can submit.

2. The compliance features didn't exist

Missouri has specific statutory requirements for contractors that affect how contracts are written, when lien rights attach, and what happens to retainage. The Kansas City metro has 13 separate municipal jurisdictions with their own permit and inspection processes.

None of this is in JobTread. It's not in Procore either. The compliance infrastructure that Tessera Construction needed — lien window timers, statutory disclosure stamping on contracts, COI gating for sub payments, per-municipality permit tracking — requires deep schema integration that no off-the-shelf SaaS product provides because it's too jurisdiction-specific to be a general feature.

3. The per-seat model was the wrong structure

Tessera Construction runs lean. Adding a field supervisor, bringing on an estimator during busy season, giving subcontractors portal access — every addition has a per-seat cost on JobTread. The bill doesn't reflect how many jobs you're running or how much revenue the software is helping you generate. It reflects how many humans you've added to the system.

That's the wrong variable to meter on. The right variable is job complexity and volume, not headcount.

The Decision to Build

The build decision came down to a straightforward analysis. JobTread's limitations were structural — not things that could be patched with a feature request or a Zapier integration. The compliance gap alone justified the build: a missed lien filing on a $250k draw request is a six-figure mistake. Tracking that manually while running 8–12 concurrent jobs is a liability.

The technology decision was equally clear. Cloudflare Workers and Pages run at the edge with near-zero marginal cost at contractor scale. Neon Postgres gives real ACID-compliant Postgres with the multi-statement transactions the budget engine requires. The total infrastructure cost at Tessera Construction's job volume is under $20/month — compared to per-seat SaaS fees that scaled with team size.

The build paid for itself on day one — not in cost savings, but in capability. The lien window timer alone is risk mitigation infrastructure that doesn't exist on any commercial platform at any price.

What Cubitworks Replaced, Module by Module

CRM and pipeline

JobTread has a basic lead management system. Cubitworks replaces it with a full CRM — Kanban pipeline with custom stages, source tracking, pipeline value reports, and a web-to-lead embed that creates accounts and contacts automatically from form submissions. The conversion from lead to job is one click, with no re-entry.

Budget engine

The budget engine was the most complex build. The formula-driven quantities — where changing a room dimension parameter recalculates every line item that references it — required a full expression parser and real Postgres multi-statement transactions to keep the budget consistent on updates. This is what D1/SQLite couldn't provide; it's why the database choice was Neon Postgres from the start.

The catalog (price book) gives every job budget a starting point. Assemblies from the catalog pull directly into job budgets as starting quantities, with job-level overrides possible. Labor rates are set once in the catalog and apply across all jobs until manually changed.

Documents and compliance

The documents module generates estimates, contracts, change orders, and invoices from the job budget. Missouri's statutory contractor disclosures (MO § 407.937, § 407.725, § 429.012) are embedded in contract templates and stamped automatically — no checklist, no manual verification.

Native eSignature replaces DocuSign. The homeowner draws their signature on any device; the signed PDF is stored in R2 with a timestamp and IP. No subscription to a third-party eSignature service required.

Compliance, lien, and permit tracking

This is the module that justifies the build on its own for Missouri contractors.

The lien window timer tracks the statutory deadline from the last date labor or materials were furnished. For Missouri, that's 6 months to file a mechanic's lien. Alerts fire at 14 days and 7 days before the window closes — enough time to file if a payment dispute arises.

Permit tracking handles the 13 KC-metro jurisdictions Tessera Construction works in — Kansas City, Overland Park, Lenexa, Shawnee, Olathe, Leawood, Prairie Village, Merriam, Roeland Park, Mission, Westwood, Fairway, and Riverside. Each has different submission processes, inspection types, and turnaround norms. The permit module tracks application status, pending inspections, and approval dates per job.

COI gating blocks vendor payment workflows when the subcontractor's certificate of insurance is expired. The alert surfaces in the payment approval flow — not in a separate COI tracking spreadsheet that someone has to remember to check.

Invoicing and lien waivers

The invoicing module supports payment schedules — configured once per job, invoices generate automatically on each milestone. For GC billing workflows, Cubitworks generates AIA G702 / G703 format draw requests.

Lien waivers are generated per payment. Conditional waivers go out with the invoice; unconditional waivers are issued after funds clear. Missouri's statutory waiver language is embedded in the templates. The system tracks waiver status — issued, received, filed — for every payment on every job.

Field operations

Daily logs, photo library, punch lists, and time clock are all accessible on iPhone from the job site. The field ops module was built to be usable on a 375px screen in direct sunlight — not designed for desktop and scaled down.

Photos go to R2. They're tagged by folder and accessible from any device immediately after upload. Annotations and markup layers are stored alongside the original. Nothing gets stuck in a phone's camera roll or lost in a text thread.

What Changed After the Migration

The most immediate change was the automation ceiling going away. Every write operation that was previously blocked by API limitations now has a direct Postgres path. Daily log creation from voice input, schedule updates from iPhone shortcuts, photo tagging from AI analysis — these run against the same database the app uses, with no API intermediary.

The compliance module eliminated a category of manual tracking that was previously handled by calendar alerts and periodic spreadsheet reviews. Lien windows, COI expirations, permit status updates — they're all in the system now, surfaced as alerts when action is required.

The per-seat model going away meant headcount decisions stopped being filtered through a cost calculation. Adding a field supervisor is a system change, not a budget item.

For Contractors Considering the Same Move

Cubitworks is not for every contractor. If JobTread, Procore, or BuilderTrend is doing everything you need, the build cost doesn't make sense.

It makes sense when:

If any of those describe your situation, start a free trial and see the full system. The data model, the API, and the full feature set are live. There's no demo environment — what you see in the trial is what you run.

← Feature walkthrough All posts →

Own your construction management stack

14-day free trial. No credit card. Full feature access — compliance module included.

Start free trial →