Aaron Weiker 2e7a822b6b docs: idiomatic Elixir and Phoenix patterns with verified source citations
Extracted patterns from Elixir core and Phoenix source code with specific
file:line citations, then verified all citations against the actual source
in a second pass.

Structure:
- patterns/ — Elixir core patterns (GenServer, errors, data, types, etc.)
- phoenix/ — Phoenix-specific patterns and deviations
- comparison/ — Elixir vs Phoenix side-by-side
- smells/ — Anti-patterns and common mistakes
- changelog/ — Daily Elixir/Phoenix PR digest (auto-updated)
2026-04-29 22:59:17 -07:00

Idiomatic Elixir & Phoenix Patterns

Patterns, conventions, and code smells extracted directly from the Elixir and Phoenix source code — with citations to specific files and line numbers.

This is not opinion. This is what the source actually does.

Source Versions

  • Elixir: main branch (cloned 2026-04-29)
  • Phoenix: main branch (cloned 2026-04-29)

Structure

Core Patterns (patterns/)

  • GenServer Patterns — Client/server separation, callbacks, state design
  • Error Handling — Error tuples, raise vs return, with chains
  • Data Transforms — Pipelines, Enum/Stream idioms, reduce patterns
  • Process Design — Supervision trees, process lifecycle, naming
  • Testing — ExUnit patterns, assertions, test organization
  • Documentation — @moduledoc, @doc, @spec conventions
  • Typespecs — Type definitions, opaque types, when to use what
  • Macros — Macro patterns, hygiene, compile-time work
  • Behaviours — Behaviour design, callbacks, optional callbacks
  • Modules — Module organization, naming, structure

Phoenix Patterns (phoenix/)

Comparison (comparison/)

Code Smells (smells/)

Philosophy

Every pattern here is backed by a source citation. If a pattern can't point to where the Elixir or Phoenix team actually does it, it doesn't belong here.

Contributing

Found a pattern worth adding? Open a PR with:

  1. The pattern name
  2. The exact file path and line range
  3. Why it matters
  4. What the anti-pattern looks like
S
Description
Idiomatic Elixir and Phoenix patterns extracted from source code with file path + line number citations
Readme MIT 359 KiB
Languages
Markdown 100%