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
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
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
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
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
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
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
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
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