
Introduction
Part one of this series of blog posts is about why I’m doing this, what I plan to make and a few notes about some decisions I’ve made, like why I’m using Claude Code instead of GitHub Copilot. If you’re just interested in the technical part, you can start with Part 2.
The direction of travel in the power platform world has been towards low-code tools for years now. While I sometimes regret the demonisation of pro-code, I’ve seen enough poorly documented, poorly implemented pro-code elements of the project to know why people are scared of them.
Before I got into working with Dynamics CRM 4 just over a decade and a half ago, though, I was a full-time C# developer, and since I was working on websites at the time, I was also a reluctant JavaScript developer. There were plenty of options to extend back-end functionality with pro-code if you needed to, but for front-end work, we were pretty much limited to clunky iFrames containing web resources.
Fast forward to today, and I haven’t been a day-to-day coder for a few years now, but the options for customising the UI of Power Platform Apps have improved significantly, and Microsoft have introduced the possibility of a fully custom UI that sits inside Power Platform as a native app.
This option really intrigued me, even though it seemed pretty niche. I could see potential in a CodeApp sitting alongside a suite of other apps, with users not really knowing or caring that they’re put together in different ways. My expectation is that access and authentication will integrate with established Power Platform controls. I’ll test the applicable sharing, identity, authorisation and data-access behaviour during the build rather than assuming it is equivalent to a canvas app.
The potential to tap into React’s rich ecosystem really appeals to me. It includes many mature components and libraries, but each dependency still needs proportionate review for security vulnerabilities, maintenance status, licensing, data handling and compatibility with your Power Platform controls.
With the tooling support Microsoft has put together, a CodeApp should be easier to build and maintain than a fully custom React app. The Power Apps CLI, built to support the development process, offers modern development environment features like a ‘live develop’ mode that lets you run the app locally and rebuild live as you work. It can also auto-generate assets in our project for tables, functions or actions we want to use from our Power Platform environment.
So I’ve talked myself into building a CodeApp to see what’s involved. I think I have enough experience with React, from building proof-of-concept apps and a few other bits over the last few years, to do this. There are definitely some nerves, though. I don’t code all the time anymore, and React and its modern ecosystem came after my time as a web developer, so I’d describe my level of knowledge as ‘I know enough to get into trouble’.
Hopefully, my secret weapon here will be Claude Code. I used it towards the end of 2025 to build a website for a game some friends and I were playing, and since then, Anthropic has released newer models. To see if they perform better for this use case, I’ll assess the quality, reliability and amount of human correction required during the project.
Project Goals
My goals for the project are to get a working CodeApp that pulls data from a Dataverse instance. I don’t want to build anything too complicated, but I do want something with a strong visual element to demonstrate how this app differs from a regular model-driven or canvas app.
AI tools can be very useful, but in the time they’ve existed, there has already been significant disruption in both service provision and areas like pricing. If I build a demo CodeApp I like, I want to be confident I can continue using the codebase myself if necessary, without relying on AI tools for maintenance or additional functionality. With that in mind, I want to stick to tools, components and libraries that I know I could use myself if necessary, and that I understand the codebase well enough to work with it without an AI agent helping me.
Project Approach
The project I have in mind is a map-based app that displays a list of locations in a sidebar and, when a location is clicked, shows the corresponding points of interest on the map. There have been a few ways I could have used something like this in past projects, and while it could also be done as a component or a custom page, it feels like a decent mini-project to see how well CodeApps work.
The approach I’m going to use for this project is similar to what I did with the game website last year, since that seemed to work pretty well. I’ll create an empty project shell using an available CodeApp template. I’ll add libraries and components I’m confident I want to use for the project, such as Tailwind and the Azure Maps React components.
Once I’ve got the shell and the libraries set up and I know everything builds, there should be enough context to start working with Claude. I’ll use Git to give myself known project points in case I need to undo anything that goes wrong.
Claude Code vs GitHub Copilot
I chose Claude Code for this blog post because I used it at the end of last year, liked its workflow, and thought the results were good. I also noticed that some of the people I know working in the Power Platform and Azure space had naturally gone to GitHub Copilot as their AI coding tool of choice because it was integrated into the development environment (VS Code or Visual Studio) they were already using.
I was exactly the same. I got access to GitHub Copilot when it was still in preview, and I’ve been using it ever since.
When Claude Code started getting a lot of buzz, curiosity led me to try it out, and as I’ve said, I liked the workflow. It felt like a very practical tool built from the ground up for professional coders.
Currently, I use both tools together: I use GitHub Copilot in VS Code to ask questions, generate quick code snippets, or handle other small tasks, and I use Claude Code as I’ve described in this blog post when working on things like React apps or other standalone coding projects.
At some point, price might force me to make a choice between them, but for now, I think it’s useful to be familiar with them both.
What’s Next
That’s enough rambling on. In the next post, I’ll get started on the CodeApp and begin customising it to provide the Claude Code AI with more context to work with.
If you want to learn more about the Microsoft Team here at Capgemini, take a look at our open roles and consider joining the team!
Building a PowerApps CodeApp with Claude Code: Part 1 was originally published in Capgemini Microsoft Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.


