The Squads app supports how clients hire teams, approve sprints, make payments and manage delivery. Teams also use it to organise projects and administration.
This case study summarises the delivery decision and outcome. The full engineering process, migration map and lessons are documented in our article, From AngularJS to React: How We Rewrote the Squads App with AI.
The AngularJS client supported critical workflows but sat on a framework that was harder to maintain and hire for. A rewrite had remained on the backlog for around two years because the cost and delivery risk were difficult to justify.
The team needed to modernise the front end without destabilising the product. Five constraints shaped the work:
Keep the existing API, session behaviour and data contracts stable.
Preserve routes, roles and edge cases already proven in production.
Create consistent React code across the full client, not isolated generated fragments.
Refresh the interface and deliver a genuinely mobile-first experience in the same pass.
Keep deployment reversible until the new application was proven.
The goal was a controlled product migration, with AI accelerating implementation while engineers retained responsibility for architecture, behaviour and release decisions.
One developer used AI as an implementation accelerator inside explicit technical and delivery guardrails.
Key actions included:
Frozen contract: The backend API remained unchanged, so old and new clients used the same endpoints, session cookie and data shapes.
Written rulebook: MIGRATION.md and ARCHITECTURE.md captured framework mappings, file conventions and non-negotiable implementation rules for every AI-assisted session.
Vertical slices: The client was divided into eight complete feature areas, each with its own progress, decisions and technical notes.
Automated parity: Cypress end-to-end coverage was expanded to roughly 90% of application flows and used to compare visible behaviour across both clients.
Parallel release: The React app received its own pipeline and server, then ran alongside the legacy client so the team could switch traffic and roll back safely.
The React client moved into production with a refreshed interface and a simpler development base:
A mobile-first experience that the previous client did not provide.
Roughly 37% less code with current front-end tooling.
About one month of focused work by one developer, compared with the earlier internal estimate of two developers for six months.
Build times measured in seconds instead of minutes.
A staged cut-over with a clear rollback path and no simultaneous API rewrite.
AI changed the economics of the migration, but the decisive work remained human: choosing the architecture, documenting conventions, deciding which behaviour to preserve and verifying parity. The full technical process and practical lessons are available in the linked engineering article.
For two years, this rewrite stayed on our backlog because the cost and disruption were hard to justify. A disciplined AI-assisted approach changed that equation. We moved to a current stack, improved the product experience and reduced the codebase without gambling on a big-bang launch. The lesson for me is simple: AI creates value when experienced engineers give it clear rules, strong tests and ownership of the outcome.