01 / 03
The Hanami container is your friend
Hanami's DI container means every dependency is explicit — which makes it trivial to swap in cloud-provided services (SES for mail, S3 for storage, Secrets Manager for keys) at boot time via providers.
ruby# config/providers/mailer.rb Hanami.app.register_provider(:mailer) do prepare { require "aws-sdk-sesv2" } start do register("mailer", Aws::SESV2::Client.new(region: ENV["AWS_REGION"])) end end