Production-Ready SaaS Architecture

πŸ„ Gaudaan Multi-Tenant SaaS

The complete platform for Gau Seva organisations across India β€” donations, memberships, adoptions, GauCoins, compliance, and more.

White-label per trust with BYO payment gateways.

πŸ›οΈ
Multi-Tenancy
Subdomain + header resolution, RLS isolation
πŸ’³
BYO Payments
Razorpay, PayU, custom gateways per tenant
πŸ“±
Flutter App
Android/iOS with tenant branding & QR
🧾
PDF Receipts
80G certificates, editable HTML templates
πŸ”
RBAC
Platform Admin β†’ Tenant Admin β†’ App User
πŸ“Š
SaaS Billing
Starter β†’ Premium β†’ Enterprise plans
15+
Modules
80+
API Routes
30+
DB Tables
4
SaaS Plans
3
Admin Roles
∞
Tenants

System Architecture

Complete multi-tenant platform with strict tenant isolation, edge-ready API, and Flutter mobile app.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                             GAUDAAN SaaS PLATFORM                                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                       β”‚
β”‚   DNS / Ingress: *.gaudaan.in β†’ Nginx β†’ tenant resolver middleware                   β”‚
β”‚   api.gaudaan.in (platform API)  |  X-Tenant-Id header (mobile)                      β”‚
β”‚                                                                                       β”‚
β”‚        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚        β”‚  Flutter App   β”‚    β”‚  Platform Admin   β”‚    β”‚  Tenant Admin Web      β”‚      β”‚
β”‚        β”‚  (iOS+Android) β”‚    β”‚  admin.gaudaan.in β”‚    β”‚  tenant.gaudaan.in     β”‚      β”‚
β”‚        β”‚  Tenant-aware  β”‚    β”‚  SaaS owner UI    β”‚    β”‚  /admin                β”‚      β”‚
β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β”‚                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚
β”‚                                      β–Ό                                                β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚   β”‚              Node.js + TypeScript API (Fastify/Express)                  β”‚        β”‚
β”‚   β”‚  Tenant Resolver β”‚ JWT Auth β”‚ RBAC Guard β”‚ Rate Limiter β”‚ Audit Logger   β”‚        β”‚
β”‚   β”‚  ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ──     β”‚        β”‚
β”‚   β”‚  Tenantsβ”‚Authβ”‚Donationsβ”‚Paymentsβ”‚Recurringβ”‚Receiptsβ”‚GauCoinsβ”‚Cows        β”‚        β”‚
β”‚   β”‚  Adoptionsβ”‚Membershipβ”‚Volunteersβ”‚Eventsβ”‚Galleryβ”‚CMSβ”‚Trustβ”‚Compliance     β”‚        β”‚
β”‚   β”‚  Notificationsβ”‚AuditLogsβ”‚SaaS-Billingβ”‚Webhooksβ”‚Storage                  β”‚        β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                    β–Ό                          β–Ό                    β–Ό                   β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
β”‚   β”‚  PostgreSQL        β”‚  β”‚  Redis               β”‚  β”‚  S3 / R2 Storage      β”‚         β”‚
β”‚   β”‚  Multi-tenant RLS  β”‚  β”‚  Cache/Queue/Rate     β”‚  β”‚  Media/PDFs/Docs      β”‚         β”‚
β”‚   β”‚  tenant_id on all  β”‚  β”‚  Limit/Sessions       β”‚  β”‚  CDN-ready URLs       β”‚         β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tenant Resolution

  • Subdomain: trust1.gaudaan.in
  • Header: X-Tenant-Id
  • QR / deeplink token
  • Redis cache (TTL 5min)
  • Tenant lifecycle states

Security & Auth

  • JWT + OTP (SMS/Email)
  • Google / Apple OAuth
  • RBAC: 3-tier roles
  • MFA for admins
  • Rate limiting per route

Payment Engine

  • BYO gateway interface
  • Razorpay + PayU built-in
  • Encrypted keys per tenant
  • Idempotency keys
  • Webhook verification

15+ Platform Modules

Every feature a Gau Seva organisation needs, multi-tenant from day one.

πŸ’Έ
Donations
Causes
πŸͺ™
Gau Coins
Loyalty rewards
πŸ„
Cow Adoption
Sponsor individual cows
πŸŽ–οΈ
Membership
Tiered plans
🀝
Volunteers
Registration
πŸ“…
Events
Online/offline
πŸ–ΌοΈ
Gallery
Albums
πŸ“–
Gau Mahima
CMS content
βš–οΈ
Trust & Compliance
Legal IDs
🧾
PDF Receipts
80G certs
πŸ””
Notifications
FCM push
πŸ“Š
Audit Logs
Full immutable trail
πŸ’Ό
SaaS Billing
Plans
πŸ”—
Webhooks
Idempotent processing
πŸͺ
Trustees
Board members

Tenant Lifecycle

Automated state transitions with grace periods and notifications.

πŸ”§
ONBOARDING
Setup wizard, config
β†’
πŸ§ͺ
TRIAL
14-day free trial
β†’
βœ…
ACTIVE
Fully operational
β†’
⏳
GRACE
7-day grace period
β†’
πŸ‘οΈ
READ_ONLY
View only, no writes
β†’
🚫
SUSPENDED
All access blocked
β†’
πŸ’€
TERMINATED
Data retained 90d

Technology Stack

Production-grade, cloud-native, and India-optimised.

Backend

  • 🟩
    Node.js v20 LTS
    Runtime
  • πŸ”·
    TypeScript 5
    Type safety
  • ⚑
    Fastify / Express
    HTTP framework
  • 🐘
    PostgreSQL 16
    Primary database
  • πŸ”΄
    Redis 7
    Cache & queues

Frontend

  • βš›οΈ
    Next.js 14
    Platform admin
  • πŸ”·
    React + TypeScript
    Tenant admin
  • 🎨
    Tailwind CSS
    Styling
  • πŸ“Š
    Chart.js / Recharts
    Analytics
  • πŸ“
    React Hook Form
    Forms

Mobile

  • 🐦
    Flutter 3.x
    iOS + Android
  • πŸ”„
    Riverpod
    State management
  • πŸ”
    flutter_secure_storage
    JWT storage
  • πŸ””
    firebase_messaging
    FCM push
  • πŸ“·
    qr_code_scanner
    QR onboarding

Infrastructure

  • 🐳
    Docker + Compose
    Containerisation
  • ☁️
    AWS / GCP
    Cloud hosting
  • πŸͺ£
    S3 / R2
    Object storage
  • πŸ”’
    Let's Encrypt
    Wildcard SSL
  • πŸ“ˆ
    Prometheus + Grafana
    Observability

Explore the Platform

Navigate to any section to see the full interactive demo.