Hi all,
1. I understand that AEM Core Components are much more advanced than Foundation Components.
Why do Foundation Components exist and when should we use these as opposed to Core Components?
2.Is it true that Components cover front end and Services the back end?
Is the other way possible, like Components for back end and Services for front end?
Appreciate all replies.
Thanks,
RK.
Solved! Go to Solution.
Topics help categorize Community content and increase your ability to discover relevant content.
Views
Replies
Total Likes
Hi @nsvsrk,
To answer your question let’s break both down clearly:
Foundation Components were the original set of components provided with AEM 6.0–6.3.
They are tightly coupled to Classic UI and legacy practices (e.g., JSP, static templates, etc.).
They were meant to offer a starting point for common web content features like titles, text, and images.
Feature | Core Components | Foundation Components |
---|---|---|
Introduced in | AEM 6.3+ (SPA-friendly) | AEM 6.0 and earlier |
Technology | Sling Models, HTL, Editable Templates | JSP, Classic UI |
Flexibility | Modern, extensible, configurable | Rigid, requires heavy customization |
Maintenance | Actively maintained by Adobe | Legacy — not enhanced anymore |
Recommended for | All new projects | Only legacy projects or migration bridges |
Only if you’re maintaining an old AEM implementation based on Classic UI or static templates.
Never for new development — always go with Core Components for extensibility, security, and future-proofing.
Components:
Represent UI elements (frontend) like carousel, image, title, etc.
Handle rendering using HTL (or JSP in legacy).
Use Sling Models for backend logic tied to frontend behavior (data fetching, structure, etc.)
Services:
Represent reusable backend logic (e.g., search, API integrations, user management).
Typically Java interfaces/implementations registered via OSGi.
Not directly tied to UI — consumed by components, servlets, or workflows.
Technically yes (they can call services or contain logic), but they shouldn’t replace services for backend logic.
Keeping business logic in services maintains clean separation of concerns.
Not directly. Services don’t render anything — they just supply data.
You might expose services via Servlets, GraphQL, or REST APIs, which the frontend (e.g., a SPA or HTL component) can consume.
References: https://experienceleague.adobe.com/en/docs/experience-manager-65/content/sites/authoring/siteandpage...
https://experienceleague.adobe.com/en/docs/experience-manager-core-components/using/introduction
Hope that helps!
Hi @nsvsrk ,
I hope this can help.
1. Foundation Components were the original set of AEM components (pre-6.3), used in legacy projects. They are outdated, based on JSP and Classic UI.
2. Yes - Components are for the frontend/UI, and Services handle backend logic. Reversing roles isn't ideal:
Keep components for rendering and services for business logic.
Hi @nsvsrk,
To answer your question let’s break both down clearly:
Foundation Components were the original set of components provided with AEM 6.0–6.3.
They are tightly coupled to Classic UI and legacy practices (e.g., JSP, static templates, etc.).
They were meant to offer a starting point for common web content features like titles, text, and images.
Feature | Core Components | Foundation Components |
---|---|---|
Introduced in | AEM 6.3+ (SPA-friendly) | AEM 6.0 and earlier |
Technology | Sling Models, HTL, Editable Templates | JSP, Classic UI |
Flexibility | Modern, extensible, configurable | Rigid, requires heavy customization |
Maintenance | Actively maintained by Adobe | Legacy — not enhanced anymore |
Recommended for | All new projects | Only legacy projects or migration bridges |
Only if you’re maintaining an old AEM implementation based on Classic UI or static templates.
Never for new development — always go with Core Components for extensibility, security, and future-proofing.
Components:
Represent UI elements (frontend) like carousel, image, title, etc.
Handle rendering using HTL (or JSP in legacy).
Use Sling Models for backend logic tied to frontend behavior (data fetching, structure, etc.)
Services:
Represent reusable backend logic (e.g., search, API integrations, user management).
Typically Java interfaces/implementations registered via OSGi.
Not directly tied to UI — consumed by components, servlets, or workflows.
Technically yes (they can call services or contain logic), but they shouldn’t replace services for backend logic.
Keeping business logic in services maintains clean separation of concerns.
Not directly. Services don’t render anything — they just supply data.
You might expose services via Servlets, GraphQL, or REST APIs, which the frontend (e.g., a SPA or HTL component) can consume.
References: https://experienceleague.adobe.com/en/docs/experience-manager-65/content/sites/authoring/siteandpage...
https://experienceleague.adobe.com/en/docs/experience-manager-core-components/using/introduction
Hope that helps!
Hi,
Here are my thoughts:
1. Why do Foundation Components exist, and when should we use these instead of Core Components?
As far as I know—and depending on the specific component type—Foundation Components are still used in certain core functionalities. For example, the Page Core Component inherits from the Foundation Page Component (wcm/foundation/components/basicpage/v1/basicpage
).
2. Is it true that Components handle the front end and Services the back end?
Assuming you're referring to AEM components: a component is essentially a self-contained unit of functionality that can be reused across pages. It may depend on other components, but it generally lives independently.
Within that scope, a component can include only frontend elements—like a simple <div>
that triggers JavaScript—or only backend logic that performs a process without rendering any UI. While those are more edge cases, the most common implementation of a component includes both a frontend (rendered view) and a backend (logic or data access).
Hope this helps
Views
Replies
Total Likes