GoulvenClech

GoulvenClech

Directory structure with Elixir/Phoenix

Hi everyone :wave: I’m excited to share an article detailing how we have reorganized our Elixir/Phoenix project’s directory structure.

While the Phoenix documentation provides a basic project structure example, our real estate startup has grown over three years, and our backend structure has become inconsistent and messy due to various developers adding features without a cohesive plan.

So in this article, I talk about the decision process we put in place, the iterative process we followed, the mistakes we avoided, and the final proposal chosen. I also talk about my mistakes over the past few years, and how I’m growing as a young tech lead.

I hope this will interest some of you :blush:

Most Liked

dyowee

dyowee

This looks like a Vertical Slice Architecture folder structure, right? :slight_smile:

GoulvenClech

GoulvenClech

Oh I didn’t know that has a name, so maybe. I’ll read about “Vertical Slice Architecture folder structure”–thank’s for the share.

dyowee

dyowee

Thank you for writing up the article too :slight_smile:

Where Next?

Popular Backend topics Top

First poster: bot
Taking PHP Seriously - Slack Engineering. Slack uses PHP for most of its server-side application logic, which is an unusual choice these...
New
First poster: bot
In this post we’re going to be looking at a more advanced use of Gleam’s type system, known as phantom types. Hopefully by the end of thi...
New
First poster: AstonJ
They expect you to make a onepage application (SPA) The polaris design system officially only supports react Integration with the s...
New
First poster: bot
Like, on a scale from c to rust? issue c zig (release-safe) rust (release) out-of-bounds heap read/write none runtime runtime ...
New
First poster: brennan
The perspective of an ignorant computer science undergrad It’s likely that you read the title of this post and thought “what is this guy ...
New
brainlid
We take a deeper dive with Nathan Long into IOLists in Elixir. We cover what they are, how they work, the power they have when concatenat...
New
brainlid
There is a new community resource available on writing “Safe Ecto Migrations”. When we get a migration wrong, it can lock up your product...
New
StuntProgrammer
In building lofi.limo, media storage and distribution naturally came up. I have songs, announcements, and background image loops which I ...
New
penelopa
Learn how set up an RTMP server for free using the open-source Red5 software. This tutorial covers all steps from downloading the code fr...
New
brainlid
Episode 264 of Thinking Elixir. News includes Phoenix v1.8 shipping with an AGENTS markdown file for new apps to enhance coding agent exp...
New

Other popular topics Top

Devtalk
Hello Devtalk World! Please let us know a little about who you are and where you’re from :nerd_face:
New
Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 24245 395
New
AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
Maartz
Hi folks, I don’t know if I saw this here but, here’s a new programming language, called Roc Reminds me a bit of Elm and thus Haskell. ...
New
foxtrottwist
A few weeks ago I started using Warp a terminal written in rust. Though in it’s current state of development there are a few caveats (tab...
New
Help
I am trying to crate a game for the Nintendo switch, I wanted to use Java as I am comfortable with that programming language. Can you use...
New
PragmaticBookshelf
Author Spotlight Rebecca Skinner @RebeccaSkinner Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
New
New
PragmaticBookshelf
Leverage Elixir and the Nx ecosystem to build intelligent applications that solve real-world problems in computer vision, natural languag...
New
PragmaticBookshelf
A concise guide to MySQL 9 database administration, covering fundamental concepts, techniques, and best practices. Neil Smyth MySQL...
New