# HotelFlow: hotels don’t need another dashboard — they need the next action

> Source: <https://dev.to/ravi_saxena_6fd4d0ef1c9cb/hotelflow-hotels-dont-need-another-dashboard-they-need-the-next-action-38jj>
> Published: 2026-09-20 02:04:52+00:00

*This is a submission for the [MLH x DEV Writing Challenge](https://dev.to/mlh-hackathon)*

**Author:** [Ravi Saxena](https://dev.to/ravi_saxena_6fd4d0ef1c9cb) ([@ravi_saxena_6fd4d0ef1c9cb](https://dev.to/ravi_saxena_6fd4d0ef1c9cb)) — solo. No teammates.

**HotelFlow** is a hotel operations engine, not a guest chatbot.

After a guest books, the hard part is everything before checkout: late arrivals, dirty rooms, a broken AC, extra towels, a VIP moved up, and two staff off the floor. That story usually lives in WhatsApp and phone calls. A manager keeps asking: **what should we do right now?**

HotelFlow reads one Excel workbook (rooms, staff, reservations, rules, chaos events) and builds a live queue for the next **5, 15, and 30 minutes**. It scores each job (urgency + guest impact + arrival time + VIP / out-of-order), assigns people by skill and floor, and escalates if nobody is free.

The interesting piece is **Event → impact → priority → assignment → resolve**. Click **Simulate hotel chaos** and the plan rewrites itself. I did not build another PMS. I built the layer that decides **what is next**.

What I learned: storing “room 101 = occupied” is easy. Conflicting priorities with four people and twelve jobs is the actual product.

Live (no login): [https://hotelflow-gamma.vercel.app/](https://hotelflow-gamma.vercel.app/)

Code: [https://github.com/Ravi-Saxena-kronos/hotelflow](https://github.com/Ravi-Saxena-kronos/hotelflow)

`Room 302 bathroom is leaking and guest arrives at noon` → I did not use a paid MLH perk token in this build.

Stack: **Next.js 14**, TypeScript, Tailwind, **Vercel**, and **xlsx** to import the hotel workbook. The decision engine is in `src/lib/engine.ts` — not an LLM chatbot.

Vercel is serverless, so chaos / resolve / typed incidents send the current hotel state with the request. The default hotel is the Excel file in the repo (`data/HotelFlow-input-template.xlsx`).

Solo build. I am the only author.

I built HotelFlow as an operations control room for a problem I see in hotels: the desk is not short on screens; it is short on one next action when everything breaks at once.

The part I will remember is the chaos button. A calm map is not a demo. Injecting the Excel chaos playbook (checkouts, AC, leak, VIP moved to 11:00, two staff unavailable) and watching NOW / 15 / 30 reorder is the story.
