Is Phoenix generated folder structure a community best practice?

Hi everyone. I’m pretty new to Elixir and Phoenix, and I chose it to build a web app mainly to learn a new ecosystem. It has been a lonely journey so far, so I really don’t know how people structure projects and infrastructure on a professional setting. My question is this, how strongly do you adhere to the folder layout of the generated code? Is that the standard most people use, or is it common to deviate from it as projects grow?

In my experience, having worked on ~15 Elixir projects for various clients and employers, it is common to use the generated structure. However, I now use a different structure that I much prefer.

1 Like

I’d say that it’s common to follow the structure loosely. More so for the myapp_web folder and less so for the myapp folder. In the end phoenix really only suggests a way to structure the core portion of your app and doesn’t want to prescribe anything there.

I was mainly concerned with how new people would feel whein joining a non standard project, like this, but I guess it can’t be too bad. Thanks for the quick responses and the ecouragement

Well, live-grep’ing will always exist. I care exactly zero about project structure when I get hired to work on existing ones. I just start looking for the bits and pieces that integrate with the framework(s) and from then on it’s trivial to follow the dependency graph.

(And I used to care about this stuff. A lot. But came to realize that it’s not as important as I thought – and it might even have near-zero importance, barring the unlikely cases where somebody basically sabotages the readability and intuitive understanding of projects, which never happened to me.)

If you’re looking for more structure you want to look at Ash. It has opinions on what the primitives of an application should be. Phoenix doesn’t.

2 Likes