swoosh/phoenix_swoosh
47.1
Weak · 18 September 2026
316
lines of production code
Elixir
primary language
1
measurement over time
What this system is
This system is a library that integrates Swoosh with Phoenix to handle email template rendering. It provides flexible configuration for standalone template rendering and custom file format mappings, allowing developers to define how HTML and text bodies are generated. The project focuses on modernizing Elixir compatibility and standardizing code formatting and documentation.
Behavioural changes
Project maintenance and documentation overhaul
This release introduces a \.formatter.exs\ file to standardize code formatting via \mix format\, updates the \.gitignore\ to cover standard Mix/Hex artifacts, and renames \LICENSE.txt\ to \LICENSE.md\. Documentation is significantly expanded with a new \CONTRIBUTING.md\ guide, a detailed \CHANGELOG.md\ adhering to Keep a Changelog standards, and an updated \README.md\ that clarifies installation, usage (including classic and standalone setups), and customization options.
(repo-wide) · high confidence
Removal of legacy Mix.Config usage
The configuration file has been updated to remove the explicit import of the \Mix.Config\ module. This change aligns the project with modern Elixir/Phoenix standards where \Mix.Config\ is no longer required for standard configuration loading, simplifying the setup.
config · high confidence
Support for standalone template rendering and custom format mappings
The \Phoenix.Swoosh\ macro now supports a 'standalone' mode where templates can be rendered without a Phoenix View module by specifying \:template\_root\ (and optionally \:template\_path\ and \:template\_namespace\). Additionally, users can now customize which email body field (\html\_body\ or \text\_body\) is populated by specific file extensions via the new \:formats\ option, replacing the previous hardcoded logic that mapped \.html\/\.htm\/\.xml\ to HTML and all others to text. The \render\_body/3\ function also now accepts a default empty map for assigns.
lib · high confidence
Test coverage
Added test fixtures and coverage for custom template formats and view inclusion
Added test fixtures and updated tests to cover rendering email bodies with custom template extensions (such as .custom, .htm, and .xml) and to verify the new view-included notifier configuration. The test suite now includes scenarios for rendering with and without assigns, applying layouts to these custom formats, and using the \template\_root\ and \template\_namespace\ options for isolated view resolution.
test · high confidence
Dependencies
Phoenix.Swoosh 1.2.1: Modernized dependencies and Elixir 1.11+ support
This release updates the project to version 1.2.1 and raises the minimum Elixir requirement to 1.11. The dependency manifest has been significantly modernized: Swoosh is now pinned to \~\> 1.5, and the project now supports Phoenix 1.8 (optional) alongside Phoenix View 1.0/2.0. Optional HTTP clients have been updated to include Finch (\~\> 0.8) and Hackney (\~\> 1.10), while Credo is updated to \~\> 1.0 and ExDoc to \~\> 0.26. The package metadata has also been enriched with explicit maintainers, license, and changelog links, and documentation generation now includes markdown formatters.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 47.
Lenses
- Code Health 100
- Architecture 69
- Maturity 32
- Readiness 45
- Security 75
Changes since last survey
- 300 commits — 300 feature/other, 0 fixes
By area
- (root) — 277 commits
- .github/workflows — 17 commits
- lib/phoenix_swoosh.ex — 3 commits
- (repo) — 1 commit
- .github/dependabot.yml — 1 commit
- test/fixtures — 1 commit
Notable commits
- change: --- (#377)
- change: Add custom extension mapping (#290)
- change: Add documentation for custom extension mapping (#292)
- change: Add markdown formatter to docs output (#499)
- change: Bump credo from 1.5.6 to 1.6.0 (#222)
- change: Bump credo from 1.6.0 to 1.6.1 (#223)
- change: Bump credo from 1.6.1 to 1.6.2 (#235)
- change: Bump credo from 1.6.2 to 1.6.3 (#242)
- change: Bump credo from 1.6.3 to 1.6.4 (#247)
- change: Bump credo from 1.6.4 to 1.6.5 (#264)
- change: Bump credo from 1.6.5 to 1.6.6 (#266)
- change: Bump credo from 1.6.6 to 1.6.7 (#269)
- change: Bump credo from 1.6.7 to 1.7.0 (#300)
- change: Bump credo from 1.7.0 to 1.7.1 (#331)
- change: Bump credo from 1.7.1 to 1.7.2 (#348)
- change: Bump credo from 1.7.10 to 1.7.11 (#406)
- change: Bump credo from 1.7.11 to 1.7.12 (#427)
- change: Bump credo from 1.7.12 to 1.7.13 (#447)
- change: Bump credo from 1.7.13 to 1.7.14 (#450)
- change: Bump credo from 1.7.14 to 1.7.15 (#455)
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
swoosh/phoenix_swoosh was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 0b20725b844593e86c99f5f5395b7bf75eecc95c — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.