J JOMORΛ
Product guide · Version 1.0

One property.
Three screens.
Every request accountable.

Jomora Hospitality OS turns anything a guest asks for into a tracked job with a name, a room, a deadline and a record. This guide covers all three surfaces, what each one is for, and what a property can change for itself.

02 / GUEST

What the guest does

No app store, no account, no password. A guest scans the card in their room, types a name, and their stay opens. The whole journey is four taps deep.

  1. Scan

    The QR on the desk card, the tent card, or the in-room TV. It opens a web page — nothing installs.

  2. Give a name

    A nickname is fine. The property never checks it, and never asks for anything else.

  3. Ask for something

    Housekeeping, dining, the concierge, an excursion — or help getting back into the room.

  4. Watch it move

    The request appears in their own tracker with a countdown, and on the staff board at the same moment.

The guest entry screen: room code, a name field, and a line explaining what is stored
The entire sign-up. Two fields, and a plain statement of what is kept. Notice what is not asked for: no email, no phone, no passport, no card.
The guest home screen showing the property name and real check-in and check-out dates
The stay opens on the property’s own cover. The check-in and check-out dates are read from the reservation in the database — not typed in, not assumed.
The services and dining screen with request cards
Services and dining. Every card on this screen is a row the hotel controls — see Editing. Nothing here is hardcoded.
The stay guide showing the guest's live request tracker above their stay details
The stay guide opens on the guest’s own requests, each with its status and reference, above the details of their stay. These are live rows — the same ones the team is working from.

Locked out

Guest Critical · 10 min
Three help buttons: locked out, key not working, phone about to die

Three buttons, because there are three different problems and they need three different responses. Each one raises a Critical job on the front desk board with the room number on it and a ten-minute clock.

  • I’m locked out — someone comes to let you in.
  • My key is not working — it gets re-cut and brought up.
  • My phone is about to die — a physical key is cut instead.

What it does not do

It does not text the guest and it does not open the door by itself. The screen says exactly that, in those words. A guest standing in a corridor is told what will actually happen, and if the request fails to send they are told to use the room phone instead.

03 / STAFF

What the team sees

Six screens behind one sign-in. Everything on them is live — a change made anywhere in the property appears here without anyone refreshing. Shown here in Day Shift; the same screens have a Night Ops mode for the overnight team.

Signing in

Named accounts
The staff sign-in screen with work email and password

Staff sign in with a work email and password. Signing up on its own grants nothing — a manager’s invitation is what assigns a role, and the role is what decides which screens and which rows a person can reach.

The demo runs on one shared account. A live property gets named accounts, so the audit trail records who did what rather than “the front desk”.

GM Dashboard

Managers & staff
The GM dashboard showing occupancy, open tasks, offer revenue and property status
Occupancy by room type, tasks past their SLA, accepted offer revenue, housekeeping state and equipment needing attention — on one screen.

Executive overview

Rooms occupied, open tasks, revenue, and what is breaching.

Occupancy & inventory

Per room type, with ADR and RevPAR. Empty numbers stay empty rather than being estimated.

Assets & procurement

Equipment health, contractors, and purchase orders awaiting a manager.

Staff Copilot & Tasks

The working screen
The task board with department and priority filters and a selected task detail panel
Every request, from every channel, in one queue. Filter by department or priority, open a job to see the recommended action and the grounded policy behind it.
  • One queue. Guest app, front desk and staff-raised jobs all land here.
  • A live SLA on every job. The clock comes from the property’s own rules, set server-side.
  • A recommended action. What to actually do — bring a master key, dispatch the floor butler.
  • Raise your own. “New Operational Task” writes a real job, not a note.

Live Event Stream

Audit trail
The live event stream showing a timestamped record of everything that happened
A permanent, append-only record. Nobody — including a manager — can edit or delete a line of it. This is the screen that settles a dispute.
04 / EDITING

Everything the guest sees is yours

No developer, no ticket, no deployment. Every card, dish, venue, excursion and amenity in the guest app is a row the property owns and edits from the console.

The Guest App Content editor showing editable items with edit, hide and delete controls
Guest App Content. Add, edit, reorder, hide or delete — and anything still carrying our sample wording is flagged “Sample content – replace” so it cannot quietly go live as yours.
Content typeWhere the guest sees itWhat you control
In-room requestsThe cards on the services screenTitle, description, department, SLA, icon
AssistanceThe help and accessibility listTitle, detail, routing department
Dining venuesRestaurants and barsName, cuisine, hours, image, badge
Menu itemsIn-room diningDish, description, price, currency
ExcursionsThings to doTitle, detail, price per person, image
Included amenitiesThe stay guideWhat the rate includes
Housekeeping itemsThe housekeeping request sheetItem, quantity wording, SLA

Groups, not just items

Create your own headings — “Poolside”, “Late night”, “For families” — and drop items under them. Reordering is up and down arrows, and it saves the moment you click.

Hide beats delete

Hiding takes something off the guest’s phone immediately while keeping the row. Seasonal menus and closed venues come back with one click instead of being retyped.

05 / ACCESS

Rooms, codes and the screen in the lobby

Every room has one QR. It is how a guest gets in, and it is the only thing standing between a stranger and a stay — so it behaves carefully.

The rooms and access screen listing every room, its guest, device count and QR state
Every room, who is in it, how many phones are signed in, and whether the QR has ever been scanned.

How a code behaves

  • A QR is shown once. The server stores only a hash, so it can never be displayed again. Reprinting means issuing a new one.
  • Six phones per room. A seventh signs in and the oldest is quietly dropped, so a family shares without anyone being locked out.
  • Sign out phones logs the devices out and leaves the QR working. For a lost phone, or someone still in the app after checkout.
  • New QR code kills the old one. The card in the room and the TV link both stop working, and someone has to print and place the replacement.
  • Access ends with the stay. A grant expires after checkout, and an expired grant returns nothing at all.
The lobby display: property name, a large QR code and the typed code beneath it
The display surface. It shows a QR and nothing else — it cannot fall through to the console or a guest’s stay, even if that browser has a session open.

Before you print anything

Printed cards encode whatever address the console was configured with. Issue them from the live address, never from a laptop — the screen warns you if you try, because a mistake here is discovered after two hundred cards are laminated.

06 / PRIVACY

What is collected, and what is not

The product is designed so that a breach would be boring. There is almost nothing in it worth stealing.

Collected

All of it
  • A name the guest chose. Usually a first name. Never verified.
  • Their room number, for the length of the stay.
  • What they asked for — the requests themselves.

Never collected

By design
  • No email address, no phone number.
  • No passport, IC or identity document — the database has no column for one.
  • No card or payment details.
  • No date of birth, no health or dietary record.

How the property is kept separate

Architecture
  • Every row is fenced at the database. Not in the app — in Postgres, where it cannot be bypassed by a bug in the interface.
  • A guest can only ever see their own stay, and only while it is live.
  • The audit log cannot be rewritten. There is no update or delete permission on it for anyone.
  • Guest data is purged on a schedule after checkout, by a job no logged-in user can trigger.
  • White-label throughout. The property’s name, logo, colours and currency are data. Ours can be switched off entirely.
07 / STATUS

What is real today

This demo runs on a live database, not a mock-up. That distinction matters, so here is the honest split.

CapabilityStateNotes
Guest claims a stayLiveReal rows, real expiry, real device limits.
Guest raises a requestLiveAppears on the staff board in seconds, with a server-set SLA.
Staff raises a taskLiveWrites to the database and syncs to every open screen.
Content editingLiveAdd, edit, reorder, hide, delete — it reaches the guest’s phone.
Room QR issue & rotateLiveHashed server-side, shown once.
Audit trailLiveAppend-only, no edit path for anyone.
Express checkoutDemo contentIllustrative figures. No payment gateway is connected.
AI concierge chatDemo contentScripted replies. Not connected to a language model yet.
Digital tippingDemo contentThe flow is real; there is no disbursement rail behind it.
Door lock integrationNot connectedThe app raises the job; a person opens the door.
PMS integrationNot connectedReservations are loaded directly for now.

Before this goes in front of guests

Three things need a decision from the property: the hotel name and branding on every screen, the shared staff sign-in replaced with named accounts, and the demo content above either connected or switched off.

None of them is a build. All of them are choices.

08 / IF SOMETHING LOOKS WRONG

The four things worth checking first

The guest link shows the staff console

You are signed in as staff in that browser. Use a phone, or a private window.

The guest app looks empty

The stay has most likely expired — access ends after checkout, and an expired grant correctly returns nothing. Check the room in Rooms & Access.

A change did not reach the guest

Confirm the item is active, not hidden. If the editor shows a banner saying content could not be loaded, the change is not saved — do not trust the screen.

A printed QR does not work

It was either issued from a laptop address, or the room has since been given a new code — which kills the old one everywhere. Issue and print again.