Power Apps · canvas → code

Your canvas apps, as real code.

Fixed-price conversion to React and TypeScript. 3,631 formulas on the last one.

What actually happens

Real formulas from a real conversion — a five-screen expenses app on Dataverse, not a mock-up.

01 · Your app today

Power Fx, locked in a formula bar. No source control, no tests, no review.

// Employees screen · gallery items
Search([@Employees],
  SearchInput1.Text,
  cr6bf_employeename,
  cr6bf_email,
  cr6bf_phone)

// the save button
SubmitForm(Form1)
02 · The converter

Deterministic translation. Rules, not a model guessing at your logic.

3,631

formulas read — every one accounted for

3,542

translated automatically, by rule

89

handed to a developer, itemised and costed

03 · What you get

TypeScript that compiles clean, in a repo you own.

pfx.Search(Employees,
  SearchInput1?.Text,
  (row) => row.cr6bf_employeename,
  (row) => row.cr6bf_email,
  (row) => row.cr6bf_phone)

// SubmitForm, made explicit
bx.submitForm("Form1", {
  dataSource: "Employees",
  item: RecordsGallery1?.Selected,
  values: { … }
}, { onSuccess, onFailure })

And the 89 it wouldn't translate

Every one is listed, with the reason, in the report you get. Nothing is silently dropped — a stub goes into the source so the app still compiles and the gap sits where a developer will actually look.

// Employees screen · SidebarContainer1 · Visible
If(And('Employees screen'.Size = ScreenSize.Small, Or(newMode, editMode)), false, true)

→ TODO(manual): canvas responsive breakpoints (ScreenSize) have no code-app
  equivalent — needs a CSS media query. Est. 7.5–16.5 h across 42 items.

You don't have to take my word for any of it

The demo and the deliverable are both on this page. No form, no call first.

Run it
The converted app, in your browser. Five screens, real records, nothing staged for the camera.
Open the converted app →
Read it
The full assessment report from that conversion — every formula, what it became, and what the remainder costs.
Open the report →
Check it
Translation is deterministic: the same app in gives the same code out, every time. No model is improvising over your business logic, and nothing is hidden when it can't be translated.

Pricing

Published, fixed. You'll know what this costs before you speak to me.

Start here
£495
Conversion assessment · 10 working days
  • Every formula in your app, read and classified
  • An itemised list of what needs a developer, with effort bands
  • A fixed price for the migration itself
Book an assessment
Then, if you want it
£3,000–8,000
Full migration · fixed after the assessment
  • Your app as a React and TypeScript code app
  • Delivered into your own repository
  • 50% deposit, balance on go-live, 30-day fixes window
See what you get
Afterwards, optional
£195/mo
Aftercare · or £395 for five hours
  • Two hours a month of changes and fixes
  • Monthly in advance, cancel whenever
Ask about aftercare
£495, credited in full against your migration. If you decide not to go ahead, the report is still yours — hand it to any developer and they can quote from it.

The questions people actually ask

What happens when I email you?

You get a reply from me, not a sales sequence. I'll ask for an export of your app (.msapp) and confirm the £495 before anything runs. If your app turns out to be a poor fit, I'll say so and you won't be invoiced.

Who owns the code?

You do, outright, including the generated source. It lands in your repository under your source control. There's no runtime licence and nothing to keep paying me for.

What happens to our data?

The converter reads your app's formulas and structure — not the records inside it. The generated app runs on seeded sample data until it's wired to your real environment.

Is this AI writing our app?

No. The translation is rule-based and deterministic. Anything the rules can't handle is reported as needing a developer rather than being guessed at — that's the 89 above.

Why would we move off canvas at all?

Code apps went generally available in February 2026. If you're hitting performance ceilings, want real source control and code review, or your licensing changed under you, that's the move. If none of those bite, stay where you are — it's a legitimate answer.

How long does a migration take?

The assessment is ten working days. The migration depends on what the assessment finds, and you'll have a fixed price and a duration before you commit to it.

Why this exists, and who you're dealing with

Power Apps code apps went generally available in February 2026, and Microsoft ships no path from canvas to code. You either rewrite by hand — quoted in months — or you stay where you are. I built the converter doing this work for a client, and it now translates the mechanical majority by rule.

I'm Ali Rey. I've spent my career in Microsoft 365 and the Power Platform, I do this work myself, and there's no account manager between us. If you want to talk it through before spending anything, say so and we'll get twenty minutes in the diary.

hello@cairnautomation.co.uk