Learn PHOENIX with Real Code Examples
Updated Nov 27, 2025
Installation Setup
Install Elixir and Erlang/OTP
Install Phoenix archive via `mix archive.install hex phx_new`
Create new project with `mix phx.new my_app`
Install dependencies with `mix deps.get`
Start server using `mix phx.server`
Environment Setup
Install Erlang/OTP
Install Elixir
Install Phoenix archive
Generate project with `mix phx.new`
Install dependencies and start server
Config Files
config/config.exs - main configuration
config/dev.exs/prod.exs/test.exs - environment-specific configs
lib/my_app_web/router.ex - routes
lib/my_app_web/controllers/ - controllers
lib/my_app_web/templates/ - templates
Cli Commands
mix phx.new my_app -> create project
mix phx.gen.html/contexts -> generate scaffolding
mix ecto.create/migrate -> database setup
mix phx.server -> run development server
mix test -> run tests
Internationalization
Manual translation via Gettext
Support for multiple locales
Locale switching in controllers
UTF-8 compliant templates
Community libraries for i18n support
Accessibility
Browser-based UI
ARIA attributes supported in templates
Keyboard navigation possible in LiveView
Accessible forms with CSRF protection
Internationalization support
Ui Styling
HEEx templates for HTML rendering
Integrate CSS frameworks like Tailwind or Bootstrap
LiveView for reactive UI without JS frameworks
Webpack or esbuild for assets
Support for accessibility and responsive design
State Management
Stateless HTTP requests
Channels manage real-time state per connection
Ecto schemas represent database state
Supervision trees manage process state
Caching via ETS or external backends
Data Management
Database access through Ecto
Migrations for schema versioning
Changesets validate and transform data
PubSub system manages messaging
ETS or Redis for temporary data