Hi, I mentioned in IRC earlier today that I'd really like to see us organize our source code so that OTP applications are wholly contained in their own subdirectories and are organized according to the standard OTP application layout. In a world where we've refactored the monolithic 'couch' application into a few more focused applications the layout could look something like this: src/ couch_core/ c_src/ include/ priv/ src/ test/ couch_config/ src/ ... ibrowse/ include/ src/ test/ We've already followed this layout for couch_index, couch_mrview and couch_replicator -- I'd just like to "finish the job". A few of the advantages that I see are a) We can extract these individual applications using e.g. git-subtree and use them on their own as we see fit. b) We can remove the external dependencies (ibrowse, mochiweb) from our git repository and instead have the build system check them out directly from upstream. Of course they'd still show up directly in the release artefacts. c) Rebar is the de facto build system for most other Erlang/OTP projects and it expects to see this kind of layout. If there are no objections we can set about achieving this after we branch 1.3.x. Regards, Adam