Tower listens for errors in your Elixir app, shapes them into a consistent event, and forwards that event to any reporter you choose; Slack, Rollbar, Sentry, email, custom, or all of them at once.
Captures exceptions, throws, exits, Logger messages, Telemetry events, and Plug errors
Normalizes everything into a %Tower.Event{} struct
Sends that event to one or many configured reporters
Completely decouples error capturing from error reporting
We're working on a standalone visualization board that goes beyond individual errors and bugs. A new way to explore items, trends, and system signals, all in one place.
More insights, same solid foundations.
Custom Reporter
Implement the Tower.Reporter behaviour to send events anywhere: databases, message queues, internal dashboards, anything.
Official Reporter Packages
Pre-built integrations with popular error tracking services.
Choose how Tower reports errors, which log levels it captures, and what metadata is included.
config :tower,
reporters: [
TowerSlack,
TowerEmail
]
Reporters
config :tower,
log_level: :error
Log level
config :tower,
logger_metadata: [
:request_id,
:user_id
]
Metadata
placeholder
placeholder
placeholder
The latest news, technologies, and resources from our team.
September 16, 2025
Tower: Universal and Agnostic Elixir Exception Tracker
We built and open sourced a new Elixir package called Tower that provides Elixir Exception Tracking with many pre-built reporting options available, including E-mail, Slack, local ErrorTracker and popular 3rd party services.
September 16, 2025
Mimiquate at ElixirConf 2025 & open source updates
This year at ElixirConf US, the Mimiquate team took the stage with two talks: Juan Azambuja on Elixir Adoption and the latest features of Elixir Observer, and Gonzalo Rodríguez on exception tracking and Tower. We also unveiled new enhancements to our open source projects, furthering our mission to make Elixir more approachable and reliable.
00000