For each of the AEM WCM Core Components the WCM Core Component module provides it’s own component variant inheriting all features from the AEM WCM Core Components and enhancing them with functionality.

Each WCM Core Component has it’s own resource type as documented in the Component Overview.

Proxy Component Pattern

To use them you have to follow the best practices as described in the Adobe Component Guidelines. That means following the Proxy Component Pattern you have to create a proxy component for each core component you want to use in your project.


  • You want to use the title component with resource type wcm-io/wcm/core/components/title/v2/title
  • Create your own proxy component e.g. at /apps/my-application/components/title with sling:resourceSuperType=wcm-io/wcm/core/components/title/v2/title
  • Make sure to reference only your project-specific resource type my-application/components/title in your application and content

It is recommended to always reference the Core Component Variant resource type even for those components, that are currently not enhanced by but 100% inherited. It is possible that in future releases feature enhancements will be required.

If you want to customize the components further, follow the Customizing Core Components guidelines.

Component Library

To experiment with the WCM Core Components install the WCM Core Component Library in a local AEM instance.

Setting up your project

If you want to start a new project it is recommended to use the Maven Archtype for AEM and setting the optionWcmioHandler=y. The sets up a new AEM project including the setup for Handler and includes some example usages of WCM Core Components.

When you want to switch an existing project make sure to include all dependency bundles and apply the required system configuration.

Drop-in replacement

The WCM Core Components are designed to be a drop-in replacement for the AEM WCM Core Components. All content properties stored by the original components can also be read by the components, and the generated markup is the same.

Components that store link target information (e.g. Button, Title, Teaser, Image component) can read the link target information from the “old” property (e.g. linkURL). But once the data is edited and saved using the edit dialog, this old property is removed and replaced with the Link Handler-specific properties. That means that a switch back to the original components may require a manual content migration back to the “old” link properties.

Back to top

Version: 1.9.3-2.17.12-SNAPSHOT. Last Published: 2021-11-23.