# kalaigram/rexxio-super-app architecture

> Architecture diagram of the GitHub repository kalaigram/rexxio-super-app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kalaigram/rexxio-super-app
- Repository: https://github.com/kalaigram/rexxio-super-app

## Overview

Rexxio is a multi-service superapp: people use its web client to access social, messaging, faith, marketplace, productivity, learning, activity, and account features. The tree also shows separate Go authentication, NestJS application-domain, Python content/activity, and Go realtime services. The sampled sources confirm Python route mounting and search behavior, OAuth provider handling, and MinIO upload signing; much of the cross-service wiring and feature implementation is unsampled, so those links are omitted where ownership is unclear.

Main entry points: [`apps/web/src/app`](https://github.com/kalaigram/rexxio-super-app/tree/master/apps/web/src/app) (Web app), [`services/go/internal/delivery/http/provider_controller.go`](https://github.com/kalaigram/rexxio-super-app/blob/master/services/go/internal/delivery/http/provider_controller.go) (Provider login and linking), [`services/node/src/controllers`](https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/controllers) (App domain API), [`services/python/app/services/search_service.py`](https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/services/search_service.py) (Post search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client experience"]
  node_web["Web app"]
  node_webshell["App shell<br/>[AppShell.tsx]"]
  node_weblibs["Web domain clients"]
  node_mobile["Android host<br/>[MainActivity.kt]"]
  node_chatclient["Chat socket client<br/>[use-chat-socket.ts]"]
end

subgraph group_auth["Identity and accounts"]
  node_authapi["Auth HTTP API<br/>[route.go]"]
  node_oauth["Provider login and linking"]
  node_authcases["Identity use cases"]
  node_authstore[("Auth repositories")]
end

subgraph group_app["App domains"]
  node_nestapi["App domain API"]
  node_domaincases["Social domain use cases"]
  node_mongo[("Mongo data services")]
end

subgraph group_content["Content and activity"]
  node_contentapi["Content API<br/>[main.py]"]
  node_contentroutes["Posts and activity routes<br/>[routes.py]"]
  node_contentservices["Content services"]
  node_search["Post search<br/>[search_service.py]"]
  node_sql[("SQL content database<br/>[database.py]")]
end

subgraph group_realtime["Realtime and storage"]
  node_fileupload["Presigned file uploads"]
  node_objectstore[("MinIO object storage")]
  node_realtimeapi["Realtime WebSocket<br/>[handler.go]"]
  node_hub["Realtime hub<br/>[hub.go]"]
end

node_person(("Person"))
node_identityproviders["Identity providers"]
node_meili[("Meilisearch")]

node_person -->|"uses"| node_web
node_web -->|"renders"| node_webshell
node_web -->|"uses"| node_weblibs
node_person -->|"uses"| node_mobile
node_web -->|"auth requests"| node_authapi
node_authapi -->|"routes provider auth"| node_oauth
node_oauth -->|"invokes"| node_authcases
node_authcases -->|"persists identity"| node_authstore
node_oauth -.->|"exchanges credentials"| node_identityproviders
node_web -->|"domain requests"| node_nestapi
node_nestapi -->|"dispatches"| node_domaincases
node_domaincases -->|"reads and writes"| node_mongo
node_nestapi -->|"requests upload URLs"| node_fileupload
node_fileupload -->|"signs uploads"| node_objectstore
node_person -->|"requests content"| node_contentapi
node_contentapi -->|"mounts"| node_contentroutes
node_contentroutes -->|"serves through"| node_contentservices
node_contentservices -->|"searches posts"| node_search
node_search -->|"SQL fallback"| node_sql
node_search -.->|"indexes and searches"| node_meili
node_chatclient -->|"opens socket"| node_realtimeapi
node_realtimeapi -->|"dispatches events"| node_hub

click node_web "https://github.com/kalaigram/rexxio-super-app/tree/master/apps/web/src/app"
click node_webshell "https://github.com/kalaigram/rexxio-super-app/blob/master/apps/web/src/components/layout/AppShell.tsx"
click node_weblibs "https://github.com/kalaigram/rexxio-super-app/tree/master/apps/web/src/lib"
click node_mobile "https://github.com/kalaigram/rexxio-super-app/blob/master/apps/mobile/android/app/src/main/kotlin/com/rexxio/rexxio_mobile/MainActivity.kt"
click node_authapi "https://github.com/kalaigram/rexxio-super-app/blob/master/services/go/internal/delivery/http/route/route.go"
click node_oauth "https://github.com/kalaigram/rexxio-super-app/blob/master/services/go/internal/delivery/http/provider_controller.go"
click node_authcases "https://github.com/kalaigram/rexxio-super-app/tree/master/services/go/internal/usecase"
click node_authstore "https://github.com/kalaigram/rexxio-super-app/tree/master/services/go/internal/repository"
click node_nestapi "https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/controllers"
click node_domaincases "https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/use-cases/social"
click node_mongo "https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/frameworks/data-services/mongo"
click node_fileupload "https://github.com/kalaigram/rexxio-super-app/blob/master/services/node/src/frameworks/storage/minio-storage.service.ts"
click node_contentapi "https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/main.py"
click node_contentroutes "https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/api/v1/routes.py"
click node_contentservices "https://github.com/kalaigram/rexxio-super-app/tree/master/services/python/app/services"
click node_search "https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/services/search_service.py"
click node_sql "https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/core/database.py"
click node_realtimeapi "https://github.com/kalaigram/rexxio-super-app/blob/master/services/go-realtime/internal/ws/handler.go"
click node_hub "https://github.com/kalaigram/rexxio-super-app/blob/master/services/go-realtime/internal/hub/hub.go"
click node_chatclient "https://github.com/kalaigram/rexxio-super-app/blob/master/apps/web/src/lib/use-chat-socket.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_webshell,node_weblibs,node_mobile,node_chatclient toneBlue
class node_authapi,node_oauth,node_authcases,node_authstore,node_meili toneAmber
class node_nestapi,node_domaincases,node_mongo toneMint
class node_contentapi,node_contentroutes,node_contentservices,node_search,node_sql toneRose
class node_fileupload,node_objectstore,node_realtimeapi,node_hub,node_person,node_identityproviders toneIndigo
```

## Components

### Client experience

- [Web app](https://github.com/kalaigram/rexxio-super-app/tree/master/apps/web/src/app): `apps/web/src/app`
- [App shell](https://github.com/kalaigram/rexxio-super-app/blob/master/apps/web/src/components/layout/AppShell.tsx): `apps/web/src/components/layout/AppShell.tsx`
- [Web domain clients](https://github.com/kalaigram/rexxio-super-app/tree/master/apps/web/src/lib): `apps/web/src/lib`
- [Android host](https://github.com/kalaigram/rexxio-super-app/blob/master/apps/mobile/android/app/src/main/kotlin/com/rexxio/rexxio_mobile/MainActivity.kt): `apps/mobile/android/app/src/main/kotlin/com/rexxio/rexxio_mobile/MainActivity.kt`
- [Chat socket client](https://github.com/kalaigram/rexxio-super-app/blob/master/apps/web/src/lib/use-chat-socket.ts): `apps/web/src/lib/use-chat-socket.ts`

### Identity and accounts

- [Auth HTTP API](https://github.com/kalaigram/rexxio-super-app/blob/master/services/go/internal/delivery/http/route/route.go): `services/go/internal/delivery/http/route/route.go`
- [Provider login and linking](https://github.com/kalaigram/rexxio-super-app/blob/master/services/go/internal/delivery/http/provider_controller.go): `services/go/internal/delivery/http/provider_controller.go`
- [Identity use cases](https://github.com/kalaigram/rexxio-super-app/tree/master/services/go/internal/usecase): `services/go/internal/usecase`
- [Auth repositories](https://github.com/kalaigram/rexxio-super-app/tree/master/services/go/internal/repository): `services/go/internal/repository`

### App domains

- [App domain API](https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/controllers): `services/node/src/controllers`
- [Social domain use cases](https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/use-cases/social): `services/node/src/use-cases/social`
- [Mongo data services](https://github.com/kalaigram/rexxio-super-app/tree/master/services/node/src/frameworks/data-services/mongo): `services/node/src/frameworks/data-services/mongo`

### Content and activity

- [Content API](https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/main.py): `services/python/app/main.py`
- [Posts and activity routes](https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/api/v1/routes.py): `services/python/app/api/v1/routes.py`
- [Content services](https://github.com/kalaigram/rexxio-super-app/tree/master/services/python/app/services): `services/python/app/services`
- [Post search](https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/services/search_service.py): `services/python/app/services/search_service.py`
- [SQL content database](https://github.com/kalaigram/rexxio-super-app/blob/master/services/python/app/core/database.py): `services/python/app/core/database.py`

### Realtime and storage

- [Presigned file uploads](https://github.com/kalaigram/rexxio-super-app/blob/master/services/node/src/frameworks/storage/minio-storage.service.ts): `services/node/src/frameworks/storage/minio-storage.service.ts`
- **MinIO object storage**
- [Realtime WebSocket](https://github.com/kalaigram/rexxio-super-app/blob/master/services/go-realtime/internal/ws/handler.go): `services/go-realtime/internal/ws/handler.go`
- [Realtime hub](https://github.com/kalaigram/rexxio-super-app/blob/master/services/go-realtime/internal/hub/hub.go): `services/go-realtime/internal/hub/hub.go`

### Other components

- **Person**
- **Identity providers**
- **Meilisearch**

## Connections

- Person → Web app: uses
- Web app → App shell: renders
- Web app → Web domain clients: uses
- Person → Android host: uses
- Web app → Auth HTTP API: auth requests
- Auth HTTP API → Provider login and linking: routes provider auth
- Provider login and linking → Identity use cases: invokes
- Identity use cases → Auth repositories: persists identity
- Provider login and linking → Identity providers: exchanges credentials
- Web app → App domain API: domain requests
- App domain API → Social domain use cases: dispatches
- Social domain use cases → Mongo data services: reads and writes
- App domain API → Presigned file uploads: requests upload URLs
- Presigned file uploads → MinIO object storage: signs uploads
- Person → Content API: requests content
- Content API → Posts and activity routes: mounts
- Posts and activity routes → Content services: serves through
- Content services → Post search: searches posts
- Post search → SQL content database: SQL fallback
- Post search → Meilisearch: indexes and searches
- Chat socket client → Realtime WebSocket: opens socket
- Realtime WebSocket → Realtime hub: dispatches events
