Off the vendor, live in six days
A Singapore marketplace that matches people with legal problems to verified lawyers, on the web and on WhatsApp.
/work/legal-marketplaceCame in failing
- System
- Lawyer marketplace, web and WhatsApp
- Symptom
- Vendor held the code, every release and the production data. Its systems were down by late July.
- Region
- Singapore
The piece Three strands for the three repositories, six collars for the six days.
- 6daysdecision to cutover
- 3reposmoved to the client
- 14:05retest passed
- 10 → 6lawyer sign-up steps
- 13 → 3dashboard widgets to blocks
The ask
Take the whole platform back from the outside vendor that built and ran it: the code, the servers, the domains and the WhatsApp number.
The real problem
The vendor held the code, every release and the production data. Fixes sent in May sat unmerged, and by late July the vendor's systems were down.
Underneath that, matching failed too often, billing wasn't safe to switch on and email landed in spam. Moving the platform as it stood would only have moved the problems to a new address.
Who holds what
- Idle
- Live
- Strain
- Fail
BeforeThe vendor held the code, every release and the production data. Fixes sent in May sat unmerged and its systems were down.
AfterThe code, a new production database, the WhatsApp number and the domains sit with the client, on its own cloud account in Singapore.
What we built
The fixes, the move and the cutover. The servers had already come across to the client's own cloud account in Singapore in April. In the six days after the decision we moved the three code repositories into the client's hands, merged the fixes that had been waiting since May, stood up a new production database and re-attached the WhatsApp number.
Weave's redesign was built alongside the repair, so the platform that went live was the redesigned one: a chat-first app for clients, a new operations console for the team and a shorter way in for lawyers.
How we made it hold
The order of moves mattered more than the speed. Code went first, while access still existed, and the domains went last.
Cutover day had a final test in the morning, and it failed: client sign-in broke on every account, with two blockers behind it. We called it a no-go and kept the date. Both blockers were fixed, merged and deployed to the new production by midday. A retest on fresh sessions passed at 14:05. The domains were pointed at the client's platform that afternoon, and a full live test on the new domain passed before the day was out.
Backstage The decisions behind the build, and the hardest problem
Decisions
Code first, while access still existed. Domains last.
The order of moves mattered more than the speed.
Fix the platform before moving it.
Moving it as it stood would only have moved the problems to a new address.
Build Weave's redesign alongside the repair.
So the platform that went live was the redesigned one.
Call a no-go on cutover morning and keep the date.
Both blockers were fixed, merged and deployed to the new production by midday.
The hardest problem
Cutover morning. The final test failed: client sign-in broke on every account, with two blockers behind it. Both were fixed by midday, a retest on fresh sessions passed at 14:05, the domains moved that afternoon and a full live test on the new domain passed before the day was out.
The difference
- Live on the client's own domains six days after the decision to take it back.
- The client owns its code, its servers in Singapore and its WhatsApp number, with no vendor in between.
- Lawyer sign-up went from ten steps to six.
- The lawyer dashboard went from thirteen widgets to three blocks.
