# Domus

> An all-in-one platform for boutique hospitality: it links the front desk computer, the automation in each suite, the smart TV homepage and an app guests use for doors, lights, climate and every service of their stay. I built it across the stack in a team of developers and was the single point of contact for the B2B clients.

- Author: [Jacopo Marcolini](https://www.jacopomarcolini.com), Deployment Strategist & Product Design Lead
- Role: Fullstack Developer & Client Lead
- Year: 2022
- Area: Business & Growth
- Tags: Mobile App, Smart TV, Hospitality, B2B
- Web page: https://www.jacopomarcolini.com/case-studies/domus

![The word domus in terracotta serif type next to a TV with a welcome homepage, an open laptop with the list of stays and a phone showing a suite, lying on a cream surface with nested arches](https://www.jacopomarcolini.com/images/case-studies/domus/hero-v3.jpg)

## The whole stay in one place

Serviced apartments promise the freedom of a home with the care of a hotel: a concierge who arranges a private chef or a driver, suites with home automation, a TV that feels part of the stay. Behind that promise, the work is usually spread across a booking spreadsheet, a phone, separate apps for the lights and the doors, and a TV that only shows channels.

Domus puts it in one platform. Guests use an app to open the doors, set the lights and the climate and book services. The TV in each suite opens on a homepage with the concierge contacts, the services and the channels in the guest's language. The front desk manages stays, guests, suites, services and TVs from one panel.

## Four touchpoints, one stay

Every stay touches the front desk, the building, the suite and the guest's phone, and each of them had to know what the others know. The platform had to:

- **Start from the booking**: when the front desk invites a guest, the app, the door codes and the TV language follow that stay, and stop when it ends.
- **Control the suite safely**: doors, lights and climate respond only to the guest of that suite, connected to that suite's wifi.
- **Sell services everywhere**: a catalogue managed once at the desk appears in the app and on the TV, with prices, bookings and payments.
- **Speak the guest's language** across five languages, from service descriptions to the order of the TV channels.
- **Work for several properties**, each with its own suites, services, contacts and automation gateway.

## In the guest's pocket

The app is the guest's key and remote. Before arriving, it shows the suites with their amenities and policies. Once the stay starts, it opens on the suite with the dates, the wifi password and the concierge contacts. The automation tab opens the building's main door and the suite door, switches each light circuit and sets the temperature room by room within the limits the property chose. The services tab works like a small shop: the guest picks a private chef, laundry or a driver, chooses a date and books, then pays from the orders tab. The concierge is one tap away by phone or WhatsApp.

![Phone home screen welcoming the guest to Suite Ninfea with an interior illustration, stay dates, the wifi password and call and WhatsApp buttons](https://www.jacopomarcolini.com/images/case-studies/domus/phone-suite-v2.webp)

*My stay*

![Phone automation screen with round buttons for lights, climate and door, a suite wifi notice, a large open door button and the door codes](https://www.jacopomarcolini.com/images/case-studies/domus/phone-door-v2.webp)

*Doors*

![Phone climate screen with the living room set to 21.5 degrees between plus and minus buttons, and the bedroom and bathroom below](https://www.jacopomarcolini.com/images/case-studies/domus/phone-climate-v2.webp)

*Climate*

![Phone list of services with an image, name and starting price for private chef, laundry, personal beauty, driver, trainer and shopper](https://www.jacopomarcolini.com/images/case-studies/domus/phone-services-v2.webp)

*Services*

![Phone list of orders with a private chef booking waiting for payment and a pay button, and paid and canceled orders below](https://www.jacopomarcolini.com/images/case-studies/domus/phone-orders-v2.webp)

*Orders*

## A TV that knows the suite

Each suite has a hospitality smart TV running our own homepage app. The TV recognises itself by its serial number, so the front desk links it to a suite once and it then loads that suite's data: the concierge phone and WhatsApp, the services active in the property and the live channels, with those in the guest's language first. A cast page shows a QR code to join the suite wifi and the steps to stream from a phone, and reminds the guest that the same wifi unlocks the automation in the app. Everything is navigated with the remote.

![Dark red TV homepage welcoming the guest to Suite Ninfea with the concierge phone and WhatsApp numbers, a cast help box, a row of service tiles with the private chef in focus and a row of channel logos](https://www.jacopomarcolini.com/images/case-studies/domus/tv-home-v2.webp)

*The homepage the TV opens on.*

![TV page titled Cast to this TV with four numbered steps and a white card holding a QR code, the suite wifi name and password](https://www.jacopomarcolini.com/images/case-studies/domus/tv-cast-v2.webp)

*Casting from a phone, with the suite wifi as a QR code.*

## The front desk

Concierge and front desk staff work in a web panel on the reception computer. They follow the stays in progress and coming up, invite a guest to a suite with the stay dates and the language, and follow each stay with its devices and the services booked. The catalogue is written once in five languages with prices, tags and images, then switched on for each property. Every suite carries its size, guests, door codes, wifi, temperature range and amenities, and every TV its channel list. Bookings can be charged to the guest from the desk and exported as CSV for accounting, and staff accounts have their own roles.

![Service editor for the private chef with five language tabs, title, description, price, tags, images and switches for the guest app and the TV homepage](https://www.jacopomarcolini.com/images/case-studies/domus/service-edit-v2.webp)

*A service, written once for every screen.*

![Apartment editor for Suite Ninfea with size, guests, temperature range, door codes, wifi, amenities, an interior illustration and the list of devices](https://www.jacopomarcolini.com/images/case-studies/domus/apartment-edit-v2.webp)

*A suite with its codes, wifi and devices.*

![Booking history with totals for bookings, paid and to be paid, and a table of services with guest, suite, price and payment status, plus a Download CSV button](https://www.jacopomarcolini.com/images/case-studies/domus/history-v2.webp)

*Booking history, ready for accounting.*

## One stay across every screen

A single stay ties the pieces together. The desk opens it, and from that moment the guest's app knows the suite, the codes and the wifi, the TV switches to the guest's language, and every service booked on the phone or seen on the TV comes back to the desk as an order to fulfil and charge. When the guest checks out, access ends and the stay moves to their history, ready for the next visit.

![An open laptop with the details of a stay, a TV showing the private chef service and two phones with the lights and the orders of the same guest, lying on a surface with terracotta arches](https://www.jacopomarcolini.com/images/case-studies/domus/one-stay-v3.webp)

*The same stay at the desk, on the TV and on the guest's phone.*

## How we built it

We were a small team of developers sharing one backend for three clients. I worked across all of them, from the API to the TV app.

### Guest app

Flutter for iOS and Android with GetX for state and routing, localised strings, cached images and shimmer placeholders while content loads.

### Smart TV

A web app for hospitality smart TVs written in JavaScript with jQuery and Bootstrap, spatial navigation for the remote, the TV's own APIs for the serial number, live channels and the player, and a QR code generated on the device.

### Front desk panel

React with React Router, Bootstrap and Sass, a component library of tables, forms, pills, modals and an omnisearch, and multilingual content editing.

### Back end and automation

One REST API for the app, the TV and the panel. The app talks to each property's automation gateway on the local network, which is why the controls work only from the suite wifi.

### Cloud

AWS, with Cognito for guest and staff accounts, images served from a media domain, Docker builds for the apps and GitHub Actions to tag releases and deploy the panel.

### Design

I turned the brand's identity into the interfaces of the three clients, so the app, the TV and the panel share colours, type and components.

## Working with the clients

I was the single point of contact for the B2B clients, from setting up a property to the requests that came in once guests were using it.

### 1. Map the property

With the operator, we listed buildings, suites, doors, light circuits and climate zones, and agreed what guests could control on their own.

### 2. Connect the building

We linked each property's automation gateway and each TV to its suite, and tested doors, lights and climate on the suite wifi.

### 3. Fill the catalogue

Together with the concierge, I loaded services, prices, images and policies in every language the property needed.

### 4. Train the desk

I showed the staff how to invite guests, follow stays, charge services and export bookings.

### 5. Support and improve

I collected requests from the desk and from guests' feedback, fixed issues and planned new features with the team.

## A platform in daily use

Domus runs the stay end to end for its properties: the desk invites the guest, the app opens the doors and runs the suite, the TV welcomes the guest in their language and sells the services, and every booking comes back to the desk to be fulfilled and charged.
