Stayed
My own product · iPhone app and website
I built Stayed on my own, from first idea to the App Store and on to version 1.16. It reads hotel booking emails and keeps one clear record of every stay, your loyalty status and your points.
- from first commit to the App Store
- Six weeks
- shipped by October 2026
- Version 1.16
- product, design, code and release
- One person






The problem
Hotel bookings are scattered. The details sit in confirmation emails, loyalty status sits in a different app for every hotel group, and nobody tells you when points are about to expire.
I wanted one place that answers simple questions. Where am I staying next? How close am I to the next status? When do my points run out?
How a booking becomes a record
Reading booking emails is the heart of the product, so it had to be right. Stayed tries the simplest and most private method first, and only uses AI when it has to.
Read the booking’s own data
Many confirmation emails carry hidden structured data. If it is there, Stayed uses it. No AI needed.
Read calendar files and PDFs
Attachments often hold the hotel and dates in a clear format.
Ask the AI on the phone
Apple’s on-device model reads what is left. Nothing leaves the phone.
Ask Claude, only if needed
As a last resort, the text goes to Claude through my own server, and only after the person agrees.
The person confirms
Nothing is saved until someone checks it. If Stayed cannot read an email, it says so and offers to add the stay by hand.


Decisions that shaped it




Set the quality bar before the screens
Before designing anything, I set a target: most booking emails should read correctly with at most one detail to fix. I built a test tool for that first, because a good-looking app that reads bookings wrong is useless.
Show the maths
A points estimate shows every step: room price, exchange rate, earn rate and status bonus. People can check the number instead of having to trust it.
Never present a guess as a fact
Every hotel group has its own loyalty rules. Stayed only shows a deadline when it matches the programme’s official rules, and I checked the whole catalogue against official sources in October. When the app does not know something, it says so.
Private by default
No account and no login. The AI key stays on my server, not inside the app, and Stayed asks before any booking text goes to the cloud.
What I cut and what went wrong
Knowing what not to ship mattered as much as what I built.
- An AI chat assistant
- I built Stacy, a chat assistant for your stays. In live testing it was not reliable enough, so I took it out of the release instead of shipping something people could not trust.
- A social layer
- I planned and costed a way to share stays with friends, then parked it. A social feature needs a crowd, and Stayed does not have one yet.
- My first design
- The first visual direction lasted three days. It did not feel right, and changing early was cheap.
- Promises the app could not keep
- When the website described more than the app could do, I closed the gap: either the site changed or the app caught up.
- A rejected first release
- Apple rejected version 1.0 because my notes for the reviewer had ended up in the public description. I fixed it and was live within a week.
How it shipped
July 2026
First commit. The booking reader and its test tool came before any screens.
August 2026v1.0
Version 1.0 is rejected once, then goes live. Version 1.2 makes the free plan more generous after feedback from a Reddit user.
September 2026v1.6
Version 1.6 stops stay dates from shifting when you fly across time zones.
October 2026v1.16
Layouts for the foldable iPhone. The AI assistant is held back. Version 1.16 puts your hotel brands on the Passport globe.
How I build with AI
Claude wrote much of the code. My job was to decide what to build, write clear briefs, set the tests and review what came back. Across more than 1,000 commits that split held: the AI made me fast, and the checks kept the work honest.
- Every release has to pass the full test suite, including tests that tap through the app like a person would.
- A second AI reviews big changes as a critic. I treat its notes as suggestions, because it is sometimes confidently wrong.
- The hard rules live in the project’s written instructions, so quality does not depend on my memory.
What I learned
Building is now the fast part. One person with AI can ship a polished app in a few months. The hard part is everything around it: deciding what deserves to exist, holding a quality bar, and getting it in front of people.
Stayed has a small group of users today. The lesson I am taking forward is that reach deserves as much care as the build.