← Back to Portfolio
multi-tenant saas
.NET EF Core Multi-tenancy SaaS Apache systemd MariaDB

Multi-Tenant SaaS Platform Architecture

Long-term engineering partnership with the founder of an Australian accounting SaaS — designing and building the scale-out layer of a platform positioned against incumbents like Xero.

Overview

A veteran Australian solo founder is building an accounting SaaS aimed squarely at e-commerce merchants — the kind of niche that generic incumbents have underserved for years. The early version runs, has paying seats, and needed to grow past single-tenant "set it up manually per customer" operations into something that can self-scale.

My role: long-term engineering partner on the platform layer. Everything from VPS consolidation through multi-tenant provisioning, operational tooling, and infrastructure decisions that need to outlive a single operator.

What's Being Built

Delivered So Far

Operating Model

The founder plays product owner and stakeholder side (accounting, legal, marketing, tax compliance). I drive the technical architecture, implementation, and operational tooling. Decisions get made async over text; no video calls, no meetings — deep-work respectful on both sides. Every major architectural call is weighed against "does this still make sense if the founder steps back in five years?" — because it's meant to.

Tech Stack

.NET 8 Entity Framework Core VB.NET / C# MariaDB Apache 2.4 systemd Ubuntu 24.04 Let's Encrypt KeyHelp Next.js (web layer) Basiq (bank aggregator) Swagger / OpenAPI

Why It Matters

Most SaaS advice is written for companies trying to become Xero. This one isn't — it's a defensible niche product aimed at a specific merchant segment the incumbents underserve. The architecture goal isn't to support ten million users; it's to let a single founder run a durable, sustainable, boring-in-the-best-way platform for the next decade-plus. That's the part that's harder than it sounds: shipping something that keeps working long after the founder moves on to the next thing.