Expand my Community achievements bar.

SOLVED

apps/components folder structure

Avatar

Level 4

Hello,

I just wanted to check if there is any guide on the folder structure for the components. I have researched a bit and found out about the /content and /structure folder. I am not sure if it's old school or still applies nowadays.

Additionally, when we create a project using the maven archetype, by default it puts all the core proxy components directly under the components folder. Now, if you're working on a project from the scratch and expecting to add many custom components, is it a good idea to move those core proxy components to their own folder (any suggestion for the folder name would be appreciated)? Also, any example of categorizing custom components would help too.

In short, just wanted to get an idea/suggestion on what kind of folder structure other projects are following when they have a mix of core and a lot of custom components.

Any sample/example folder structure would be appreciated.

Thank you!

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

Hi, this is ok if you separte the core component from custom, the Author never realised the differenc. It is mostly the developer who has to deal with it.

 

One idea cloud be

/apps/<group>/<tenant>/component/content/core
/apps/<group>/<tenant>/component/content
/apps/<group>/<tenant>/component/structure
/apps/<group>/<tenant>/clientlibs

/conf/<group>/<tenant>
/content/<group>/<tenant>


Arun Patidar

View solution in original post

7 Replies

Avatar

Community Advisor

Hi @webdev91 

 

The project structure and the guidelines depends on the type of project architype that you have created. If you can try creating the new project from below link reference it would be easy for you 

 

AEM cloud project can be created from new project wizard, please refer to link below 

https://experienceleague.adobe.com/docs/experience-manager-cloud-manager/content/getting-started/pro...

 

 

Sample project for on-prem

https://github.com/adobe/aem-project-archetype/tree/develop/src/main/archetype

Create using latest architype version below:

https://experienceleague.adobe.com/docs/experience-manager-core-components/using/developing/archetyp...

 

 

 

Link for best practise:

http://www.aemcq5tutorials.com/tutorials/adobe-aem-and-cq5-best-practices/

https://experienceleague.adobe.com/docs/experience-manager-65/forms/use-aem-forms-workspace/folder-s...

 

Avatar

Level 4

Hi @Jagadeesh_Prakash,

Sorry for the confusion but I am not looking for the overall folder structure. I am only looking for the folder structure under the components folder especially when you have a lot of components (both core and custom) then how do you manage the folder structure for the components?

Avatar

Community Advisor

Hi @webdev91,

 

The folder structure is always a good practice to follow and there ain't any mandatory folder structure to follow.

 

The best way to follow would be using the archetype-generated folder structure. As you said, yes the proxy components are kept under components, that's where we can organize our component folders. I am currently following this structure for one of the projects, where we hold multiple sub-projects under a parent. See if this aligns to your liking.

 

apps/
        my-project/
                         clientlibs
                         components/
                                             sub-project
                                             content
                                             structure
                                             custom
                         config
                         i18
                         templates
                         install

Under content, I have all my proxy components + common components that could be used in all sub projects, named my content components group name as my-project-common

 

I hope this helps.
Thank you,

Sravan

 

Avatar

Correct answer by
Community Advisor

Hi,

Hi, this is ok if you separte the core component from custom, the Author never realised the differenc. It is mostly the developer who has to deal with it.

 

One idea cloud be

/apps/<group>/<tenant>/component/content/core
/apps/<group>/<tenant>/component/content
/apps/<group>/<tenant>/component/structure
/apps/<group>/<tenant>/clientlibs

/conf/<group>/<tenant>
/content/<group>/<tenant>


Arun Patidar

Avatar

Level 4

Hi @arunpatidar

I also thought of putting core components inside the core folder but I created the below folder structure. I hope that's ok.

/apps/<tenant>/components/content
/apps/<tenant>/components/core
/apps/<tenant>/components/structure

I will further categorize components inside the content folder based on their nature.

Thank you!

Avatar

Community Advisor

This also fine unless the developer are not confused with folder structures.



Arun Patidar

Avatar

Employee Advisor

In our project also we are following below folder structure to organize the components -

 

  • /apps/<project/site>/components/structure —> project or site specific page components goes here
  • /apps/<project/site>/components/content –> project or site specific custom authorable components goes here