Canvas vs Model-Driven vs Code Apps in Power Apps (with Licensing) | PowerPlatformTip

Canvas vs Model-Driven vs Code Apps in Power Apps (with Licensing) | PowerPlatformTip

Canvas vs Model-Driven vs Code Apps 📱

Power Apps offers three ways to build an app, each with a different starting point. Pick the wrong one and you fight the tool the whole way. Here’s what each is, when to use it, and what license your users need to run it.

TL;DR: Canvas apps mean pixel-perfect UI you design by hand, with data from 1,000+ connectors. Model-driven apps mean data-first apps built on Dataverse, responsive by default. Code apps mean code-first web apps (React/Vue) in your own IDE, hosted on the managed Power Platform. Running premium/custom apps needs a Power Apps license.

The three app types at a glance

  Canvas Model-driven Code app
Starts from The screen The data model Your code
Built by Makers Makers on Dataverse Pro developers
UI control Full, with Power Fx Component-driven Full (React, Vue)
Data 1,000+ connectors Dataverse Power Platform + connectors
Built in Power Apps Studio make.powerapps.com VS Code + Power Apps CLI
Status GA GA Preview

1. Canvas apps: design-first

Canvas apps give you a blank canvas and full, pixel-level control over layout using Power Fx formulas. Start from data, a template, or blank, and connect to 1,000+ connectors. They work best when the user experience and look-and-feel matter most: task apps, mobile-first forms, guided experiences.

🔸 Extend with code components (Power Apps component framework, or PCF) built by pro devs.

2. Model-driven apps: data-first

Model-driven apps are built on top of Dataverse. You model your data (tables, relationships, business rules), and the app’s forms, views and dashboards are largely generated and responsive by default. Dynamics 365 apps (Sales, Customer Service) use the same Dataverse foundation. They work best for process-heavy, data-rich business apps where consistency beats bespoke pixels.

3. Code apps: code-first (preview)

Power Apps code apps let professional developers bring Power Apps capabilities into custom web apps built in a code-first IDE such as Visual Studio Code. You develop locally and run the same app in Power Platform, using popular frameworks such as React and Vue with full control over UI and logic.

🔸 Key features: Microsoft Entra authentication, access to Power Platform data sources and 1,500+ connectors callable directly from JavaScript, easy hosting on Power Platform, and adherence to Managed Platform policies (sharing limits, Conditional Access, DLP).

🔸 Prerequisites: an IDE, Node.js (LTS), Git and the Power Apps CLI. An admin enables it per environment via Settings → Product → Features → “Power Apps code apps” in the Power Platform admin center.

🔸 Code apps are currently in preview.

Which one should I pick?

flowchart TD
    A["Starting point?"] --> B{"You bring your own code<br/>and pro-dev tooling?"}
    B -->|"Yes"| C["Code app<br/>preview"]
    B -->|"No, a maker builds it"| D{"Data model in Dataverse,<br/>consistency over pixels?"}
    D -->|"Yes"| E["Model-driven app"]
    D -->|"No, pixel-perfect UI<br/>over mixed data sources"| F["Canvas app"]

Licensing: what your users need

Running premium apps (custom apps, premium connectors, Dataverse, model-driven apps) requires a Power Apps license. The main options:

🔸 Power Apps Premium: per user, build and run unlimited custom apps for $20/user/month (or $12/user/month with 2,000+ new user licenses). Formerly “Power Apps per user”.

🔸 Power Apps per app: run one app for a specific scenario at $5/user/app/month. It’s stackable (multiple per-app licenses cover multiple apps) and covers one app (canvas and/or model-driven) within a single environment.

🔸 Power Apps pay-as-you-go: run an app via an Azure subscription with no upfront license; you postpay per active user per month.

🔸 Code apps: end users who run a code app need a Power Apps Premium license.

🔸 Lots of occasional or external users who only need to view or lightly edit Dataverse data? A Power Pages site can be the cheaper route: it’s licensed by authenticated/anonymous Monthly Active Users (capacity packs) rather than one Power Apps Premium seat per person, and it can run against the same Dataverse tables and forms your model-driven app already uses.

⚠️ Stricter enforcement from February 2027. Areas where licensing was applied leniently, apps in managed environments, model-driven apps, and apps used outside a Dynamics 365 environment context, will require an appropriate premium license. Review your license assignments before then so users don’t lose access.

🛠️ FAQ

Is a code app the same as a code component (PCF)? No. A code app is a whole app built code-first. A code component / PCF is a reusable control you drop into a canvas or model-driven app. Both need appropriate Power Apps licensing.

Can I embed a canvas app in a model-driven app? Yes, canvas apps can be embedded in model-driven forms, a common pattern for custom UI inside a Dataverse app.

Do I always need a paid license? You can build for free (developer plan / trial), but running premium apps in production requires a qualifying Power Apps license. Standard-only scenarios may be covered by an existing Microsoft 365 (Office 365) license; check the current licensing guide.

Are code apps production-ready? They’re in preview at time of writing. Evaluate them, but confirm current status before betting a production workload on them.

🔸 All Power Apps tips

🔸 Knowledge base overview

Licensing figures reflect Microsoft Learn at time of writing. Always confirm current pricing and terms in the Microsoft Power Platform Licensing Guide.