Replacing a legacy CMS with a governed Power Pages and Dataverse portal

Federal government department

The situation

A federal government department was running a legacy content management system that had outlived its architecture. Content delivery was rigid, data lived outside the processes that needed it, and every change required workarounds. The system worked — but it could not evolve, and it could not meet the department's security, governance, and accessibility requirements in its current form.

The department needed a modern, scalable replacement: a secure, data-driven portal that would modernize content delivery, integrate dynamic data, and operate inside the organization's governance and security standards — not beside them.

What the legacy system cost the department

The legacy CMS was not broken in the dramatic sense. It served pages. It held content. But every aspect of working with it had become friction. Content updates that should have taken minutes required tickets, queues, and technical intervention, because the system was built for a model where IT publishes and everyone else waits. The people closest to the content — program teams who knew what the public and stakeholders needed to see — were the furthest from being able to update it. Stale content is not a cosmetic problem for a government department: published information that is out of date erodes trust, and in a public-facing context, it can actively mislead.

The deeper problem was structural. Content and data lived in separate worlds. The CMS held pages; the data that should have driven those pages lived elsewhere, in systems and spreadsheets the CMS could not reach. Every attempt to connect them required manual effort or bespoke workarounds. Processes that should have been data-driven — intake, submissions, approvals, updates — were handled by email and manual re-keying, because the platform offered no better path. The department was paying the tax of an architecture that had been designed for a simpler era: publishing static content, not running data-driven services.

Why replacement, and why now

The department faced a choice that will be familiar to any organization running a legacy platform: keep patching, or replace. Patching had a real cost that was easy to underestimate, because it was spread across everyone's time — the content editor waiting on IT, the program officer re-keying data, the administrator maintaining workarounds nobody documented. Replacement had a visible cost and a visible risk, which made it the harder case to make on paper even though it was the cheaper path in practice.

What tipped the decision was the requirements gap. The department's security, governance, and accessibility obligations had moved on while the platform had not. A modern portal had to do more than publish pages: it had to enforce role-based access, protect fields according to who was viewing them, log what happened, and meet accessibility expectations for public and internal users alike. Retrofitting those capabilities onto the legacy CMS would have meant building a new system inside an old one. Replacing it with a platform designed for data, security, and governance from the start was the honest answer — and the department chose it.

The stakeholders spanned the organization: communications and program teams who owned the content, IT teams who would run the new platform, security teams who had to approve it, and the external users whose experience would ultimately judge it. The new solution had to serve all of them, and it had to do so inside the department's governance and security standards — not as an exception to them.

The approach

The legacy CMS was replaced with a Power Platform solution built on Power Pages and Dataverse. The work started with data architecture: complex Dataverse table structures designed to support multiple forms, data flows, and user interactions across the portal.

Security was designed in, not added after. Role-based access control was implemented through Power Platform security roles and field-level permissions, with environment governance standards applied throughout. Model-driven Power Apps were built to manage backend operations — custom forms, views, dashboards, and business rules for operational and administrative users.

The public-facing experience was built on Power Pages: responsive landing pages and multi-step, form-driven experiences integrated with Dataverse for secure external data capture. Power Automate flows handled validation, transformation, and data synchronization to keep data integrity across the lifecycle, along with approval and notification workflows with conditional routing and audit logging.

Data publishing pipelines synchronized Dataverse data into structured SharePoint sites for reporting and stakeholder visibility, and SharePoint and Dataverse were integrated for bidirectional data use. Governance, security, and development standards — environment strategy, DLP considerations, documentation — were defined and enforced from the start. Hands-on training and knowledge transfer sessions equipped internal IT and business teams to administer and extend the solution.

Why the data model came first

The sequencing was deliberate: data architecture before screens, security before features, backend before portal. The data model is the foundation everything else stands on. If the tables, relationships, and security model are wrong, every form, workflow, and report built on top of them inherits the error — and fixing it later means rebuilding. So the first work was designing Dataverse table structures that could support multiple forms, data flows, and user interactions across the portal, with the relationships and rules the department's processes actually required.

Security was designed at the same time, for the same reason. Retrofitting security onto a finished application is one of the most expensive mistakes in software: it means reworking screens, workflows, and data access after they are built. Here, role-based access control through Power Platform security roles and field-level permissions was part of the design from the beginning, with environment governance standards applied throughout. A field that only certain roles should see was protected at the data layer, not hidden cosmetically in the interface — the difference between real security and the appearance of it.

Build order and trade-offs

The build order followed the dependencies: model-driven Power Apps for backend operations first, so operational and administrative users had working tooling — custom forms, views, dashboards, and business rules — before the public-facing portal went live. The Power Pages experience came next: responsive landing pages and multi-step, form-driven experiences integrated with Dataverse for secure external data capture. Power Automate flows handled validation, transformation, and data synchronization across the lifecycle, plus approval and notification workflows with conditional routing and audit logging, so every submission had a traceable path.

A key trade-off was platform choice itself. A custom-coded portal could have matched any specification, but it would have carried custom-code maintenance, a longer build, and a security surface the department would own forever. The Power Platform choice traded unlimited flexibility for speed, governed extensibility, and a security model built into the platform. Dataverse over SharePoint lists was a similar decision: the data was relational, the security requirements were granular, and the audit expectations demanded a real data platform. SharePoint still had a role — data publishing pipelines synchronized Dataverse data into structured SharePoint sites for reporting and stakeholder visibility, and the two were integrated for bidirectional use where that served the department's reporting needs.

Governance, security, and development standards were defined and enforced from the start rather than documented at the end: environment strategy, DLP considerations, and documentation as a working practice, not a handover afterthought. Hands-on training and knowledge transfer ran alongside the build, so internal IT and business teams were equipped to administer and extend the solution — because a portal the department cannot run itself is a dependency, not a deliverable.

The outcomes

The department received a modern, secure, data-driven portal: content delivery modernized, data integrated with the processes that need it, and governance built into the platform rather than bolted on afterward. Business users gained form-driven experiences that follow defined processes; administrators gained model-driven tooling and a supportable architecture; the organization gained a solution it can evolve instead of one it has to work around.

[Quantified user-experience, content-governance, and automation metrics to be confirmed by Harjot before publication.]

What changed operationally

The most visible change was in who could do the work. Content and program teams gained form-driven experiences that follow defined processes — submissions, approvals, and updates handled through the portal rather than through email chains and manual re-keying. Administrators gained model-driven tooling: custom forms, views, dashboards, and business rules that let them manage backend operations without waiting on developers. The approval workflows, with conditional routing and audit logging, replaced a process that had lived in inboxes with one that had a traceable record.

Behind the scenes, the data publishing pipelines changed how reporting worked. Dataverse data flowing into structured SharePoint sites meant stakeholders could see reporting and status without requesting it, and the bidirectional integration meant data entered once was usable in both places. Validation and transformation flows kept data integrity across the lifecycle, which is the unglamorous work that determines whether a system is trusted or merely tolerated.

What the department can now do that it could not before

The department can now capture structured data from external users through secure, validated, multi-step forms — with role-based access and field-level security protecting what should not be visible. It can route submissions through approvals that are conditional, logged, and auditable. It can publish and report from the same data, rather than maintaining a CMS version and a spreadsheet version of the truth. And it can do all of this inside its governance and security standards, with environment governance, DLP considerations, and documentation as part of the platform's operating model rather than exceptions granted to it.

Perhaps most importantly, the department can now evolve the solution. A data-driven portal on Dataverse and Power Pages is extensible: new forms, new workflows, new data relationships can be added without re-architecting. The legacy CMS could only be worked around. The new platform can be built on.

What carries forward

What carries forward is a supportable architecture and a trained team. The governance, security, and development standards defined during the engagement remain as the operating rules for the platform. The internal IT and business teams, equipped through hands-on training and knowledge transfer, can administer and extend the solution without depending on the people who built it. The Dataverse data model, the Power Pages experience, the model-driven administration tooling, and the automation flows form a foundation the department can extend as its needs change — which is the real measure of a replacement: not that the old system is gone, but that the new one does not need replacing.

[Additional quantified outcomes — forms and workflows delivered, approval cycle improvements, content-governance measures — to be confirmed by Harjot before publication.]

This case study is based on Harjot Singh's key-personnel project work. It is marked DRAFT pending Harjot's verification of facts, metrics, and framing before any publication.

Weekly newsletter
No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.
Read about our privacy policy.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.