-
-
Airline Said No: an explainable second opinion for airline compensation refusals.
-
Upload a rejection letter or paste its text to begin the analysis.
-
Facts are established before the case is interpreted and a recommendation is made.
-
Generate a calm, grounded, and fully editable reply based on the completed analysis.
Airline Said No
Every year, thousands of travellers receive airline compensation refusals that are difficult to interpret. The response often contains legal terminology or generic statements such as "extraordinary circumstances" without explaining what actually happened or whether there is enough information to justify the decision.
I wanted to build something that helps people understand these letters before deciding what to do next.
Rather than acting as a legal advisor or trying to predict whether someone will win a claim, Airline Said No provides an explainable second opinion. It reconstructs the facts, explains the airline's reasoning in plain language, highlights missing or contradictory evidence, and suggests one realistic next step.
One design principle guided the entire project:
Facts → Interpretation → Recommendation
The application never jumps directly to conclusions. It first establishes what can actually be confirmed from the evidence, then explains what those facts appear to mean, and only afterwards recommends a course of action.
If the traveller wishes to continue, GPT-5.6 generates a calm, grounded reply based on the validated analysis rather than re-analysing the original document. The draft is fully editable and nothing is ever sent automatically, ensuring the user remains in control.
How I built it
The application was built with Next.js 16, React 19, TypeScript, and Tailwind CSS.
GPT-5.6 powers two distinct stages of the experience:
- structured document analysis;
- grounded draft generation.
Users can either paste the text of a rejection or upload a PDF, PNG, JPG, or JPEG document. Uploaded files remain request-scoped and are processed only for the current request.
Throughout development I worked closely with Codex, which helped me move from an initial product concept to a production-ready application. Codex accelerated implementation, testing, accessibility improvements, refactoring, production hardening, and documentation, while I remained responsible for the product vision, interaction design, UX decisions, and iterative refinement.
Challenges
One of the biggest challenges was resisting the temptation to make the application overly confident.
Early on I realised that simply generating persuasive replies was not enough. The application needed to distinguish between confirmed facts, passenger claims, airline assertions, and genuinely missing information.
Another challenge was keeping the interface approachable despite analysing documents that may contain legal terminology. Captain WorthATry was introduced to make the experience feel friendly without distracting from the seriousness of the analysis.
What I learned
This project reinforced something I find particularly exciting about modern AI systems.
Large language models are most useful when they help people reason more clearly rather than replacing their judgement.
Building Airline Said No also showed me how powerful the collaboration between a human product designer, Codex, and GPT-5.6 can be. By combining structured reasoning with careful UX design, it became possible to build an application that is both technically capable and reassuring to use.
Built With
- codex
- eslint
- gpt-5.6
- next.js
- node.js
- ocr
- openai
- prettier
- react
- tailwind
- typescript
- vercel
- vitest
- zod

Log in or sign up for Devpost to join the conversation.