A series of spreadsheets that were, honestly, a mess.
Aire Spaces came to us with a reporting problem. What they showed us was a series of interconnected Excel sheets — duplicated steps to move data between tabs, manual copy-paste between sources, and one sheet essentially acting as a database for eleven months of property revenue. It held together, in the way that hand-built spreadsheets tend to. But it was fragile, hard to hand off, and impossible to scale.
Their existing client report was functional but not pretty. No branding. Column labels that were overly clustered and hard to read. Little room for growth — things had been added over time in ways that left the layout brittle. As it turned out, some of the improvements we delivered later in the engagement would not have been possible in the format they started with.
On top of this, the reporting workflow crossed over with their invoicing process. Not cleanly — invoicing prep sat adjacent to reporting in a way that added time and friction to what was already a slow monthly cycle. That overlap became part of the brief.
The state of things
- • Interconnected Excel sheets with duplicated data movement
- • A single sheet acting as an 11-month revenue database
- • Client reports with hard-to-read columns
- • No room to extend the report format without breaking it
- • Reporting and invoicing prep intertwined, adding friction to both
Rapid prototyping the report
Before we wrote a line of application code, we redesigned their client-facing report. We used Figma Make to move fast — not static mocks, not a wired-together prototype, but something that behaved like a real product. This proved unexpectedly valuable.
As the client put it: it allowed us to explore a whole space of interactions that would not have been apparent from static mocks. We could sit down together with something that responded and clicked through, gather high-fidelity feedback at an early stage, and use it as the foundation for the codebase when we moved into build. The facelift also gave Aire Spaces an updated version of the document they were already sharing with clients — an immediate, tangible improvement before the application was anywhere near done.
Fitting into their workflow
The first thing we established was a constraint: whatever we built as a first step had to slot into how Aire Spaces already worked. We were not going to ask them to take a great leap from one month to the next — the system had to earn its place gradually. So we made a small but meaningful modification to their existing sheet workflow, producing a CSV template they could drop into a simple upload interface. First step: fill out this slightly modified template and drop it here. That was it. No disruption. No retraining.
The highlight of shaping this stage was realising that whatever we do first NEEDS to fit into their workflow. We modified as little as possible and built around what already existed.
A database, not another spreadsheet
One of those Excel sheets was, in effect, a database — eleven months of property revenue held together by formulas and discipline. Moving that into a real persistence layer was the obvious next step. We reached for Supabase: fast to spin up, a migrations-based schema, and a place for the report data to actually live.
The immediate win was that historical data started accumulating without anyone having to manage it. Month after month, the data was there — no extra sheet to maintain alongside the current one. The deeper win was that this set the foundation for everything that came next, starting with the Client Portal — where the access control, the per-client report history, and the end of the monthly mail-merge actually got built.