Scaling a multi-tenant SaaS platform for the housing sector
We redesigned the tools behind complex daily operations – and made them actually work for the people who use them.
The challenge: Legacy technology with no room to scale
The product started as a desktop application used across departments to manage room bookings, events, internal requests, and reporting. But the system didn’t keep pace with user demand.
Staff were spending too much time navigating inefficient workflows just to complete routine tasks. The move to a cloud-based solution was inevitable and it wasn’t just about replacing the old app. It meant rethinking how teams actually work and making sure the new experience removed friction instead of adding it.
The solution: Rethinking the experience for operational teams
Working side by side with our client, we optimised and modernised the platform. We helped them implement a range of features, such as:
- Event actions – Each event includes a task list with assignees, due dates, priorities, and more for easy tracking and execution.
- Dialogues – A built-in forum within each event for topic-based discussions.
- Calendar room plans – Providing an overview of events in multiple ways, such as their location or catering schedule.
- Quote and invoice handling – While direct payments aren't supported, the system covers quotes, invoices, deposits, and related documentation. We enhanced this part for improved financial tracking.
The results: Simpler processes, happier staff, stronger performance
The platform is now a scalable, intuitive solution that supports real operational workflows. It has become a tool that finally works the way teams do – and one that can evolve with them.
It delivered immediate improvements:
- A web-first experience – The new interface makes it easy to book rooms, send internal requests, and export reports. That means staff can do more without additional training or technical support.
- Custom workflows without the complexity – With flexible fields, dynamic workflows, and export formats like Excel and PDF, the system adapts to each department’s needs.
- Fewer clicks, faster results – We significantly reduced the steps needed to complete everyday tasks, saving time and reducing frustration.
- Accessibility in the first place – We made sure that the platform is fully compliant with the latest accessibility standards.
From desktop legacy to a modern, scalable web platform designed to handle data-heavy operations without breaking a sweat.
The challenge: A legacy system too rigid to grow
As our client expanded into international markets, one thing was clear – their desktop-based registration system was holding them back.
With thousands of SQL procedures and over 1,500 database tables, the platform was complex and rigid.
They needed a system that could support their growth. That’s where we came in.
The solution: Rebuilding the core and opening the door to new markets
We’re in the process of transitioning from a legacy desktop application to a web-based platform.
While most of the functionality has been migrated, some configuration modules still require updates in the legacy system.
Highlights include:
- Group applications – Enabling staff to assign a predefined set of rooms to a group of users in one step.
- Lottery assignments – Introducing logic to assign random or fixed numbers to determine the order in which users choose rooms.
- Hard rules engine – Implemented a rules-based filter system that automatically blocks incompatible assignments. These rules are configured by staff and shown to users during selection.
- Application amendments – Users can now update their room, meal plan, or service preferences post-submission.
- Area-based allocations – Web support for assigning users to specific areas rather than individual rooms.
- Custom grids & reports – Staff can build dynamic grids by selecting fields from multiple tables, then generate custom reports using charts and tables.
- Additional payment providers – Integrated support for new third-party payment gateways.
- Infinite scroll for high-volume pages – Added cursor-based pagination to planning and allocation pages to reduce load times and improve UX.
The result: The number of requests reduced by up to 50%
The new platform gave our client the confidence and infrastructure to expand globally.
Performance, scalability, and real-time data handling are now built into the core. And, the results prove the same.
On some frequently used pages by staff, we reduced the number of requests by up to 50%.
One modern headless CMS – built to simplify, scale, and support whatever comes next.
The challenge: Disconnected tools and too much manual work
Our client was juggling multiple outdated desktop applications – each with its own quirks, limits, and manual workarounds.
They needed a unified, web-based platform to manage system configuration and content from one place.
It had to be intuitive enough for non-technical users, powerful enough for engineers, and flexible enough to support future integrations. And since many of the old tools were deeply embedded in daily operations, we had to deliver something better – without disrupting what worked.
The solution: Build one platform to bring everything together
We kicked things off with a proof of concept to validate Umbraco as the right foundation. It delivered built-in features that accelerated development, while the platform remained flexible enough to support any custom dashboard or functionality the client needed.
Next, we built a custom Umbraco dashboard for managing a queueing system integrated with a custom .NET API hosted on AWS.
To support external teams, we also delivered integration packages for both .NET Framework and .NET Core. Automated deployments were set up using Octopus Deploy, making releases faster and more reliable.
Currently, we're developing a new custom dashboard that gives staff a clear, real-time view of room pricing and occupancy, along with the ability to quickly update prices as needed.
Every step of the way, we worked hand-in-hand with the client’s team lead and project owner – staying tightly aligned to deliver exactly what was needed, when it was needed.
The results: Simplified workflows and a future-proof core
By moving away from legacy desktop configurators, our client is creating a more unified, accessible environment for managing settings and dashboards, especially in areas where placement and ownership were previously unclear.
The result is a more intuitive experience that reduces friction, increases transparency, and lays the groundwork for broader adoption across their ecosystem.
- Modular, decoupled architecture – Built from the ground up to be clean, scalable, and integration-ready.
- User-first design – A modern UI that works for everyone, from system admins to content teams.
- Flexible and future-ready – Supports complex configuration scenarios today – and whatever comes tomorrow.
The shared foundation that powers a growing product ecosystem.
The challenge: Too many systems, not enough structure
The client was scaling fast, with multiple digital products in play and more on the roadmap. But without a unified API layer, teams were duplicating work and struggling to connect the dots.
They needed a centralised, reliable API to streamline development, simplify integrations, and support future growth across all departments.
The solution: Build the glue that holds it all together
We worked on a robust, modular API platform to connect apps, platforms, and services.
Here’s what we achieved:
- We built an API to enable features that simply didn’t exist before.
- By adopting a shift-left approach, we defined the API contract early, which allowed teams to work on the API and the dependent applications in parallel, even before the API was completed.
Throughout the process, we stayed closely aligned with other product teams to make sure the API met real-world needs.
The results: A stable base for every product
The centralised API reduces integration issues and keeps teams aligned.
With standardised data flows and reusable services, the platform is easier to maintain and scale. It supports today’s needs – and is ready for what’s next.
Product teams build faster and more confidently, with the API quietly powering everything behind the scenes.
Each project with our client had its own challenges, but the shared goal stayed the same – create systems that are reliable, scalable, and ready for whatever comes next.
From modernising legacy applications to building entirely new platforms, we didn’t just deliver code – we delivered confidence.
By working closely with our client’s teams, adapting to change, and focusing on long-term value, we helped set the stage for smarter operations, faster delivery, and continued growth.
And the best part? We’re just getting started.
