Skip to content
All work
Migration2025· Busyless

Busyless

A seven-year-old Angular scheduling app rebuilt on Next.js — same features, a third of the load time, and a codebase the team can actually change.

Busyless — project cover

Problem

Busyless ran on AngularJS. The framework had been end-of-life for years, the build only worked on one engineer's laptop, and every new feature meant touching a 14,000-line controller that nobody fully understood. Page loads were taking close to five seconds on mobile, and the team had quietly stopped shipping.

They did not want a rewrite for its own sake. They wanted to be able to say yes to customers again.

Solution

We mapped every route in the existing app to a behavioural spec, then rebuilt on Next.js App Router with server components doing the data work. The old database stayed exactly where it was — we put a typed data layer in front of it rather than attempting a schema migration at the same time as a framework migration.

The cutover ran page by page behind a proxy: new routes went live one at a time while the legacy app served everything else, so there was never a big-bang release to be nervous about.

Result

The rebuilt app went live over six weeks with no scheduled downtime. Load times dropped by more than four seconds on mobile, and the team shipped three customer requests in the first fortnight after handover — more than the previous quarter combined.

Stack

  • Next.js 15
  • TypeScript
  • PostgreSQL
  • Drizzle ORM
  • Tailwind CSS
  • Vercel

Have something worth building?

Tell us what you are trying to ship. If we are the right studio for it, you will have a plan and a price within a week — and if we are not, we will say so.