Web application
The React application provides contact management, campaign composition, account configuration, and reporting surfaces. It calls the API for authenticated data and operations; it must not embed provider secrets or database credentials.API
The API owns authentication, tenant scoping, validation, campaign state, provider orchestration, and reporting contracts. Every request must remain inside the caller’s authorized organization.Data and processing
PostgreSQL stores application records. Background processing handles asynchronous work such as campaign execution and provider result reconciliation. DEV and PROD use separate runtime and data authorities.Delivery providers
Provider integrations are external boundaries. MailGenie stores only the governed references and runtime configuration required for authorized operations. Provider failures must remain visible and must not be converted into false success states.Deployments to shared DEV or PROD lanes run through GitLab CI/CD. Local deployment commands and direct cluster mutations are not supported operational paths.