Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns
From a3-pluginnpx claudepluginhub trusted-american/marketplace --plugin a3-pluginThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
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.
| Layer | Technology |
|---|---|
| Frontend | Ember.js 6.9 (Octane) with TypeScript, Glimmer GTS components |
| Build | Vite + Embroider |
| Styling | Tailwind CSS 4 + Bootstrap 5 |
| State | WarpDrive (next-gen Ember Data) |
| Database | Cloud Firestore (NoSQL) |
| Realtime DB | Firebase Realtime Database (status tracking) |
| File Storage | Google Cloud Storage |
| Auth | Firebase Authentication + ember-simple-auth |
| Backend | Google Cloud Functions (Node.js 22, TypeScript) |
| Search | Algolia |
| Payments | Stripe |
| Mailgun | |
| Documents | PandaDoc |
| CRM Sync | HubSpot, Salesforce |
| Error Tracking | Sentry |
| Customer Support | Intercom |
| State Machines | XState 5 |
| Charts | Highcharts 12 |
| Maps | Google Maps |
| Deployment | Netlify (frontend), GCP (backend) |
| IaC | Terraform |
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
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
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
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
Most entities have associated:
*-file — File attachments (stored in Cloud Storage)*-note — Text notesactivity — Audit trail entries| Route | Purpose |
|---|---|
/login | User authentication |
/register | New user registration |
/reset | Password reset |
/onboarding | Post-registration setup |
/client/:id | Public client profile |
/client-form/:id | Public client form |
/order/:id | Order page |
/session | Session management |
/a3/...)| Route | Purpose |
|---|---|
/a3 | Dashboard |
/a3/clients | Client (contact) management |
/a3/enrollments | Enrollment management |
/a3/groups | Group management |
/a3/agencies | Agency management |
/a3/carriers | Carrier information |
/a3/contracting | Contract management |
/a3/statements | Commission statements |
/a3/settings | User settings |
/a3/tools | Quote tools |
/a3/calendar | Calendar |
/a3/leads | Lead management |
/a3/notifications | Notifications |
/a3/search | Global search |
/a3/support | Support tickets |
/a3/resources | Resources |
/a3/knowledge-hub | Knowledge base |
/a3/marketing-events | Marketing events |
/a3/readiness-report | Readiness report |
/a3/services | Services (websites) |
/admin/...)| Route | Purpose |
|---|---|
/admin/accounting | Financial management |
/admin/agencies | Agency administration |
/admin/carriers | Carrier management |
/admin/clients | Client administration |
/admin/contracting | Contract admin |
/admin/enrollments | Enrollment admin |
/admin/enrollment-issues | Issue tracking |
/admin/events | Event management |
/admin/groups | Group admin |
/admin/inquiries | Lead/inquiry management |
/admin/marketing | Marketing tools |
/admin/messages | Messaging |
/admin/notifications | Notification management |
/admin/products | Product management |
/admin/reporting | Reports |
/admin/search | Admin search |
/admin/settings | System settings |
/admin/tickets | Support ticket admin |
/admin/users | User management |
| Service | File | Purpose |
|---|---|---|
store | app/services/store.ts | WarpDrive data store with custom aggregation methods |
session | app/services/session.ts | Firebase Auth + MFA + ember-simple-auth |
current-user | app/services/current-user.ts | Loaded user data and permissions |
search | app/services/search.ts | Algolia search integration |
pdf | app/services/pdf.ts | PDF generation/manipulation |
csv | app/services/csv.ts | CSV export |
xlsx | app/services/xlsx.ts | Excel export |
analytics | app/services/analytics.ts | Event tracking |
tour | app/services/tour.ts | Shepherd.js onboarding tour |
recent-records | app/services/recent-records.ts | Recently viewed record tracking |
| File | Purpose |
|---|---|
app/config/environment.js | Firebase config, API endpoints, feature flags |
firebase.json | Firebase project config, emulator settings |
firestore.rules | Firestore security rules (~101KB) |
firestore.indexes.json | Composite indexes (~235KB) |
storage.rules | Cloud Storage security rules |
database.rules.json | Realtime Database rules |
ember-cli-build.js | Build config (Embroider, split routes) |
vite.config.mjs | Vite build config (Tailwind, PWA) |
app/router.ts | Route definitions |
tsconfig.json | TypeScript configuration |
netlify.toml | Netlify deployment config |
ember serve or vite devemulator-data/ contains snapshots for seedingember test (runs in browser via testem)When you need deeper knowledge about specific areas: