phoenix
Installation
SKILL.md
Phoenix Development
Full-stack guidance for production Phoenix + LiveView applications. Covers the Elixir language layer, Phoenix framework conventions, Ecto data access, LiveView interactivity, HEEx templating, forms, and testing.
For API contract design and HTTP semantics, see /api-design. For domain modeling and schema evolution, see /domain-design. For responsive CSS and Tailwind v4, see /css-responsive. For design system and accessibility, see /ux-design. For observability, see /observability.
1. Elixir Idioms
-
Variables are immutable but rebindable — block expressions (
if,case,cond) must bind their result to use it:# WRONG — rebinding inside `if` has no effect outside if connected?(socket), do: socket = assign(socket, :val, val) # RIGHT — bind the block result socket = if connected?(socket), do: assign(socket, :val, val), else: socket