A3 Platform Architecture Reference

SkillFiles & storage

Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the A3 Platform Architecture Reference skill

What this skill tells your AI

The instructions your AI receives, as published by fdu-ins/insurance-skills in Skills/a3-architecture/SKILL.md and read by ahel’s review.

Overview

A3 is a full-featured SaaS platform for insurance agent management built by Trusted American Insurance Agency. It provides CRM, enrollment management, commission tracking, compliance tools, and agent support.

Tech Stack

LayerTechnology
FrontendEmber.js 6.9 (Octane) with TypeScript, Glimmer GTS components
BuildVite + Embroider
StylingTailwind CSS 4 + Bootstrap 5
StateWarpDrive (next-gen Ember Data)
DatabaseCloud Firestore (NoSQL)
Realtime DBFirebase Realtime Database (status tracking)
File StorageGoogle Cloud Storage
AuthFirebase Authentication + ember-simple-auth
BackendGoogle Cloud Functions (Node.js 22, TypeScript)
SearchAlgolia
PaymentsStripe
EmailMailgun
DocumentsPandaDoc
CRM SyncHubSpot, Salesforce
Error TrackingSentry
Customer SupportIntercom
State MachinesXState 5
ChartsHighcharts 12
MapsGoogle Maps
DeploymentNetlify (frontend), GCP (backend)
IaCTerraform

Directory Structure

A3/
├── app/                          # Ember.js frontend application
│   ├── abilities/     (101)      # ember-can permission definitions
│   ├── adapters/      (11)       # Data source adapters
│   ├── builders/      (2)        # API call builders
│   ├── components/    (436)      # Glimmer GTS components
│   ├── config/        (5)        # App configuration
│   ├── controllers/   (varies)   # Controllers (only for query params)
│   ├── handlers/      (2)        # Request handlers
│   ├── helpers/       (2)        # Template helpers
│   ├── models/        (136)      # Ember Data models
│   ├── modifiers/     (1)        # DOM modifiers
│   ├── routes/        (333)      # Route definitions
│   ├── serializers/   (16)       # Data serializers
│   ├── services/      (12)       # Application services
│   ├── session-stores/(1)        # Auth session storage
│   ├── styles/        (1)        # Tailwind CSS entry point
│   ├── templates/     (158)      # GTS route templates
│   ├── transforms/    (5)        # Attribute transforms
│   └── utils/         (19)       # Utility functions
├── functions/                    # Google Cloud Functions backend
│   ├── src/
│   │   ├── auth/                 # Auth triggers
│   │   ├── database/             # Realtime DB triggers
│   │   ├── firestore/            # Firestore document triggers
│   │   ├── https/                # HTTPS endpoints
│   │   ├── pubsub/               # Pub/Sub triggers
│   │   ├── storage/              # Cloud Storage triggers
│   │   ├── models/               # TypeScript interfaces
│   │   ├── types/                # Type definitions
│   │   └── utils/                # Shared utilities
│   └── lib/                      # Compiled output
├── tests/                        # Test suites (807 files)
│   ├── acceptance/               # User flow tests
│   ├── integration/              # Component tests
│   └── unit/                     # Logic tests
├── translations/                 # i18n files
├── types/                        # Global TypeScript types
├── algolia/                      # Algolia search config
├── terraform/                    # Infrastructure as Code
├── emulator-data/                # Firebase emulator snapshots
├── config/                       # Ember.js config
├── docs/                         # Documentation
└── public/                       # Static assets

Data Flow Architecture

Read Flow (Frontend → Firestore)

User visits route
  → Route.model() calls store.query() or store.findRecord()
    → WarpDrive Store dispatches to adapter
      → CloudFirestoreAdapter reads from Firestore
        → CloudFirestoreSerializer normalizes response
          → Store caches record
            → GTS template renders via @model
              → Glimmer component displays data

Write Flow (Frontend → Firestore → Triggers)

User submits form
  → Component @action or ember-concurrency task
    → model.save() via WarpDrive Store
      → CloudFirestoreAdapter writes to Firestore
        → Firestore document created/updated
          → Cloud Function trigger fires
            → Side effects: email, Algolia sync, audit trail, webhooks
              → Real-time listener updates frontend Store
                → Component re-renders with updated data

Third-Party Integration Flow

Frontend component → REST adapter (adapter/firebase.ts)
  → Cloud Function HTTPS endpoint
    → Third-party API (Stripe, Mailgun, PandaDoc, etc.)
      → Response → Firestore document update
        → Real-time listener → Frontend update

Domain Model Map

Core Entities

  • Agency — Insurance agency (primary organizational unit)
  • User — Platform user (agent, admin, super admin)
  • Client — Contact/person being insured
  • Carrier — Insurance carrier company

Business Entities

  • Enrollment — Insurance enrollment record
  • Contract — Agent-carrier contract
  • Group — Group insurance plan
  • Quote — Insurance quote
  • Membership — Client membership

Financial

  • Statement — Commission statement
  • Transaction — Financial transaction

Communication

  • Activity — Audit trail / activity log
  • Message — Internal messaging
  • Ticket — Support ticket
  • Inquiry — Lead inquiry

Associations

  • Affiliation — Agent-agency relationship
  • License — Agent license record
  • Event — Calendar/marketing event

Attachment Patterns

Most entities have associated:

  • *-file — File attachments (stored in Cloud Storage)
  • *-note — Text notes
  • activity — Audit trail entries

Route Map

Public Routes

RoutePurpose
/loginUser authentication
/registerNew user registration
/resetPassword reset
/onboardingPost-registration setup
/client/:idPublic client profile
/client-form/:idPublic client form
/order/:idOrder page
/sessionSession management

Authenticated Routes (/a3/...)

RoutePurpose
/a3Dashboard
/a3/clientsClient (contact) management
/a3/enrollmentsEnrollment management
/a3/groupsGroup management
/a3/agenciesAgency management
/a3/carriersCarrier information
/a3/contractingContract management
/a3/statementsCommission statements
/a3/settingsUser settings
/a3/toolsQuote tools
/a3/calendarCalendar
/a3/leadsLead management
/a3/notificationsNotifications
/a3/searchGlobal search
/a3/supportSupport tickets
/a3/resourcesResources
/a3/knowledge-hubKnowledge base
/a3/marketing-eventsMarketing events
/a3/readiness-reportReadiness report
/a3/servicesServices (websites)

Admin Routes (/admin/...)

RoutePurpose
/admin/accountingFinancial management
/admin/agenciesAgency administration
/admin/carriersCarrier management
/admin/clientsClient administration
/admin/contractingContract admin
/admin/enrollmentsEnrollment admin
/admin/enrollment-issuesIssue tracking
/admin/eventsEvent management
/admin/groupsGroup admin
/admin/inquiriesLead/inquiry management
/admin/marketingMarketing tools
/admin/messagesMessaging
/admin/notificationsNotification management
/admin/productsProduct management
/admin/reportingReports
/admin/searchAdmin search
/admin/settingsSystem settings
/admin/ticketsSupport ticket admin
/admin/usersUser management

Service Map

ServiceFilePurpose
storeapp/services/store.tsWarpDrive data store with custom aggregation methods
sessionapp/services/session.tsFirebase Auth + MFA + ember-simple-auth
current-userapp/services/current-user.tsLoaded user data and permissions
searchapp/services/search.tsAlgolia search integration
pdfapp/services/pdf.tsPDF generation/manipulation
csvapp/services/csv.tsCSV export
xlsxapp/services/xlsx.tsExcel export
analyticsapp/services/analytics.tsEvent tracking
tourapp/services/tour.tsShepherd.js onboarding tour
recent-recordsapp/services/recent-records.tsRecently viewed record tracking

Key Configuration Files

FilePurpose
app/config/environment.jsFirebase config, API endpoints, feature flags
firebase.jsonFirebase project config, emulator settings
firestore.rulesFirestore security rules (~101KB)
firestore.indexes.jsonComposite indexes (~235KB)
storage.rulesCloud Storage security rules
database.rules.jsonRealtime Database rules
ember-cli-build.jsBuild config (Embroider, split routes)
vite.config.mjsVite build config (Tailwind, PWA)
app/router.tsRoute definitions
tsconfig.jsonTypeScript configuration
netlify.tomlNetlify deployment config

Development Environment

  • Frontend dev: ember serve or vite dev
  • Backend dev: Firebase Emulator Suite (auth, firestore, functions, storage, pubsub)
  • Emulator data: emulator-data/ contains snapshots for seeding
  • Tests: ember test (runs in browser via testem)
  • Linting: ESLint, Prettier, Stylelint, ember-template-lint

Further Investigation Links

When you need deeper knowledge about specific areas:

Signals

GitHub stars
73
Forks
19
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
a3-architecture
Source
github.com/fdu-ins/insurance-skills