SaaS Platform · Community Infrastructure · Global In Active Development

The operating system for
residential communities.

A full-stack multi-tenant SaaS platform for urbanisations, gated communities, and HOAs worldwide. From digital AGM voting and community fee collection to facial recognition gate access and a purpose-built F&B module. Founded at Señorio de Marbella, Marbella — Community #1.

Start a conversation → Our custom software service

15

Community Roles

4

Subscription Plans

€49

Starting From / Month

23

Competitors Analysed

The Challenge

Community management is broken worldwide. We built the fix.

Gated communities, urbanisations, and HOAs worldwide are run on spreadsheets, WhatsApp groups, and paper AGM minutes. Community fees go unpaid for months — nobody knows who owes what. Facility bookings happen via text message. Maintenance issues fall through the cracks. Gate access codes are shared on Post-it notes. Board meetings produce resolutions that nobody can find six months later.

At Señorio de Marbella — a 400-unit urbanisation on the Costa del Sol — these problems were documented in exhaustive operational detail. What emerged was not a feature request list. It was a product vision: an operating system purpose-built for how residential communities actually work. Every module in this platform traces directly to a real operational failure observed on site.

After analysing 23 competing platforms globally, 10 significant market gaps were confirmed. No competitor offers a purpose-built F&B module. None combine digital voting with legally defensible step-up authentication. None ship a unified mobile app that adapts to every role — from board president to tourism renter — on login. This platform does all of that, built for the EU from day one.

What Is Being Built

  • Multi-tenant SaaS with row-level isolation — every database table has a tenant_id foreign key. Cross-tenant data leakage is architecturally impossible.
  • 5-level user hierarchy with 15 distinct roles — from Platform Admin to Tourism Renter, each with precise data access
  • React Native + Expo unified mobile app — one app, every role, role-determined navigation stack on login
  • Community fee collection with Stripe — per-property ledger, automated reminders, overdue tracking, resident self-service
  • Digital e-voting with step-up 2FA for ballot integrity — quorum tracking, results publication, legally defensible audit trail
  • Facility booking system — swimming pools, padel courts, event rooms, with capacity limits, conflict detection, and approval workflows
  • Document vault — AGM minutes, rules, contracts, insurance, backed by GCP Cloud Storage with role-gated access
  • F&B module for the community bar and restaurant — revenue tracking, shift management, event scheduling. No competitor has this.
  • Guest QR pass — owners issue digital passes for visitors, no app required. WiFi, permitted amenities, emergency contacts in one QR code.
  • Facial recognition staff clock-in via Azure Face API — confidence 0.85 = auto clock-in, 0.60–0.84 = confirm prompt, below 0.60 = QR fallback
  • Resident gate access via Azure Face API — intercom-integrated, enrol via mobile app in under 60 seconds, GDPR Article 9 compliant
  • Issue and maintenance tracking — photo attachments, priority levels, assigned to maintenance staff, full resolution history
  • Multilingual from day one — Spanish and English at launch, RESX (API) + i18next (React), JSONB translation columns in PostgreSQL
  • Revenue share engine — every Stripe webhook calculates and records the founder revenue share automatically. 15% Spain/Portugal, 3% global.

Technology Stack

Enterprise-grade. EU-native. Built to scale worldwide.

Every technology decision was made for a reason: ASP.NET Core 10 for the API performance and EF Core migrations, React Native for a single mobile codebase across all roles, PostgreSQL JSONB for multilingual content storage without a separate translations table.

API Backend

ASP.NET Core 10 Web API Minimal APIs + Controllers JWT Bearer Auth RESX Localisation Serilog structured logging

Web Frontend

React 18 + Vite TypeScript (strict mode) React Router v6 Zustand (state) i18next CSS Modules

Mobile App

React Native + Expo SDK React Navigation v6 WatermelonDB (offline queue) Expo SecureStore (JWT) expo-notifications expo-camera (face enrolment) i18next

Database

PostgreSQL 17 GCP Cloud SQL (europe-west2) JSONB translation columns Row-level tenant isolation

ORM & Migrations

Entity Framework Core 10 Npgsql provider Code-first migrations Global query filters (soft deletes)

Authentication & 2FA

JWT Bearer (60-min) + refresh tokens (30-day) TOTP (Google Authenticator) SMS OTP Email OTP (fallback) Step-up auth for critical ops BCrypt cost 12 Rate limiting

Billing & Subscriptions

Stripe Subscriptions API Webhook lifecycle management EUR (GBP + AED roadmap) Revenue share ledger Idempotency keys

Real-Time

Pusher Channels expo-notifications (mobile push)

Facial Recognition

Azure Face API (West Europe) recognition_04 + detection_03 models Confidence 0.85 = auto clock-in Face vectors in Azure only (GDPR Art. 9)

Hosting & Infrastructure

GCP Cloud Run (europe-west2) Cloud Build pipeline Artifact Registry (Docker) GCP Secret Manager Cloud Storage (documents)

Platform Modules

18 modules. One platform. Every role covered.

Multi-Tenant Architecture

Row-level isolation — every database table has a tenant_id foreign key. Subdomain routing resolves the tenant on every request. The tenant is always sourced from the JWT claim, never from URL params or request body. Cross-tenant data leakage is architecturally impossible.

5-Level User Hierarchy

15 distinct roles from Platform Admin to Tourism Renter. The JWT role claim drives the entire experience — which navigation stack loads on mobile, which data is visible, which actions are permitted. Board members and a gardener log into the same app: they see completely different interfaces.

React Native Mobile App

One app, every role. Role-determined navigation stack renders on login. WatermelonDB for offline queue — announcements and shift clock-ins work without signal. JWT stored in Expo SecureStore, never AsyncStorage. Pusher Channels for real-time push.

Community Fee Collection

Stripe-powered fee collection per property. Automated reminders at 7, 3, and 1 days before due. Overdue tracking with management dashboard. Resident self-service payment portal — pay directly from the mobile app or web. Full per-property ledger history.

Digital E-Voting

Full AGM voting with step-up 2FA for ballot integrity — residents must re-authenticate before casting a vote. Quorum tracking in real time. Results publication with full audit trail. Resolution archive linked to the document vault. Legally defensible in Spanish LPH jurisdiction.

Facility Booking System

Swimming pools, padel courts, BBQ areas, event rooms, yoga terraces. Capacity limits enforced, conflict detection prevents double-booking, management approval workflows for premium slots. Resident self-service from app or web with instant confirmation.

Document Vault

AGM minutes, community rules (estatutos), contracts, insurance policies, architectural plans. All backed by GCP Cloud Storage. Role-gated access — residents see what residents should see, board members see everything. Multilingual filename support.

No competitor has this

F&B Module

A purpose-built bar and restaurant operations module — the only one of its kind in any urbanisation platform on the market. Revenue tracking per session and event night, shift management for F&B staff, supplier contacts, event scheduling, and weekly performance reporting. Built from real operational intelligence at Señorio de Marbella's Hibiscus Bar.

Multilingual by Design

Spanish and English at launch. French, Arabic, Portuguese next. RESX files on the API (IStringLocalizer), i18next on the React SPA and mobile app. Database content stored as JSONB — {"en":"...","es":"...","fr":"..."} — one column, every language, no joins required.

Guest QR Pass

Owners issue digital guest passes from the app — no account required for the visitor. The pass is a signed JWT (48h expiry) embedded in a QR code. It contains the WiFi password, permitted amenities, and emergency contacts. Security staff scan it at the gate on their mobile app.

Facial Recognition Clock-In

Staff clock-in by face via Azure Face API (West Europe, GDPR-compliant). Confidence ≥ 0.85 = auto clock-in, creates shift record. Confidence 0.60–0.84 = identity confirmation prompt. Below 0.60 = QR pin fallback. Face vectors stored in Azure only — local DB holds the UUID reference, never biometric data.

Resident Gate Access

Intercom panel with camera sends frames to Azure Face API for identification. Residents enrol via mobile app: 3 photos, under 60 seconds. GDPR Article 9 biometric data consent recorded at enrolment. Confidence threshold for gate open: configurable per community.

Issue & Maintenance Tracking

Residents report maintenance issues via app — photo attachments, location within the community, category. Management assigns to the correct maintenance staff member. Priority levels, status updates, resolution notes. Full issue history per property.

Role-Configurable 2FA

Platform enforces minimum 2FA policies that tenants cannot weaken. Board president and above: TOTP or SMS required. Step-up authentication for critical operations: e-voting, payment method changes, legal document signing. Tenants can strengthen but never weaken the platform minimums.

Revenue Share Engine

Every Stripe invoice.payment_succeeded webhook automatically calculates and records the founder revenue share: 15% for Spain and Portugal tenants, 3% for all other markets. Aggregated quarterly. Señorio de Marbella board receives a living revenue dashboard.

AI Community Assistant

Residents ask questions in natural language — rules queries, facility information, fee explanations. The assistant handles common questions and escalates to management when needed. Trained on each community's specific documents and rules.

Stripe Subscription Lifecycle

Tenant signup creates a Stripe customer and subscription automatically. Webhook handlers manage the full lifecycle: activation, plan changes, failed payments (7-day grace), cancellation (7-day grace before deactivation). All prices in Stripe — never hardcoded. Idempotency keys on all API calls.

GDPR & EU Compliance by Design

All data stored in GCP europe-west2. Azure Face API uses West Europe region. Soft deletes throughout — no hard deletes on user or tenant data, 90-day retention after cancellation. Biometric consent recorded at enrolment (GDPR Article 9). LOPD (Spain) compliant. No data ever written to US regions.

System Architecture

One API. Three clients. Every role. Row-level tenant isolation throughout.

/urbanisation-platform  (monorepo)

├── src/
│   ├── Api/                       ASP.NET Core 10 Web API
│   │   ├── Controllers/           Tenant-scoped REST endpoints
│   │   ├── Middleware/
│   │   │   └── TenantResolutionMiddleware.cs  ← runs first, every request
│   │   └── Program.cs
│   │
│   ├── Core/                      Shared library
│   │   ├── Entities/              EF Core (all extend TenantEntity)
│   │   │   ├── Announcement.cs    title_translations (jsonb)
│   │   │   ├── Booking.cs  ·  CommunityFee.cs  ·  Issue.cs
│   │   │   └── ... 15 tenant-scoped entities
│   │   └── Data/AppDbContext.cs   global query filters (soft deletes)
│   │
│   └── Web/                       React 18 + Vite SPA
│       └── src/
│           ├── api/               Typed fetch wrapper (no direct fetch in components)
│           ├── pages/
│           │   ├── resident/      Property owners + tenants
│           │   ├── management/    Board + operations staff
│           │   └── admin/         Platform super-admin
│           └── i18n/              i18next (es + en, JSONB fallback)

├── mobile/                        React Native + Expo (all roles, one app)
│   └── src/
│       ├── navigation/
│       │   ├── GovernanceStack.tsx     Board + legal (voting, AGM, financials)
│       │   ├── OperationsStack.tsx     Maintenance + security + F&B
│       │   ├── ResidentStack.tsx       Owners + tenants
│       │   └── GuestStack.tsx          Tourism renters — QR pass only
│       ├── store/                 Zustand (mirrors web state shape)
│       └── db/                    WatermelonDB offline queue

└── docker/ + cloudbuild.yaml    GCP Cloud Build → Artifact Registry → Cloud Run

Tenant Isolation is Absolute

Every database table has tenant_id. Every query filters by it. The tenant is always resolved from the JWT claim — never from URL parameters, query strings, or request body. TenantResolutionMiddleware runs before every controller on every request.

One API, Three Clients

ASP.NET Core 10 serves the React SPA, the React Native mobile app, and the platform admin dashboard from a single API with a single JWT standard. No separate mobile API. Same endpoints, same auth, same tenant isolation — the role claim determines what each client can see and do.

Role-Driven Everything

A board president and a gardener log into the same mobile app. The JWT role claim renders the correct navigation stack, hides irrelevant data, and enforces server-side authorization policies on every endpoint. No feature flags, no client-side role checks that can be bypassed.

Built for GDPR from Day One

All infrastructure in europe-west2. Soft deletes throughout — no hard deletes on user or tenant data. Biometric consent recorded at enrolment. LOPD (Spain) and GDPR Article 9 compliant. GCP Secret Manager for all credentials — nothing in config files or environment variables in source control.

Subscription Plans

One platform. Four plans. Built for every size of community.

From a 30-unit apartment complex to a 500-unit resort urbanisation. Pricing designed so the platform pays for itself inside the first month of reduced admin overhead.

Basic

€49/mo

Up to 50 units

  • Announcements & document vault
  • Community fee collection (Stripe)
  • Mobile app for all residents
  • Announcement board (multilingual)
  • Email & push notifications

Standard

€99/mo

Up to 200 units

  • Everything in Basic, plus:
  • Facility bookings & issue tracking
  • Digital e-voting (AGM)
  • Visitor management
  • Full accounting module

Enterprise

€349/mo

Unlimited units · Custom domain

  • All Premium features, plus:
  • Custom domain (your own URL)
  • Community marketplace
  • Dedicated onboarding support
  • SLA + priority support

All plans include a revenue share arrangement with Señorio de Marbella as Founding Partner: 15% of net subscription revenue for Spain and Portugal communities, 3% for all other markets, paid quarterly once the balance exceeds €500.

Global Reach

Built for worldwide deployment from day one.

5

Target Launch Markets

15

User Roles

€349

Enterprise Plan / Month

100%

EU Data Residency

Launch Roadmap

Q4 2026

Spain

LPH · SEPA · es

Q1 2027

Portugal

pt · SEPA

Q2 2027

UAE / GCC

ar · AED

Q3 2027

Latin America

es/pt · PIX

Q4 2027

France / EU

fr · SEPA

In Active Development

The operating system for residential communities. Launching Q4 2026.

We are building the platform that communities worldwide have been waiting for. Señorio de Marbella, Marbella, is Community #1. If you manage an urbanisation, HOA, or gated community and want early access — or if you want to build something similarly ambitious — let's talk.

Start a conversation → Our custom software service