Can AI build PowerApps for us yet?
Testing top AI models on generating YAML for PowerApps - results varied, potential massive!
The other day I had an interesting conversation with a friend about how good AI already is at building software products. But then we hit a question:
how good is it actually for building something like PowerApps?
Some say, tools like Copilot seem promising, but let’s be honest: they’re still clunky. So I started wondering… what if we skip Copilot for now and use the leading AI models to generate YAML code for PowerApps directly?
I ran an experiment with the four most advanced models right now:
Grok 3 (xAI)
Claude Sonnet 4 (Anthropic)
GPT-4o (OpenAI)
Gemini 2.5 (Google)
🎥 Watch the full video of the experiment here → here
Here’s what I tested and what they produced.
1. Can AI generate PowerApps YAML code from scratch?
I asked all models:
Prompt:
Give me a working YAML code for a Power Apps button component that I can copy and paste into Power Apps Studio.
• Use only properties you know are valid in Power Apps YAML.
• Set the button text to “Click Me”.
• Make it 200px wide, 50px high, with a blue background.
• Don’t invent properties—if you’re not sure, leave it out.
• Output only the YAML, nothing else
Result:
None of the models succeeded. Every attempt produced errors. Not surprising really. YAML for PowerApps isn’t well-documented online, unlike Python or JavaScript, so these models lack good training data.
2. What if we give the AI some context?
This time I provided the YAML for an existing button and asked them to change just one property: the width.
Prompt:
Here’s a working YAML code for a Power Apps button
- Button1:
Control: Classic/Button@2.2.0
Properties:
BorderColor: =ColorFade(Self.Fill, -15%)
Color: =RGBA(255, 255, 255, 1)
DisabledBorderColor: =RGBA(166, 166, 166, 1)
Fill: =RGBA(56, 96, 178, 1)
Font: =Font.'Open Sans'
HoverBorderColor: =ColorFade(Self.BorderColor, 20%)
HoverColor: =RGBA(255, 255, 255, 1)
HoverFill: =ColorFade(RGBA(56, 96, 178, 1), -20%)
PressedBorderColor: =Self.Fill
PressedColor: =Self.Fill
PressedFill: =Self.Color
X: =40
Y: =40
Change only one thing: Set the width to 300.
Don’t touch anything else. Keep the structure and indentation exactly as it is.
Result:
✅ Success: Grok and Claude nailed it.
❌ Fail: GPT-4 and Gemini couldn’t manage it.
3. Can they handle multiple changes?
Next, I asked them to change several properties at once: width, height, color.
Prompt:
Here’s a YAML code for a Power Apps button:
- Button1:
Control: Classic/Button@2.2.0
Properties:
BorderColor: =ColorFade(Self.Fill, -15%)
Color: =RGBA(255, 255, 255, 1)
DisabledBorderColor: =RGBA(166, 166, 166, 1)
Fill: =RGBA(56, 96, 178, 1)
Font: =Font.'Open Sans'
HoverBorderColor: =ColorFade(Self.BorderColor, 20%)
HoverColor: =RGBA(255, 255, 255, 1)
HoverFill: =ColorFade(RGBA(56, 96, 178, 1), -20%)
PressedBorderColor: =Self.Fill
PressedColor: =Self.Fill
PressedFill: =Self.Color
X: =40
Y: =40
Change these four things—nothing else:
- Set width to 300.
- Set height to 80.
- Make the color green.
Keep the rest of the code exactly as it is. No extra changes. Output only the updated YAML.
Outputs:
Claude Sonnet 4:

GPT-4:

Result:
✅ GPT-4 and Claude handled this.
❌ Grok and Gemini failed.
4. Can they combine components?
I gave them YAML for a button and a container, asking them to nest the button inside the container.
Prompt:
Take this Power Apps button YAML:
- Button1:
Control: Classic/Button@2.2.0
Properties:
BorderColor: =ColorFade(Self.Fill, -15%)
Color: =RGBA(255, 255, 255, 1)
DisabledBorderColor: =RGBA(166, 166, 166, 1)
Fill: =RGBA(56, 96, 178, 1)
Font: =Font.'Open Sans'
HoverBorderColor: =ColorFade(Self.BorderColor, 20%)
HoverColor: =RGBA(255, 255, 255, 1)
HoverFill: =ColorFade(RGBA(56, 96, 178, 1), -20%)
PressedBorderColor: =Self.Fill
PressedColor: =Self.Fill
PressedFill: =Self.Color
X: =40
Y: =40
Take this container YAML:
- Container1:
Control: GroupContainer@1.3.0
Variant: ManualLayout
Properties:
X: =60
Y: =60
Now, put the button inside the container and give me the YAML code.
Outputs:

Result:
✅ Grok, Claude, and GPT-4 succeeded.
❌ Gemini failed again.
5. Can they debug broken YAML?
I deleted a few lines in a component and asked them to fix it.
Prompt:
This YAML file is broken.
- conTab:
Control: GroupContainer@1.3.0
Variant: AutoLayout
Properties:
BorderStyle: =BorderStyle.None
Fill: =RGBA(232, 232, 232, 1)
Height: |
=50
.
.
.
Power Apps won’t import it.
Your job:
- Find what’s wrong.
- Fix it so it imports clean.
- Don’t add new features. Just make it work.
Show only the fixed YAML.
Result:
None of the models could repair it. Debugging YAML might still be out of reach for general-purpose AIs.
6. Can they modernize a UI?
I asked them to take a basic button and make it “more modern.”
Prompt:
Here’s a basic Power Apps component:
- Button1:
Control: Classic/Button@2.2.0
Properties:
BorderColor: =ColorFade(Self.Fill, -15%)
Color: =RGBA(255, 255, 255, 1)
DisabledBorderColor: =RGBA(166, 166, 166, 1)
Fill: =RGBA(56, 96, 178, 1)
Font: =Font.'Open Sans'
HoverBorderColor: =ColorFade(Self.BorderColor, 20%)
HoverColor: =RGBA(255, 255, 255, 1)
HoverFill: =ColorFade(RGBA(56, 96, 178, 1), -20%)
PressedBorderColor: =Self.Fill
PressedColor: =Self.Fill
PressedFill: =Self.Color
X: =40
Y: =40
Please rewrite that YAML code and make the button look more modern.
Outputs:
Claude Sonnet 4:

GPT-4:

Result:
✅ GPT-4 and Claude delivered surprisingly nice, modern designs. Claude in particular impressed me.
So… is AI ready for PowerApps development?
Not really. Not yet.
But as an experiment, this shows how far general-purpose AIs have come. With a custom fine-tuned model trained on PowerApps YAML specifically, I think the potential is massive.
👉 You can watch the full video where I walk through these tests here.