All work

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

  1. Code first, while access still existed. Domains last.

    The order of moves mattered more than the speed.

  2. Fix the platform before moving it.

    Moving it as it stood would only have moved the problems to a new address.

  3. Build Weave's redesign alongside the repair.

    So the platform that went live was the redesigned one.

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

Who did what

m-anant
takeover plan and order of moves
Weave
client app, operations console, lawyer onboarding
Forge
fixes, infrastructure, testing, cutover
Next case A live platform, rebuilt in parts Loyalty platform for dozens of beauty brands across Asia.