Glossary

Canvas app

By Emil Björk · Microsoft business apps consultant, Gothenburg

A Power Apps application type with pixel-perfect drag-and-drop UI — built from a blank screen using Power Fx, connecting to many data sources.

A canvas app is one of two Power Apps application types (the other being model-driven). Canvas apps start from a blank screen; the maker drags controls onto it — galleries, text inputs, dropdowns, buttons, charts, images — and wires their behaviour with Power Fx, the spreadsheet-like formula language Power Apps shares with Excel. Layout is pixel-perfect and fully controlled by the maker, unlike a model-driven app's auto-generated screens. Data sources can be Dataverse, SharePoint, SQL Server, Excel, hundreds of third-party connectors, or any combination of these in the same app. Canvas apps suit mobile-first scenarios, field-worker apps, kiosk-style single-purpose apps, and bespoke UX patterns where a standard Dynamics 365 model-driven form would be overkill or wouldn't fit the physical workflow.

In practice, a canvas app's flexibility is also its cost. Because nothing is generated automatically, the maker builds every screen, every navigation path, and every piece of validation logic by hand in Power Fx — there's no auto-generated security-aware form, no advanced find, no built-in dashboards or business process flow the way a model-driven app gets for free from its Dataverse schema. A small canvas app (a shift check-in form, an expense-photo capture tool) stays simple to build and maintain; a large one accumulates enough screens and Power Fx formulas that it starts to resemble hand-rolled software development, formulas and all, without the tooling (source control diffing, unit tests) that real code gets. Canvas apps also support offline mode, caching data locally so a field worker can keep working without a connection and sync once back online — something a model-driven app cannot do natively.

Where confusion shows up: teams sometimes default to canvas apps because the drag-and-drop building feels more approachable than configuring a Dataverse schema, then discover mid-project that the app has quietly grown into a data-management tool that would have been a better fit as model-driven — complex security requirements, need for related-record navigation, or a request for "just add a dashboard" are the usual triggers. The decision is best made early: canvas for a focused, mobile-first, bespoke-UX task; model-driven for anything that's fundamentally about managing structured, related, security-scoped business data. Custom pages — canvas-style screens embedded inside a model-driven app — exist specifically to bridge the two when a model-driven app needs one screen with canvas-level layout control.

Related terms

Mentioned in these guides