Power Apps · canvas → code

Keep the app.
Gain a codebase.

Move the right Power Apps canvas app to React and TypeScript—with a clear account of what carries across, what needs a developer, and how we prove it works.

What actually happens

Translation saves mechanical work. A supported migration also needs explicit gaps, working data bindings and tests of your important user journeys.

01 · Your app today

Power Fx and app structure. We inspect the source and the behaviour your team relies on.

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

// Control behaviour and data bindings
// are assessed alongside the formulas.
02 · The converter

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

Inspect

formula inventory, controls and dependencies

Translate

supported logic by rule; gaps made explicit

Verify

builds, data operations and agreed user journeys

03 · What you get

A codebase you own. Supported logic plus an explicit scope for developer work.

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

// Illustrative output, not a complete app.
// Saves, errors and navigation must pass
// acceptance tests before handover.

A translation percentage is not a working app

The free checker classifies formulas; it does not run your app or certify a migration. Screen lifecycle, form bindings, permissions, integrations and failure cases still need review. Unsupported items belong in the assessment and the agreed work—not behind a reassuring percentage.

// Employees screen · Email_DataCard1 · DisplayName
DataSourceInfo([@Employees], DataSourceInfo.DisplayName, 'cr6bf_email')

→ Manual review: column metadata needs an explicit implementation.
  The assessment records the approach and effort; the checker is not a quote.

Inspect the work before you enquire

Open examples, with their limitations stated. No form or call required.

Run it
An expenses-app interface using sample data. It is a browser preview, not a live Dataverse deployment or a completed acceptance test.
Open the sample preview →
Read it
An earlier example of the itemised report. Its historical counts are clearly labelled; your assessment establishes your app’s scope.
Open the report →
Check it
Supported translation is rule-based. The same source, tool version and options give repeatable output. Manual gaps still require engineering and verification.

Is your app a sensible candidate?

Start with a free formula check in your browser. No upload, no account and no sales sequence.

Export your app as a .msapp and open it in the checker. It identifies formula patterns and reasons manual work may be needed. It does not execute the source app, generate a finished migration or validate your integrations. The paid assessment adds engineering review, supported scope and an acceptance plan.

What I need, and what I don't. The browser check needs an app export, not access to your tenant. Exports can contain connection metadata, embedded values or media, so treat them as sensitive. Only inspect files you are authorised to use; do not send credentials or live business records.

What happens to the file: nothing. The checker runs entirely inside your own browser — your app is never uploaded, so I never receive it and there is nothing for me to keep. The page itself loads from Cloudflare; the file check makes no upload request. If you want a reviewed assessment, email first so we can agree scope and an appropriate way to transfer a sanitised export. Retention is described in the privacy notice. I won't use your app as a public example without asking you first, and I won't put you on a mailing list for sending me one. It's all written down in the privacy notice.

Staying on canvas may be the right answer. We check your target devices, host, integrations and licensing before agreeing a migration. If keeping the app or rewriting a small part makes more sense, that is what I will recommend.

Check your app now → Ask about suitability

If the email button does nothing, your browser has no mail app set up — the address is hello@cairnautomation.co.uk and works from anywhere.

Apps exported from older versions of Power Apps may not be readable in the browser. If the checker reports an unsupported format, email me the format/error message first and we can agree the next step.

Pricing

Start with the assessment. Migration scope and acceptance criteria are agreed before you commit.

Start here
£495
Conversion assessment · 10 working days
  • Formula inventory, app structure and supported-scope review
  • An itemised list of what needs a developer, with effort bands
  • A suitability recommendation, acceptance plan and fixed migration quote
Book an assessment
For an agreed, supported scope
£2,950
Typical single app · scope confirmed by assessment
  • Your app as a React and TypeScript code app
  • Delivered into your own repository, yours outright
  • 50% deposit, balance on go-live, 30-day fixes window
  • Includes the £495 assessment
Start with an assessment
More than one app
from £8,000
Programme · priced after assessment
  • Several apps converted together, sequenced
  • Shared components done once, not per app
  • Handover so your developers can carry it on
Talk it through
£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.

£2,950 is the typical-app price — usually up to around ten screens. Screen count alone does not establish scope: integrations, controls and behaviour matter too. Exceptions are quoted before either of us commits. Power Apps licensing is separate.

Afterwards, if you want it

£195/month for two hours of changes and fixes, or £395 for five. Monthly in advance, cancel whenever. Ask about aftercare →

A licence for consultancies — not yet

The converter is currently an internal engineering tool for the service, not a self-serve product. A consultancy licence is a possible future offer, not something you can buy today.

It ships when two things are true: the converter has been run across a large corpus of apps I did not write, with the results published — and enough consultancies have asked to make supporting it worth doing properly. Join the waitlist →

All prices are final — no VAT is charged, as Cairn Automation is not VAT registered.

Questions worth asking first

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 browser check does not upload your export. Exports themselves can contain sensitive values or metadata. For a reviewed assessment, agree secure transfer and scope first. The public preview uses sample data, not a connection to your environment.

Is this AI writing our app?

No. The translation is rule-based and deterministic. Anything the rules can't handle is reported for developer review rather than presented as verified behaviour. A real migration also needs tests of controls, data operations and user journeys.

Why would we move off canvas at all?

When your team needs a React/TypeScript development workflow or UI behaviour better served by code. Canvas already has source control and Test Studio; migration is not automatically better. Code-app end users need Power Apps Premium licences.

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.

Will it still work in the Power Apps mobile app?

Do not assume your current host and device workflow carries over. We check the target experience against Microsoft’s current support and limitations and include it in acceptance testing. A responsive browser preview is not proof of mobile-player, offline or device-management compatibility.

Can we just buy the converter?

Not today. This is an assessment-led migration service. If a consultancy licence becomes viable, its supported scope and evidence will be published before it is sold. You can register interest without a purchase or commitment.

Why this exists, and who you're dealing with

I built Canvas Rescue to reduce repetitive work when a canvas app is a good candidate for code. The aim is useful engineering, not a headline percentage: retain supported logic, identify the manual work, and verify the result against what the business needs.

I'm Ali Reynolds. 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