Dataverse-aware by default
Power Portals Pro components automatically configure themselves using Dataverse metadata—so you spend less time wiring labels, tooltips, required rules, and constraints, and more time shipping portal experiences.
React & Blazor + Fluent UI
Build on a modern React + Vite + TypeScript SPA or ASP.NET Core Blazor — both rendered with Microsoft's Fluent UI design system and both exposing the same metadata-driven components and Dataverse capabilities. Pick whichever stack matches your team's skills; the developer experience, theming, accessibility, and component coverage stay consistent across both.
Metadata-driven UI
Labels, tooltips, required flags, min/max ranges, and length limits come from Dataverse—so every editor on every page stays consistent with your data model without per-form configuration. Rename a column or tighten a constraint in Dataverse and every portal page that references it picks up the change on the next load, with no portal-side code edits or redeploy required.
Atomic saves + full framework flexibility
When users save, all changes—form fields plus grid and sub-grid edits—persist in a single Dataverse transaction, so updates are atomic: everything succeeds or everything rolls back. And because you're building a true custom portal on React + Vite or ASP.NET Core Blazor, the full npm and .NET ecosystems are yours: libraries, middleware, auth providers, logging, and background services.
Build internal portals, not just customer portals
Power Portals Pro isn't only for customer-facing sites—internal employee portals, departmental tools, and back-office apps are first-class use cases. Because staff sign in as their own Dataverse systemuser, your existing role assignments are the security model: no duplicate Contact records, no parallel permission system, and a single codebase can serve internal staff and external customers side by side.
Localization & translation ready
Localize every table label, tooltip, view name, and choice option into any language—you're never limited to the languages Dataverse ships a language pack for. Source translations from installed language packs, supply your own JSON files for any culture, or combine the two with JSON entries overriding anything Dataverse provides—and switch a user's language at runtime without a redeploy.
Machine translation in minutes
Translate your entire site into dozens of languages in minutes. From the built-in admin page, upload a localization file and pick your target languages, and every string is machine-translated through Azure Translator, DeepL, or Google—reusing anything already translated so you only pay for what's new. Download the results per language or as a single zip and drop them in to ship a fully localized portal, no translator in the loop.
Authentication & authorization included
Built on ASP.NET Core Identity with first-class support for two audiences at once. Staff sign in as their own Dataverse systemuser via Microsoft / Entra ID, and Dataverse security roles enforce row-, column-, and business-unit-level access through CallerId impersonation. Customer-facing users map to Dataverse contacts and accept local username/password plus Microsoft, Google, and any other ASP.NET Core provider.
Read + save forms to Dataverse
Build pages that load records from any Dataverse table and persist user edits back with a single save call. The framework handles dirty tracking, lookup resolution, related-record updates, and the FetchXML/Web API plumbing under the hood—so a typical edit page is a handful of declarative components, not pages of hand-written CRUD wired against the Dataverse SDK.
Validation that matches Dataverse
Required flags, min/max ranges, length limits, and option-set constraints flow straight from Dataverse metadata into the editors, so forms reject invalid input the same way Dataverse would on the server. No duplicate validation rules to maintain in two places—change a constraint in Dataverse and the portal enforces the new behavior on the next page load.