📄️ Domain Driven Design (DDD)
When it comes to the backend we've used the DDD approach. The code is neatly divided into independent modules defining theirs own DTOs, use cases, and other typical structures you'd find in a DDD app. While we don't follow all practices you may stumble upon in typcial DDD implementations, such as for example event emitters, a large part of it is here and if you have previous experience with DDD you should be able to navigate through the codebase just fine.
📄️ Atomic Design
On the other hand, on frontend we're using Atomic Design. Our components are divided into a clear hierarchical structure of atoms --> molecules --> organisms and finally templates.