Case study
A party wall platform rebuilt from the behaviour of a retiring system
Akt Surveyors (formerly EK McQuade), the Earl Kendrick Group's party wall specialist, ran its business on a customised Haplo platform that its host was retiring. We rebuilt it in Laravel, with the legacy system's behaviour as the specification for AI-assisted development, and imported nearly 2,000 jobs and 18,000 files.
2024–today
- 12 months
- notice from the host that it was retiring Haplo2024
- 1,966
- jobs imported from HaploHaplo import
- 18,019
- job files imported with themHaplo import
- 15 seconds
- to re-run the full Haplo importHaplo import
The challenge
EK McQuade, now Akt Surveyors, ran everything on a customised Haplo platform: jobs, clients and contacts, party wall notices and the legal documents they generate. In July 2024 the company hosting Haplo, which had acquired it, told the firm it was retiring the platform, later confirming 12 months' notice. The firm's own estimate for getting a replacement running was 12 to 18 months.
The host offered the open-source Haplo code, an export of the firm's plugins and a data dump. It would not give access to the servers, and did not supply the build actually running in production, where years of bespoke party wall functionality lived.
What we did
- September–October 2024 — we led the technical handover with the outgoing host, pinning down the stack (JRuby and PostgreSQL on AWS) and agreeing the export of plugins, data and files
- Lift and shift — we stood up open-source Haplo with the plugins and the full data in a container, and side-by-side testing with the firm showed document generation, stage filters, contact search and the review tray did not match production
- Rebuild — the legacy system became the behavioural baseline: what staff rely on, written as plain-English requirements and Gherkin acceptance scenarios with stable IDs that the Pest tests refer to
- Agent-ready — specs, tickets and a project knowledge base written for AI coding agents as well as developers, with the legacy plugin code as the reference for behaviour
- Phase 1 — jobs, people, organisations, contact notes, party wall notices and Word document generation, plus a Haplo import that can be re-run safely
- Phase 2, May 2026 — roles and permissions, notices and awards dashboards, reminders, reviews, and pipeline and directors' reports, released to a staging site for guided client review
- July 2026 — rounds of client acceptance testing closed parity gaps, down to job numbers continuing the Haplo sequence
What we built
The new system is a Laravel application on PostgreSQL. Rather than port Haplo, we treated the running system as the specification. Behaviour changes land in the spec first, then in the tests, then in the code, so AI coding agents and developers work from the same written behaviour.
The migration was built to be repeated, not run once. The import re-runs safely, so it can be repeated against a fresh export at any point. Files are first-class records on every job, and an admin screen classifies imported appointment letters in bulk as building owner or adjoining owner, so letters from Haplo do not stay unclassified.
- Party wall notices with adjoining owners and co-owners
- Notices and awards in progress dashboards
- Word mail merge for notices, awards and letters
- Reminders and reviews in each person's tray
- Sales pipeline and directors' reports with CSV export
- Role-based access for staff, reviewers and directors
- Passwordless sign-in by email code or link
- Re-runnable Haplo import of jobs, contacts and files
The result
Akt Surveyors' work now runs on a system Gigabyte maintains and can extend, instead of a platform its host was retiring. The Haplo import brings across 1,966 jobs, 5,629 people, 1,968 organisations, 8,282 contact notes and 18,019 job files in about 15 seconds, and notice history comes with it, so live party wall work was not lost in the move. Staff kept what they knew: a personal tray, a review flow, and job numbers that carry on from Haplo's.
Because the behaviour is written down as scenarios and tests rather than buried in plugins, each change starts as a scenario. The same method is carrying the system forward: jobs are being linked to Pipedrive so client, building owner and consultant contacts reach the sales CRM without re-keying.
- Laravel
- PHP
- PostgreSQL
- Tailwind CSS
- Pest
- Gherkin
- Amazon S3
- Mailgun