Roomside

The platform brings a guest’s whole stay into one connected experience. Booking details, hotel amenities, room service, nearby events, attractions and control of the room sit side by side. The room TV works with the guest’s phone as one continuous flow.

Project snapshot

Timeframe

Mar 2025

↓

Jun 2026

Goal

Grow the proof of concept into a product: address the requested changes, fix and extend its features, and support the team towards the first release.

Deliverables

↗ Information architecture

↗ Roles and permissions

↗ The guest app (PWA)

↗ The in-room TV app

↗ The hotel CMS

↗ Components and screens in Storybook

Toolchain

  • Notion
  • Adobe Illustrator
  • Figma
  • Storybook
  • Gemini
  • Claude Code

My role

  • Product designer for all three platforms, from the proof of concept towards the first release, working closely with the team and designing straight into the product’s code.

Where I started

Roomside was at the pilot stage and had two layers. The CMS was the B2B layer, where a hotel manages its content. The TV app and the progressive web app were the B2C layer, used by the hotel’s guests.

I started with an audit of both layers, a list of quick wins, and a read through the feedback that the pilot customers had already given.

The guest app came first, because it was the weakest part of the platform. I worked out the best paths through it from the user scenarios, then designed the interface. The CMS followed. It had to keep up with the features the guest app gained and take in what the pilot customers asked for. The TV app came last, because the platform set it the tightest limits.

Three devices in a hotel. The hotel team’s CMS on a laptop feeds the guest app on a phone and the app on the room TV, and the phone and the TV hand off to each other.

Information architecture first

Structure came before any visual work. I mapped the information architecture and checked it with the team in quick corridor tests, the same screens shown with different ways of moving between them.

I built two navigation models and tested them on user scenarios, each with its own prototype link. The tests showed that the remote belongs in the main menu as a fourth item and that the navigation has to work for a hotel that has set up only part of its services. That shaped the navigation the product uses today.

For the CMS I prepared and led workshops with the whole team. We worked through the roles, the critical scenarios for a reseller and the first priorities for the MVP. The result was ten roles on five levels, where each level creates the one below.

Two navigation models tested on user scenarios: a scrolling row with every category, and three main tabs with categories in sub-tabs, with the task paths for each.
User flow of the guest app in three scenarios: controlling the room, continuing on the phone from the TV, and what happens when the TV does not answer.

From structure to a working product

With the structure in place I turned the scenarios into screens for the guest app, the TV app and the CMS, and handed each one over as working components and screens in Storybook.

One rule ran through all of it. A hotel is rarely fully set up, so every screen has a state for what is missing: no content yet, only part of the services, no smart controls in the room, a TV that does not answer. The guest never sees a broken screen, and a hotel can start with what it has.

In the CMS I worked through the roles with the backend developer, so each person sees and changes only what their role allows.

An overview of the guest app screens in Figma: My stay, My room, onboarding, the hotel and content pages, each with its states.
An overview of the hotel CMS screens in Figma: sign-in, lists, the hotel dashboard with its tabs and the add-hotel flow.

The guest app

The app is organised around a radial dial with the five places a guest goes: My stay, My room, Remote, Hotel and Discover. Every screen below the first level keeps the same header and the same large title, so a guest always knows where they are.

It covers the whole stay. A guest scans the code on the TV card, sees the booking, sets the room to night, picks a channel, orders dinner and watches the order arrive.

Ten iPhone screens of the guest app: My stay, My room by day and by night, the TV remote, the room service menu and a dish, hotel A to Z, Discover and onboarding.
The guest journey: check-in at the front desk, the walk to the room, the code on the TV, then the app with authentication, My stay and its features.

From photos to a model, from the model to images

My room needed pictures of one room from angles nobody had photographed. An image generator on its own invents a new room every time, and a picture that disagrees with the room map breaks the product.

So I built a prototype that maps a space from photographs. It started from one photo of a hotel suite found on Unsplash. Deep research found more photographs of the same suite. With a few known dimensions, I fitted every photograph to one model of the room, a method called image-based modeling.

Every image comes from that model. The isometric map of the room, by day and by night, is the control surface in My room. For a new shot I place a camera in the model, render a colour key with a labelled plan, and give it to the generator with a prompt and references. That is why the guest scanning the code on the TV and the guest ordering room service from the jacuzzi are in the same room. The code on the TV is a real one, pasted in with perspective, and it opens my portfolio.

How the room images were made: one stock photo, more photos of the same suite, a mapped plan and model, and from that model the room map and two generated shots.

Components in Storybook

Storybook was the single source of truth for the developers and the place of the whole component handover. I implemented the components from Figma with Claude Code, following one set of front-end instructions: a brief with rules, a project log, a decision log, motion guidelines and an asset library. Meeting transcripts and decisions went straight into the project repository, so design and code stayed in step.

The TV app

The TV app runs on a Full HD screen on a limited platform, so some features needed compromises. It uses dark mode by default, which tested best in a dim room and keeps reflections on the screen low.

A guest on the edge of the bed holds a phone with the remote open, pointed at the room TV showing the Roomside home screen.
Four room TV screens: the room service menu, the hotel home, a spa pool gallery and the weather.

The hotel CMS

The CMS is the hotel’s management tool, with many roles and levels of access. Separating those roles was the biggest challenge. Most of them came from what we learned with the clients during the closed pilot.

A laptop on a desk in the hotel library shows the CMS content list for the hotel, with a staff badge and a coffee beside it.

Working with AI

The product was tested inside the team and with a few hotels in a closed pilot, and the work continues on the structure described above. AI agents worked from a written project schema with the architecture, the decisions, the vocabulary and the rules for each task. They sped up implementation and feature work a lot, while every decision and every review of their output stayed with a person.

Reach out to me directly if you want to discuss a similar project

Need a PoC in days?

Let's talk about validating your idea fast.
Michael Kulesza — Design Partner, book a call to talk.

Product Designer

Michael Kulesza

Let's talk!

Pick a slot!

Nov 2025

·

Proof of concept

10

CareFlow

Proof of concept for remote pregnancy monitoring

7-day build

⬥

ai-assisted

⬥

Investor ready

2023-24

·

product design

09

21st.ai

Feature development for corporate governance SaaS

7+ features

⬥

9 months

⬥

ds refactor