The problem
- The front end ran on Angular 7, which limited performance, maintainability and access to modern tooling.
- The back end ran on .NET Core 3.1, which was approaching end of life and brought security and support risk.
- The platform relied on environments run by a third party, which created operational risk and reduced PSIA's control.
What we found
- Critical Jest and Cypress tests that failed after the framework upgrade, which slowed development.
- IdentityServer4, at end of life and tied to older frameworks, which needed careful handling.
- WordPress plugins that were not compatible with PHP 8 and caused site failures during migration.
- About 60 GB of media assets that needed a long-term storage and backup strategy.
- A planned Azure subscription transfer that could have caused major service downtime.
What we did
Front end
We upgraded Angular from version 7 to version 17 and introduced NgRx state management for structure and scale.
Tests
We repaired the broken Jest and Cypress suites, so the team could iterate safely again.
Back end and authentication
We migrated .NET Core 3.1 to .NET 8 (LTS) and kept IdentityServer4 working on it, so PSIA could keep operating while it plans a phased move to Duende.
Infrastructure ownership
We built a new Azure DevOps environment owned by PSIA and moved all repositories, pipelines and documentation into it, which removed the dependency on third-party infrastructure.
Cloud guidance
We worked directly with Microsoft on Azure architecture options, and advised against the risky subscription transfer.
WordPress recovery
We exported and re-imported the site into a clean hosting environment, and guided fixes to the third-party and custom plugins that failed on PHP 8.
The result
- A current, maintainable technology stack and reliable test pipelines.
- A supported path forward for authentication.
- Full control of infrastructure and deployments, in an environment PSIA owns.
- A clear path to the learning-management and credentialing work PSIA plans next.
[CLIENT QUOTE: PSIA]