Architecture Overview
Understand the system architecture, data model, and design decisions
System Overview
Airogel CMS is a multi-tenant content management system built on Ruby on Rails with flexible schema-based content modeling, Liquid templating, a REST API, and a constituent identity layer for CRM and member portals.
Multi-Tenancy
Uses account-based multi-tenancy powered by the acts_as_tenant gem. Accounts are isolated workspaces containing all CMS content.
Core Entity Relationships
- Account - Tenant workspace
- Collections - Content groupings
- Blueprints - Schema definitions
- Entries - Content items
- Blueprint Values - Field data
- Events - Attendable events with tickets and registrations
- Constituents - CRM records for donors, members, volunteers, and attendees
Constituent Identity
Staff User authentication and public constituent authentication are distinct systems. A shared, non-tenant-scoped platform layer (Principal and verified identifiers) handles login once via a central auth origin; each account then resolves that login to its own tenant-scoped Constituent record, which carries CRM data, consent, and role edges like registrations, memberships, and donations. See Constituents & CRM for details.
Request Flow
Public website requests are handled by ContentController which finds content paths, loads entries, and renders Liquid templates.