← Back to CloudAlt Docs

CloudAlt App Foundry Business Unit Architecture

Organizational Hierarchy

CloudAlt Company
├── 3 Business Units (BUs) - Strategic/Sale Units
│   ├── BU #1: Hospitality (24 apps)
│   ├── BU #2: Discovery (3 apps)
│   └── BU #3: Services (4 apps)
│
├── 6 Divisions
│   ├── Stay Overnight → Hospitality
│   ├── Roommate Works → Hospitality (Stays) → Roommate Matching and Listings
│   ├── Stay Match → Hospitality → Double Occupancy Travel Partner Match
│   ├── AltFinder → Discovery
│   ├── Pride City → Services → Community Marketplace
│   └── Bonjour Locker → Services
│
├── 31 Branded Apps
│   ├── 18 Stay Overnight apps (general market and multiple community niche)
│   ├── 5 Roommate Works apps (general market and multiple community niche)
│   ├── 1 Stay Match app (general market)
│   ├── 3 AltFinder apps (general market)
│   ├── 1 Pride City app (Pride-niche)
│   ├── 2 Bonjour Locker apps (general market)
│   └── 1 Lingua IT app (field linguists)
│
└── 3 Django Projects - Backend Infrastructure
    ├── stays/ (port 8000) → Hospitality BU
    ├── discovery/ (port 8001) → Discovery BU
    └── services/ (port 8002) → Services BU
        

Business Units (Strategic Layer)

Purpose:

BU #1: Hospitality (stays/ Django project)

Port: 8000
Database: postgres_stays (port 5432)
Membership ID: STAY-XXXXXX

Divisions:

Total Apps: 24 branded applications

Shared Business Logic:

Why Together:

BU #2: Discovery (discovery/ Django project)

Port: 8001
Database: postgres_discovery (port 5433)
Membership ID: FIND-XXXXXX

Divisions:

Total Apps: 3 branded applications

Shared Business Logic:

Strategic Note:

BU #3: Services (services/ Django project)

Port: 8002
Database: postgres_services (port 5434)
Membership ID: SERV-XXXXXX

Divisions:

Total Apps: 4 branded applications

Shared Business Logic:

Divisions (Customer-Facing Layer)

Purpose:

Division Breakdown:

Click on any division name to see all apps and domains

Division Flagship BU Django Project # Apps Target Audience
Stay Overnight stayovernight.app Hospitality stays/ 18 Short-term travel companions, LGBTQ+ travelers, economy of sharing enthusiasts
Roommate Works roommate.works Hospitality stays/ 5 Roommate seekers, long-term housing market, LGBTQ+ housing needs
Stay Match staymatch.app Hospitality stays/ 1 Single travelers seeking double occupancy travel companions
AltFinder altfinder.app Discovery discovery/ 3 Eccentric and alternative-minded urban consumers
Pride City pride.city Services services/ 1 LGBTQ+ community event goers
Bonjour Locker bonjour.locker Services services/ 3 Travelers needing luggage storage, service providers, marketplace consumers

Branded Apps (Marketing & Delivery Layer)

Purpose:

Brand Strategy:

Multiple apps per division with:

Complete App Inventory by Division:

Stay Overnight Division (18 apps):

Flagship: stayovernight.app - Direct descriptor branding

stayovernight.app        → Blue #3B82F6           → General market flagship
host-guest.app           → Teal #14B8A6           → Official Stay Overnight brand (NEW Nov 2025)
host-guest.com           → Companion domain       → Brand protection & alt TLD
pinkguest                → Pink #F90772           → LGBTQ+ focused
purpleguest              → Purple #8A2BE2         → Alternative branding
orangeguest              → Orange #FF8C00         → Alternative branding
rainbowhost              → Rainbow gradient       → LGBTQ+ host focus
greenhost_app            → Green #228B22          → Eco-friendly angle
guestroom_city           → Urban palette          → City focus
guestroom_help           → Service colors         → Service angle
guestroom_host           → Host-centric           → Host-focused
guestroom_lgbt           → Pride colors           → LGBTQ+ focus
guestroom_pink           → Pink variant           → Pink branding
guestroom_travel         → Travel blue            → Travel TLD
homestay_international   → Global colors          → International market
homestay_lgbt            → Pride focus            → LGBTQ+ homestay
roomlgbt_app             → LGBTQ+ rooms           → Pride-focused rooms
        

Roommate Works Division (5 apps):

Flagship: roommate.works - Professional/functional branding

roommate.works           → Burgundy + Slate      → General market flagship
roommate.guru            → Burgundy + Gold       → Expert positioning
roommate.help            → Burgundy + Sky Blue   → Service angle
rooms_gay                → Pride colors          → LGBTQ+ roommate focus
room_lgbt                → Pride branding        → LGBTQ+ rooms
        

Stay Match Division (1 app):

Flagship: staymatch.app - Hybrid vacation + long-term stays

staymatch.app            → Indigo #4B0082        → Single travelers seeking double occupancy companions
        

AltFinder Division (3 apps):

Flagship: altfinder.app - LGBTQ+-friendly POI discovery

altfinder.app            → Primary brand         → General market flagship
pinkFinder               → Pink variant          → Alternative branding
orangeFinder             → Orange variant        → Alternative branding
        

Pride City Division (1 app):

Flagship: pride.city - LGBTQ+ community hub

pride.city               → Pride colors          → LGBTQ+ community events & services
        

Bonjour Locker Division (3 apps):

Flagship: bonjour.locker - Luggage storage services

bonjour.locker           → Primary brand         → Luggage storage flagship
bonjour.it.com           → Italian market        → Geographic variant
lingua.it.com            → Language services     → Service variant
        

Total: 31 branded applications across 6 divisions

Market Positioning:

Django Projects (Backend Infrastructure)

Architecture Decision:

"Django Project = Business Unit = Sale Unit"

Why 3 Django Projects (Not 1 or 6)?

❌ NOT 1 Monolith: Would make it impossible to sell individual BUs independently

❌ NOT 6 Projects: Over-engineered for divisions that share business logic

✅ 3 Projects: Perfect balance

Project Structure:

cloudalt-backend/
├── stays/                     # BU #1: Hospitality
│   ├── manage.py
│   ├── config/
│   ├── members/               # Universal membership (BU-level)
│   ├── stay_overnight/        # Division-specific logic
│   ├── roommate/              # Division-specific logic
│   └── stay_match/            # Division-specific logic
│
├── discovery/                 # BU #2: Discovery
│   ├── manage.py
│   ├── config/
│   ├── members/               # Universal membership (BU-level)
│   └── altfinder/             # Division-specific logic
│
└── services/                  # BU #3: Services
    ├── manage.py
    ├── config/
    ├── members/               # Universal membership (BU-level)
    ├── pride_city/            # Division-specific logic
    └── bonjour_locker/        # Division-specific logic
            

Key Architecture Principles

1. Membership Model: BU-Level, Not App-Level

Problem Solved: User signs up on pinkGuest → Should auto-login to orangeGuest, roommate_guru, etc.

Solution:

Example:
Kate signs up on pinkGuest (Stay Overnight)
→ Creates profile in stays/ Django project
→ Auto-logged into ALL Stay Overnight apps (orange, purple, green, etc.)
→ Can join Roommate with one click (same BU)
→ Would need NEW signup for altFinder (different BU)

2. Shared vs. Division-Specific Logic

Shared at BU Level:

Division-Specific:

3. Frontend Organization

cloudalt-frontend/
├── apps/
│   ├── stay-overnight/        # Division folder
│   │   ├── pinkguest/         # Branded app
│   │   │   ├── web/           # React + Vite
│   │   │   ├── mobile/        # React Native + Expo
│   │   │   └── shared/        # Shared assets, config
│   │   ├── orangeguest/
│   │   ├── greenhost_app/
│   │   └── ... (10 more)
│   │
│   ├── stay_match/
│   │   ├── pinkguest/
│   │   ├── orangeguest/
│   │   └── ... (3 more)
│   │
│   ├── roommate/
│   ├── altFinder/
│   ├── pride_city/
│   └── bonjour_services/
│
└── packages/                  # Shared code
    ├── ui-stay-overnight/     # Division-level UI components
    ├── ui-web/                # Cross-division web components
    ├── theme/                 # Brand color tokens
    ├── types/                 # TypeScript types
    └── services/              # API clients
            

4. Brand Theming System

Global TokensDivision TokensApp Tokens

// Global (all apps)
colors.primary.500 = '#000000'

// Division (Stay Overnight)
division['stay-overnight'].primary = '#800020' (burgundy)

// App (pinkGuest)
app['pinkguest-web'].colors.primary = '#F90772' (pink)
app['orangeguest-web'].colors.primary = '#FF8C00' (orange)
            

Brand Colors:

Brand Hex Used By
Pink #F90772 pinkGuest, pinkFinder
Orange #FF8C00 orangeGuest, orangeFinder
Purple #8A2BE2 purpleGuest, roommate_guru
Green #228B22 greenHost
Burgundy #800020 Stay Overnight flagship, Roommate apps

Delivery & Deployment

Backend Deployment:

GCP Cloud Run (containerized)
├── stays-api:8000        → Hospitality BU
├── discovery-api:8001    → Discovery BU
└── services-api:8002     → Services BU

Each with:
- Auto-scaling
- Load balancing
- PostgreSQL (Supabase managed)
- Cloud Storage (GCP) for media
- Firestore for real-time chat
        

Frontend Deployment:

Cloudflare Pages (static sites)
├── pinkguest.com         → Stay Overnight / pinkguest
├── pinkguest.app         → Same as above
├── stayovernight.app     → Stay Overnight / flagship
├── staymatch.app         → Stay Match / flagship
├── roommate.works        → Roommate Works / flagship
├── altfinder.app         → AltFinder / flagship
├── pride.city            → Pride City / flagship
├── bonjour.locker        → Bonjour Locker / flagship
└── ... (31 total apps)

Each with:
- Global CDN
- Cloudflare Access (GitHub OAuth)
- GitHub Actions auto-deploy
        

Summary: How They All Relate

Layer Purpose Count Example
Business Units Strategic grouping, sale units 3 Hospitality, Discovery, Services
Django Projects Backend infrastructure 3 stays/, discovery/, services/
Divisions Customer-facing brands 6 Stay Overnight, Roommate, Stay Match, altFinder, Pride City, Bonjour
Branded Apps Marketing channels, delivery 31 stayovernight, pinkguest, orangeguest, host-guest, etc.

Flow:

User opens pinkGuest app (branded app)
→ Uses Stay Overnight division (customer-facing brand)
→ Calls stays/ API (Django project)
→ Managed by Hospitality BU (strategic unit)
→ Shares membership with ALL Hospitality apps

Key Insight:

← Back to CloudAlt Docs

Stay Overnight Division - All Apps & Domains

Roommate Works Division - All Apps & Domains

Stay Match Division - All Apps & Domains

AltFinder Division - All Apps & Domains

Pride City Division - All Apps & Domains

Bonjour Locker Division - All Apps & Domains