Case study
Heading AI™
We developed version 1 of a complex training and compliance platform for flight training organisations, designed to test product/market fit before further development.
- Project
- Heading AI™
- Sector
- Aviation training compliance, UK CAA and EASA
- Services
- Custom SoftwareAI IntegrationWebsite Development
- Stack
- Next.jsTypeScriptSupabaseTailwind CSSClaudeVercelMulti-tenantRow-level security
- Year
- 2026

The brief
Flight schools that train commercial pilots are approved and audited by the UK CAA, by EASA, or by both. Each one has to show, at any moment, that every instructor's licence, rating and medical is in date, that every aircraft is airworthy and insured, and that every simulator is approved for the training it is being used for.
Most schools keep this in folders of scanned certificates and a spreadsheet of expiry dates, and they check a sample before each audit. The idea behind Heading AI was to check all of it, all the time: upload the documents, let AI read them, and have the platform keep track of what expires and when.
That is a large product to build on a hunch. The brief was a first phase that would work with real documents and real regulators' rules, good enough to put in front of training organisations for feedback and in front of investors or a development partner, without building the whole thing first.

The build
One platform, many organisations. Each training organisation sees only its own people, aircraft and documents. That separation is enforced by the database itself rather than only by the app, with a security rule on every table. We tested it by trying to cross from one organisation into another twenty different ways. All twenty were blocked.
Both regulators, at every level. A school can be approved by the UK CAA, by EASA or by both, and so can each course, licence and simulator. One simulator can hold four separate approvals at once. The data model was built around that from the start, rather than having it added later.

AI that shows its working. When a document is uploaded, a fast AI model first works out what it is: a medical certificate, a pilot licence, an instructor rating, an airworthiness certificate. A more capable model then reads the details, and gives a confidence score for each field it extracts. If the overall confidence is low, the document is read again by the most capable model, and the better result is kept. Nothing is written into anyone's record until a person has checked the extraction against the original and confirmed it.
Not tied to one AI supplier. Which model handles each task is set in one place, so a model can be upgraded or swapped with a one-line change. The connection to the AI provider is kept separate from the rest of the pipeline as well, so another provider, such as OpenAI, could take on some tasks while Claude handles others.
Measured, not assumed. A set of test documents with known correct answers runs through exactly the same steps as the live platform, and each field is scored. Any change to a prompt, a model or a provider can then be checked against those documents before it goes anywhere near a customer.

Every expiry in one place. Once a document is confirmed, the platform works out the status of every person, aircraft and simulator: green when everything is comfortably in date, amber at 60 days, red at 30, and red for anything missing. It raises an alert at 90, 60, 30 and 0 days, and never raises the same alert twice.

29
tables in the data model, with 110 links between them
The result
The first phase does what it set out to do. A training organisation can upload its documents, have them read and checked, and see every expiry across its people, aircraft and simulators on one screen. It is complete enough to put in front of the people it is for and ask whether they would pay for it, which was the point.
It was also built to grow. The next features were designed before the first ones were finished: answering questions about the regulations with citations to the source, and spotting patterns in how instructors grade their trainees. The data model already has room for both.

“The most useful thing a first version can do is give you an honest answer about whether to build the second.”
Have an idea worth testing?
A first version can tell you whether to build the rest. If you have a product you would like to test this way, tell us what you are planning.