See "Edit 20251025" below
Microsoft Power Pages (MPP)
MPP is a perfect tool in a corporate environment allowing to build full-scale websites integrated with Azure products and services, consisting of:
- Dataverse as a built-in database
- Web APIs to query the data
- Power Automate to connect to external endpoints (REST, SOAP, etc), query Azure SQL databases, trigger emails and use various Azure and other services
- Dataflows to load data into Dataverse from various sources
MPP is aimed at citizen developers - makers without programming experience, providing tooling and templates with low-code principle and as a result a lot of unnecessary dependencies and functionalities which you can neither control nor disable. Such dependencies in many cases promote delays in response to user actions and prevent full customization of the user interface.
MPP may however be the only solution for a full-scale web app in a corporate environment, when you have limited allowed techstack in the organization (like I do), not allowing React, Node.js or other modern technologies.
Here is a list of all components loaded for the SignIn page:

Can we somehow simplify this and control what to load? Yes, with a custom setup.
Single Page Application with Power Pages
Single Page Application implementation with Power Pages is not something Microsoft provides by default.
Edit 20251025 start
It's now possible to make SPA. However, even if your page is build in this new way, you will still have similar bunch of default dependencies loaded by default.
To turn your existing site into SPA, in Power Pages Management app add in Site Settings a new setting named CodeSite/Enabled with value set to true.
After this is done and setup resynced, I noticed at first glanse the following changes:
1) In make.powerpages.microsoft.com you get the SPA mark, and pages and styling disabled:
2) Routing logic of your website will now change. If a route does not exist, you get a default Power Pages template loaded with all default dependencies, and not page-not-found route as before. The site makes a full reload in this case. Template of a page that does not exist cannot be customized, whereas in the non-spa you can fully control that.
So, I will continue with my present setup as described further...
Edit 20251025 end
In a series of posts Power Pages SPA I will share how it may be implemented with as little dependencies as possible, with connected Microsoft Authentication Library (MSAL) for JS for direct query of Dataverse, Azure Storage and other services.

Top comments (0)