abreujp
New article: Elixir Project Structure — From mix new to a Growing Codebase
I’ve published a new article in my Elixir learning series on dev.to exploring project structure — what happens when an Elixir project outgrows a handful of modules pasted into IEx, and how a real Mix project keeps everything navigable as it grows.
What the article covers
- Spinning up a fresh project with
mix newand walking through the anatomy of the default layout - File paths mirroring module names, with a before/after of a module that lived in the wrong place
- Growing
lib/with real modules (a small Todo feature) and watching the tree branch into subdirectories - Running the project with
mix runand dropping back into IEx withiex -S mix priv/for runtime assets the code reads at startuptest/for the project’s own testsconfig/andconfig/runtime.exs, and the difference between build-time and runtime configuration- Drawing boundaries so a project stays navigable — what’s internal, what’s external, and what other code is allowed to reach
With complete working examples you can copy into a real Mix project, you’ll learn how a project’s directory map and module naming keep a growing codebase readable — a big step toward organizing Elixir code confidently.
Check it out:
Trending in Blog Posts
A deploy killed my OTP processes but not the containers running my AI agents. That mismatch kept a kanban card “executing” for eighteen h...
New
My first real blog post is up! Got five minutes? Come break some stuff. I put five demos in it, and they’re meant to be played with. Kill...
New
I run a kanban of AI coding agents, and one afternoon the board showed three tasks running while the profile page on the same screen said...
New
I wrote a post on how to implement a feature flag system and A/B testing in an Elixir app with no need for third-party services or librar...
New
Following up on Making `dns_erlang` fast: binary tricks for the BEAM, there’s our second post in our series on making erldns, an authorit...
New
A small quality-of-life improvement to my blog that makes it easier to keep technical posts up to date with a revision history.
https://...
New
Wrote a post about how I set up HTML email templates in Phoenix using the template renderer with Gettext and verified routes, CSS inlinin...
New
Other Trending Topics
Hey there,
I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first.
...
New
Hi everyone :waving_hand:
I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly)
AI dream has many faces, but general...
New
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #code-sync
- #discussion
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #elixirconf-us
- #full-time-contract
- #podcasts-by-brainlid
- #blog-post
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #elixirconf-eu
- #processes
- #security
- #api
- #forms
- #performance










Showing Posts 1 to 3- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
roflbobl
Nice article! In regards to enforcing boundaries, check this lib out! Boundary — boundary v0.10.4 its really neat when you work on a big project.
abreujp
Thanks! Boundary sounds great for exactly that. I’ll give it a look. Appreciate it!
widianto
Nice article!