eeztech
Field serviceGoal: launch a product6 weeks + 4 months

A home-made app that grew to 300 users — made solid, not thrown away

The operations team of an HVAC maintenance company had built their own system: Airtable, spreadsheets and an app made with an AI app builder. It worked for 50 technicians. At 300 it crashed every week, and invoices went out nine days after the job.

Client
Heating, ventilation and air-conditioning service company, Poland
Their team
CEO (owner), the ops manager who built the original app, finance lead
Our team
Engagement lead, 3 engineers
Timeline
6 weeks to stable · 4 months to rebuild the core
Same day
from finished job to invoice (was 9 days)
0
crashes a week (was 1–2)
300
technicians on one app, offline-ready
−7 days
average time to get paid

The business goal

Stop losing money between a finished job and a sent invoice — and keep the ops team able to change the system themselves.

Agreed in the outcome brief
Criteria
Days from finished job to invoice sent
Baseline
9 days
Target
Same day
Pilot exit
No lost job reports and no crashes for 4 weeks after stabilisation

Where it was

Technicians filled in job reports in the app; the office re-entered them into spreadsheets for invoicing. Sync conflicts lost about 30 reports a month. Nobody dared to change anything during the season.

Airtable + AI-built app
designed for 50, used by 300
Spreadsheets
job reports re-entered
Invoicing
9 days later

What we did

  1. 1Review of what exists · 1 weekWhat to keep: the ops team’s process knowledge and screens. What to replace: data storage and sync.
  2. 2Stabilise · 5 weeksBackups, sync conflicts fixed, monitoring added. Crashes stopped in week three.
  3. 3Rebuild the core · 4 monthsOne database, a mobile app with offline mode for basements and plant rooms, an invoicing link to accounting.
  4. 4Run & improve · ongoingThe ops team adds forms and screens in a low-code admin; we keep the core healthy.

What did not work

Our first plan was to replace everything at once. The ops manager talked us out of it: technicians would not accept a new app in peak season. We split the rebuild and switched region by region in the quiet months.

Who did what

The client’s team
The ops manager owned the process and tested every screen with technicians.
Our team
Stabilisation, architecture and the rebuild.
Together
The switch-over plan, region by region.

Before and after

NumberBeforeAfter
Finished job to invoice9 dayssame day
App crashes per week1–20
Lost job reports per month~300
Days to get paid (average)4134

Under the hood

Migration from Airtable to Postgres with an API; React Native app with offline mode; invoicing integration with the accounting system; low-code admin for the ops team; backups and monitoring.
They did not laugh at our home-made app. They kept what worked and fixed what was dangerous.
Operations Manager, HVAC service company · name withheld at the client’s request
Similar cases
FintechMonthly → weeklyLoan-servicing platform modernised piece by piece — with zero downtimeLast-mile delivery3 h 40 → 1 h 55Same-day delivery platform: courier routing, order batching, onboarding and live monitoringWholesale11 → 2 minSupplier invoices and customer orders entered into the ERP without retyping
A similar situation?
Get a starting plan for your situation in three questions — or talk it through with us.