Skip to main content
Fabien Fouassier

Case Study

GetGround

Multi-tenant, white-label building management platform used by multiple enterprise operators. I owned core architecture and features across mobile, web, and backend over 5+ years — shipping, scaling, and maintaining a long-lived production system.

Role

Senior Full-Stack Developer

Timeline

5+ years

Year

2020

Category

B2B/B2C SaaS

GetGround hero image

Context & Constraints

GetGround is a multi-tenant, white-label building management platform used by multiple enterprise operators to manage daily operations across large office portfolios.

The platform needed to support multiple operators on a shared core, strict tenant isolation, deep customization (branding, features, integrations), and long-term maintainability over years.

Over time, the scope expanded into a full ecosystem: back-office, backend, mobile app, web app, and a backend-for-frontend layer — all expected to evolve without breaking existing clients.

The Core Problem

The challenge was not feature delivery, but scaling complexity without fragmentation.

As new operators, services, and integrations were added, the system had to remain reliable in production, flexible across tenants, understandable by multiple teams, and safe to extend without regressions.

This required architectural decisions that favored clarity and isolation over short-term speed.

My Role & Ownership

I joined as a Frontend Developer, initially focused on mobile (React Native) and web (React, Next.js) applications.

As the platform grew and backend needs expanded, I progressively took on more responsibility. I began supporting and backing up the backend developer, contributing to API development, BFF architecture, and infrastructure decisions. Over time, this natural evolution consolidated my role as a full-stack developer.

My responsibilities grew to include:

  • Designing and evolving authentication flows (credentials + SSO)
  • Building and maintaining backend APIs and a dedicated BFF
  • Delivering core modules across back-office, mobile, and web
  • Driving white-label architecture for theming and tenant configuration
  • Integrating and maintaining critical third-party SDKs
  • Collaborating closely with product, commercial, and client stakeholders

I owned decisions end-to-end, from backend services to client-facing applications, aligning technical execution with long-term business needs.

Key Engineering Decisions

1. Multi-tenant & white-label architecture

Designed a theming and configuration system that allowed multiple operators to share a single platform while maintaining strict isolation in branding, features, and integrations.

This enabled faster onboarding of new clients without duplicating codebases.

2. Backend-for-Frontend (BFF)

Introduced a NestJS-based BFF layer to decouple frontend needs from backend services.

This allowed mobile and web clients to evolve independently while keeping backend contracts stable.

3. Authentication & enterprise integrations

Implemented credential-based and SSO authentication (Microsoft, Google) across mobile and web, ensuring enterprise compatibility without fragmenting auth logic.

4. SDK and hardware integrations

Integrated complex third-party systems including Firebase (telemetry, crash reporting, distribution), STid (badge access), and Vecos (locker management).

These integrations required careful lifecycle management to avoid coupling core logic to vendor-specific behavior.

Outcomes & Impact

Over more than 5 years in production, these decisions enabled:

  • A shared platform used by multiple enterprise operators
  • Safe rollout of new features without breaking existing tenants
  • Scalable onboarding of new clients with minimal rework
  • Stable mobile and web applications used daily in real office environments
  • Sustained maintainability as teams and requirements evolved

The platform remained reliable and extensible despite increasing scope and complexity.

Tech Stack

React NativeNext.jsAWSReactTailwindNestJSGraphQLpostgreSQLFirebaseStripe
  • Frontend: React (Back-Office), React Native (Mobile), Next.js (Web)
  • Backend: NestJS (APIs & BFF), AWS (Cognito, DynamoDB, AppSync, S3)
  • Integrations: Firebase, Stripe, Vecos, STid
  • Infrastructure: AWS-native services with environment isolation

Related Links