backend/
module1
module2
module3
frontend/
module1
module2
module3
or
modules/
module1/
frontend
backend
module2/
frontend
backend
module3/
frontend
backend
The choice really depends on what you want to achieve. The first architecture is sort of layering and the second one is about components. Similar struggle goes with MVC versus components (as in desktop GUI etc.). Layers enable you to isolate modules layer by layer, which means, you can build on existing layers. This is used also in the IO/OSI TCP/IP stack. On the other hand components are more granular and can be reused as such – e.g. you can compose desktop GUIs from “widgets”. So what is better for the web? Loooking at the mainstream, which is imho MVC, the first layers architecture seems to be used more. Maybe this question is rlated to asking if asp.net is better than sp.net mvc…