A legacy portal replaced screen by screen, while officers kept using it
A US provider of GPS and sobriety monitoring for community-supervision agencies had an ageing officer portal that was hard to change. We moved it to React 19, Vite and Tailwind one module at a time, without changing the back end it relied on.
- Client
- US community-supervision provider (name private)
- Approach
- Module-by-module migration
- Back end
- Unchanged (Java EE)
- Engagement
- Dedicated team

The new caseload screen
Rebuilt in React 19: each participant’s device, battery, condition and latest open event in one row, so officers can see who to look at first.
Screens from the rebuilt portal, with every person and detail swapped for sample data.
Software that people depend on every day
Officers use the portal to watch participants’ GPS locations, zones and alerts in real time. Taking it offline for a big switch-over wasn’t an option, and the back end and devices it talks to had to keep working exactly as before. The old front end was built on an older stack that was getting harder to maintain.
One module at a time, checked against the old one
- Kept the existing Java EE back end and its interfaces exactly as they were
- Rebuilt the portal in React 19, Vite and Tailwind, one module and screen at a time
- Replaced every legacy screen, including live GPS maps, zone editing and real-time alerts
- Wrote 71 automated parity checks that compare the new screens with the old ones
- Released each part on its own, so a problem could never take down the whole portal
Keeping the rest of the system moving
- A rule-based assistant for officers that answers questions from live data, with no AI language model involved
- Support for home beacons
- Over-the-air firmware updates for the GPS watches
- Day-to-day operations of the platform on OpenShift on AWS
Have an app that needs the same care?
Start with the free health check, or tell us what’s going on and we’ll reply within one business day.




