Add custom ngx: Iconify icon pack with brand SVGs for MongoDB, Cloudflare, Fly.io, AWS, Brevo, Express, Meetup, Mailchimp, OS Maps, Ramblers HQ, and NGX Ramblers. Register icon packs lazily in app.module.ts. Replace devicon dependency with project-specific custom icons.
The importSecretsFromDatabase function opens a mongoose connection to load secrets but never closes it, leaving the Node.js event loop alive indefinitely. This caused the Fly.io deploy step to hang forever in CI. Add disconnect() to mongoose-client and call it after loading secrets.
Add 15-minute timeout to Fly.io deploy step to prevent indefinite hangs. Enable cancel-in-progress on the deploy concurrency group so new pushes automatically cancel stuck deployments.
Use dateUtils.asDateTime() factory method instead of DateTime.fromObject() to ensure consistent Europe/London timezone handling across all environments.