In August 2023 I made a post comparing Canvas Apps to Model-driven Apps. You can find it here: Create your first app: Canvas Apps Vs. Model-Driven Apps
That post was made as a guide for new citizen developers, to help them decide what they should do, when deciding which technology was the right fit for them when making a new app.
Without going into cliches. Things have of course changed since then. There are now 5(really only 4) viable options I would say a citizen developer should consider when deciding which app is relevant for them.
The list is:
- Model-Driven Apps
- Canvas Apps
- Vibe apps
- Code Apps
- Power Pages (I include this just for arguments sake, but I would not consider this a viable scenario for most citizen developers, however I welcome any feedback)
The main differentiator in my list is my belief in which interface a citizen developers will be comfortable in using when creating apps. I will therefore rate each app on a scale going from No-code to Pro-code, while encompassing all options in between.
To break it down further: I make my distinctions largely based on whether I believe that a “Citizen Developer” still relies on a certain level of UI/UX to help them develop applications or whether they are able to work with some elements of code, or even use an IDE or work with things like a GitHub Repo.
Lets start off with my personal favourite: Model-Driven Apps.
Model-Driven Apps (No-code)
When making a new app. I still consider Model-Driven apps the gold standard for citizen developers. The ease of use interface. The large advantages of having enterprise ready storage/security/ALM already built in and ready to use out-of-the-box through Dataverse and the Power Platform makes Model-Driven Apps extremely easy to use, leverage and allows users to have business applications that will stand the test of time. In addition to my arguments from my previous post.
I still consider model-driven apps to be the only truly no-code App. It is of course possible to also extend your applications using code, either through Javascript, PCF components of plug-ins. But in many practical day-to-day scenarios, you should be able to work with your data using out-of-the-box features that can be accessed through the UI by point-and-click.
Creating applications is done through a very stream-lined interface that year-after-year experiences very little change. All fundamental elements stay the exact same. The application you built 5 years ago can be maintained and managed 5 years later using the exact same interface, with the same options as you have previously used.
Some will argue that this is could be considered a drawback, but in my experience, the opposite is true. In the world of enterprise applications, I find that stability, and easy of use across multiple different types of applications is very highly valued.
Users can create multiple applications, where the interface and user experience remains familiar and instantly recognizable, even as users change between applications.
New developments: Model-driven apps have also gotten the ability to create a “plan”. For new applications this helps the user “plan” their application and build much of the essentials elements through natural language. For existing apps this essentially creates the documentation for your existing solution and also helps expand it. There are drawbacks as the plan is not yet able to work very well with table relationships and some elements of the older dynamics functions such as business rules, real-time workflows, etc.
Database considerations: Model-Driven Apps only run on Dataverse and require premium connections. One of the most common reasons that I find when speaking to people about choosing the right application is simply licensing. Organizations want people to create applications that can be used across the business to make users work faster and more efficient, but they don’t want to pay for the premium licenses. This is, in my opinion, one of the primary drivers for Canvas App adoption across organizations.
Canvas Apps (low-code)
Canvas Apps are still king in terms of making a fully customizable UI.
The “pixel-perfect” option of freely creating buttons, fields, controls, etc. right where you want them is very hard to beat. All of this is done in a way where the user maintain a very large level of control of where exactly to place each element of their application.
However, this also comes with a drawback. Creating applications require a larger amount of customization for each application. There are tools for helping developers apply themes and use modern controls across apps and PowerFX is a powerful and easy to use (and very well documented) programming language. Meaning that developers are not going to struggle with creating applications (in most cases). I rate canvas apps as low-code because the user still has a familiar user interface for creating applications and can still drag-and-drop certain elements and easily control the application and see the UI as they develop the application
Data sources: When creating a canvas app. Developers have a myriad of choices available as their data source. You could start with an excel sheet, a SharePoint List, an SQL server, and the list goes on. All of this can be done without paying for premium Power Apps licenses for users.
Vibe Apps – Still in preview (combination of No-Code & Code)
One of the newer additions to the Power Platform family.
Vibe apps are a way of bridging the gap between Canvas apps and Model-Driven apps. While this is still in preview. It’s worth talking about as this is one of the areas where we see Microsoft investing heavily at the moment.
Users are able to leverage all the power of modern LLMs to create applications simply by talking and prompting using natural language. This is in my opinion an extremely powerful tool that will arguably make development of applications much easier and faster.
All drawbacks of the canvas-apps (cumbersome in terms of making changes, requires coding/attention to details, lack of the low-code interface for development) are gone. Natural language drives the creating and editing of your applications. If you want to move a button or add a new function, you simply tell the app about it in your own words and it will understand you and create exactly what you need.
The ease of use of this type of development is hard to argue with. The main drawbacks are the requirement of a Premium license and the issue of citizen developers being unable to easily make their own changes within the code without having to use additional prompts. The first versions did not allow users to change the code, but recent releases have allowed direct editing within the code itself.
There are still unanswered questions about how ALM and other best practices are going to work when creating vibe code apps. Also, existing applications are currently not supported. Vibe coded apps only work with completely new apps. But, it’s hard to argue that for new applications and for new citizen developers(with a premium license), a Vibe coded app is the easiest way of going from nothing, to a complete app within minutes.
Vibe coded apps not only create the apps, but also creates a plan with tables, workflows, users roles and agents. All working together to make your app work exactly as you have described. This is an incredibly powerful framework that I expect to grow considerably in the coming years.
Code Apps
Code-Apps are a separate thing. They do not function at all like either model-driven apps, Canvas apps or even Vibe apps. They exist in a completely separate world. What I mean by that is that even though they are able to use data sources from your Power Apps environments, and generally integrate with your environments, they require you to develop your applications either through a IDE or CLI. Furthermore, a Power Apps Premium license is required for users that need to run your Code Apps.
I won’t go into too many details about code apps, simply because I know very little about them. I will however copy paste the first two paragraphs from the learn documentation about what Code Apps are:
Power Apps empowers developers of all skill sets, including those building web apps in integrated developer environments (IDEs) like Visual Studio Code, to efficiently build and run business apps on a managed platform.
Code apps let developers bring Power Apps capabilities into custom web apps built in a code‑first IDE. You can develop locally and run the same app in Power Platform. Build with popular frameworks (React, Vue, and others) while keeping full control over your UI and logic
If you read the above and feel comfortable moving forward. Go for it. If you read the above and are left with more questions and answers. Then maybe Code apps isn’t the right fit.
However, I have had many discussions with developers and fellow consultants about Code apps and to me one thing stands clear. All developers tell me that Code apps are extremely easy to use and to get started with, and I should be able to start making code apps within minutes. While users and other functional consultants still do not have much experience working with IDEs, CLI, Repos or anything like that and they don’t even know how to start asking Copilot/ChatGPT/Claude/etc about these things. I consider Vibe Apps to be a better fit for citizen developers.
Power Pages
I wont go into to make details about power pages. As I also don’t work with technology enough to truly grasp the intricacies of what this technology truly offers. I will however mention some advantages that I do know are available through this technology. It is possible to use Dataverse tables to create customer facing applications. This means that you are able to leverage certain aspects of your Dataverse environments, while exposing your applications to the outside world. Something that is unique to Power Pages as opposed to all other types of applications, where access depends on having a License and accessing the Application through the organization. Meaning that all other types of applications are essential Internal applications and not meant for external use.
Power Pages are created using a programming language called Liquid, which you can use an LLM to help you create quite easily. The interface has a slight resemblance to some elements from model-driven apps, but not completely similar. And some functionality from model-driven apps will not be transferable to Power Pages.
For developers that need to make customer facing sites, or creating applications that combine internal and external users, Power Pages remain a very useful tool for achieving this.

Leave a Reply