Back to the portfolio
Case study · InnSuite

A front desk that knows
which rooms are ready.

InnSuite is our own management system for small lodges, guest houses and B&Bs in Zimbabwe. This page shows how we went from a brief to a working app: the decisions behind it, a front-desk prototype you can click through, and what has to happen before a real lodge runs on it.

Who it's for
Small lodges, guest houses and B&Bs
Runs on
Android tablets & phones first; web later
Built with
Flutter, Firebase
Status
Brand & UI designed, demo build; started Sept 2026

01 — The problem

Hotel software is built for somewhere else.

The well-known hotel systems are made for richer markets. They expect steady internet, card payments, one currency and a manager sitting at a desk. A small Zimbabwean lodge often has none of those: power and data drop, guests pay in a mix of USD and ZiG, mobile money is more common than cards, and the owner is often not on site.

We wanted one system for the whole day's work: who is arriving, which rooms are ready, what housekeeping still has to clean, and where the money went. It needed:

  • Bookings, check-in and payments that work with no internet
  • USD and ZiG side by side, plus EcoCash and other mobile money
  • No double bookings, even when two devices book offline
  • A record of every price change, discount and void, so nothing leaks unnoticed
  • A simple task list so housekeeping can mark rooms clean from the corridor

02 — How we built it

The same six steps we use for every client.

InnSuite is our own product, so we were the client too. Here's what each step looked like on this project.

  1. 1

    Brief

    We wrote down who uses it and what each person needs: the owner wants money and occupancy from anywhere, the receptionist wants a walk-in booked in seconds, the housekeeper wants a short list of rooms to clean. Anything the front desk does had to work offline.

  2. 2

    Design decisions

    Before building features, we settled the data model, how double bookings are caught, how payments in two currencies are stored, and the brand: a calm teal, ivory and brass palette with the Outfit typeface. The main choices are explained below.

  3. 3

    Clickable prototype

    We mapped the front desk as a clickable prototype: a "Today" view with arrivals and departures, a room board by floor, and check-in with payment and key cards. Try it below.

  4. 4

    Build in small pieces

    We built it in milestones, each one usable on its own: sign-in and staff roles, rooms and rates, pricing, bookings and the calendar, check-in and the guest bill, payments with PDF receipts, housekeeping tasks, daily cash-up, alerts, an owner dashboard and reports.

  5. 5

    Test and harden

    Pricing, availability and bill maths have their own automated tests, and the database access rules and server functions are tested against a local copy of Firebase. A final milestone made sure the app tells staff when it's offline or when a change didn't save.

  6. 6

    Ship and support

    A release build for Android exists, and we use InnSuite as a working demo for lodge owners. The next step is a pilot at a real lodge, with a written checklist that includes a full day run in airplane mode.

03 — Try it

Click through the front desk.

This is the clickable prototype, running live on the page. It uses sample guests and rooms, and it may be a step behind the real app.

  • Check in a guest whose room is ready
  • Try to check in room 104: it's still dirty, so mark it clean first
  • Filter the room board by status, or open Housekeeping
InnSuite — Front desk

04 — Key decisions

Four choices made for small lodges.

In plain English, without the jargon.

The desk keeps working offline

Each tablet keeps a copy of the lodge's data. Bookings, check-ins and payments are saved on the device first and sent to the server when the connection comes back. A small chip shows "Offline" or how many changes are still waiting.

Double bookings are caught, not overwritten

If two devices book the same room for the same night while offline, the server notices when they reconnect. The first booking keeps the room, the second is flagged for a manager to sort out, and nothing is silently replaced.

Two currencies, recorded honestly

A guest can pay part in USD and part in ZiG, by cash or mobile money. Each payment stores the exchange rate used on the day, so old bills never change when the rate does. Money is kept in whole cents, so totals don't drift.

Every change leaves a trail

Price changes, discounts, voided payments and cancellations are copied to a log staff can't edit. Big discounts wait for a manager, and the owner gets alerts, such as a guest in the house who hasn't paid or a till that doesn't match.

Smaller touches came from the same thinking. Each staff role sees only its own screens: housekeepers get a task list, owners get a dashboard on their phone. At the end of the day the desk counts cash per currency, and the system shows what it expected.

05 — Tech stack

What it's made of.

App

Flutter (one codebase, Android tablet and phone first), Riverpod, go_router

Data

Cloud Firestore with offline persistence, one space per property

Server

Firebase Cloud Functions in TypeScript for room claims, audit log and alerts

Security

Firebase Auth with staff roles, enforced by Firestore Security Rules

Documents

PDF receipts and invoices, CSV export, QR codes

Testing

Flutter tests, plus rules and function tests on the Firebase emulator

06 — What's next

A real lodge, then the extras.

The core of InnSuite is built. These are designed and shown in the demo, but still need real connections before a lodge can rely on them:

  • A pilot at a real lodge, with its own rooms, rates and taxes
  • Live mobile money payments through Paynow (EcoCash and others)
  • WhatsApp booking confirmations and pre-arrival messages
  • Calendar sync with Booking.com and Airbnb, and QR codes guests scan in their room

Run a lodge or guest house and want to see it? Ask us for a demo.

Your project

Want something like this for your business?

We follow the same steps for every client, and you see a clickable prototype before you pay for the build.

Book a free consultation → See more of our work