Inspiration

The first spark came from an Instagram reel. It was one of those posts that names a feeling and tells you what to do about it, and it stuck with us because of how satisfying it felt to be given a small, clear action instead of vague advice. We wondered what it would look like if that were a real thing you could open, one that actually knew something about your day rather than showing the same suggestion to everyone who scrolled past it.

That was the starting point. Most wellbeing apps ask how you feel and then give everyone the same answer. Take a walk. Try deep breathing. None of it is wrong, but it lands badly when you are stuck indoors at 11 pm with fifteen minutes and almost no energy left. We wanted something that asks a few quick questions first, then offers one small thing you could actually do right now, in the place you are.

The hotel arrived by accident. One of us was walking past an elevator while turning the problem over, and the idea just landed. You step in, you go up, the doors open somewhere new. It was too good not to use. Once we started pulling on it, the rest followed easily. A concierge to ask how your day has been. Floors that match how you are feeling. And best of all, the elevator gave us somewhere to put the two seconds we spent waiting on the AI. Instead of a loading spinner and an apology, you get a ride.

What it does

You check in and say how you are arriving: anxious, sad, angry, or happy. The concierge asks three short questions about your energy, how much time you have, and where you are in the world, whether that is a city, the countryside, the coast, or the mountains. Then the elevator carries you upward while your recommendations are generated, and the doors open onto a floor with three specific things you could try.

The question about the environment is what makes it work. Anxious and coastal, with half an hour gives you something involving the water. Anxious and urban, with the same half hour gives you something built around a city block. Same mood, meaningfully different answer.

Every stay is remembered. Tap the suggestion you chose, and the hotel keeps it in your guest book, where you can note how you felt afterwards and whether it helped. Past Stays sits quietly off the check-in screen, so it is there when you want it and out of the way when you do not.

How we built it

React and TypeScript on Vite, with motion for animation, Gemini Flash for generation, and Supabase for storing past stays. Deployed on Vercel.

We stubbed the AI call from the first hour with a fake delay, so the entire flow ran end-to-end before we made a single real API request. It meant that every one of us could see the whole app working while our own piece of it was still half-finished.

For the model, we used structured output with a response schema instead of parsing prose. That gave us three clean recommendations every time rather than hoping the formatting held.

Past Stays runs on Supabase with anonymous auth, so a guest gets a stable identity without ever seeing a sign-up screen. Every write is fire and forget. If Supabase is unreachable, the note fails quietly in the console and the guest is never interrupted mid-flow. The journal can break without the hotel breaking.

Challenges we ran into

Scoping location. Our first instinct was real geolocation, with permissions, reverse geocoding, and a places API. We cut it down to a five-option environment picker and got most of the value for a fraction of the work. That decision probably saved the project.

Latency. Two to four seconds feels long when you are anxious. The elevator solves that, but it had to adapt rather than run on a fixed timer. It keeps climbing until the response arrives, so a slow API reads as a longer ride rather than a broken screen.

Working together because of different time zones and commitments. It was difficult to communicate and decide on ideas as we all had our own commitments on the side.

Accomplishments that we're proud of

The elevator, without question. It took our most annoying technical constraint and turned it into the part people remember.

We are also proud that the app does not break. If the API is slow, or rate-limited, or the venue's Wi-Fi gives out in the middle of a demo, a local fallback returns three sensible recommendations, and nobody watching would know the difference. We built that early rather than hoping we would not need it.

And we are glad we resisted the urge to turn the guest book into a habit tracker. There are no streaks, no counters, and nothing that tells you that you have fallen behind. It is a place to leave a note if you want to, and the app never asks twice. That felt like the right call for something people might open on a bad day.

What we learned

Constraints do far more for a recommendation than cleverness does. Adding a single question about where someone physically is improved our output more than any amount of prompt engineering.

We also learned to build the fallback before the feature. Knowing the demo could not fail changed how confidently we spent our last few hours.

What's next for HackaNess Hotel

A concierge with a memory. We store past stays but do not yet use them. The natural next step is for the hotel to notice what helped you before and let that shape its suggestions next time.

A returning guest experience. At the moment, every visit is a first visit.

Better rooms. Some suggestions are still a little generic, and we want every floor to feel genuinely different rather than just differently coloured.

Feedback It would be great to get external feedback on what people like and dislike about the app, how they use it and what they would improve.

Built With

+ 5 more
Share this project:

Updates

Submission history