Skip to main content

Experience Management

AEM Gems: Granite UI Common Attributes

In Adobe Experience Manager (AEM), Granite UI is the foundation UI framework to build touch-enabled UI consoles and component dialogs. It provides a set of out-of-the-box (OOTB) components that you can use to build consoles or component dialogs. In this blog, I want to talk about a small tech gem that a lot of AEM […]

Mastering

Mastering AEM Dispatcher Part 5: Managing Redirects Like a Master

Most websites have a large number of redirects which they need to manage. Perficient/Digital just contributed a feature to ACS AEM Commons, the Redirect Map Manager, which makes managing these redirects a breeze. First, though why do websites need so many redirects? Redirects can come from: Legacy or Moved Pages / Assets Landing Page Vanities […]

Concurrency

2 Common Concurrency Pitfalls in AEM and How to Avoid Them

Concurrency issues are both disastrous and difficult to detect in non-production loads. They are more difficult to reproduce than most bugs because they specifically rely on multiple operations happening at/around the same time, which is difficult to reproduce in a development or local environment. Since concurrency bugs are hard to find and diagnose, we should […]

Your Pre-Planning Checklist for an AEM Implementation

Making a list and checking it twice…  ‘Tis the season for lists. Our children are making lists, and we too are staying organized with lists – both personally and while at work. Whether its all the people you have to buy presents for in your eight-sibling family, or a slightly larger (okay – much, much […]

Show Dynamic Values in i18n Variable Using JavaScript

Use case: pass dynamic values in i18n and get them translated using Adobe Experience Manager (AEM) translator. Let’s say you want to show a pop-up message to end users with their name and the product’s name. You will need to use i18n so that the message gets translated based on the internationalization. The steps below […]

So You’ve Got Bugs, Huh?

Whenever you write JavaScript, you’re risking creating bugs. The risk of bugs increases proportionally as the amount of code and code complexity increases. There are ways to avoid bugs; I recommend ESLint, JSHint, or a language extension such as TypeScript to help reduce the introduction of bugs into your codebase. This post isn’t meant to […]

Reusable Components for a CMS, Using the Revealing Module Pattern

Before we get started, I recommend reading about the revealing module pattern and closure, if you’re not already familiar with them. When you are building components for use in a CMS, it’s important to understand that you have less control over the use of these components than you may initially think. Programming these blocks in such […]

Wrong Way

No Matter What Anyone Tells You There’s No TouchUI Under /etc

I’m posting a little-known fact to save anyone else the frustration of banging their head against why this doesn’t work for a couple hours: Except for a few specific conditions, you cannot use TouchUI to edit any components under the /etc directory. There you have it! That’s really the crux of the blog post! Of […]

Using BEM-Style CSS Syntax in SCSS

Modular component styles are becoming significantly important in modern UI trends. Handling scalability while decreasing naming convention differences is a necessary step towards code cohesion. Disclaimer: I use a slightly modified flavor of BEM syntax, feel free to use traditional BEM, or some other flavor of your own. When developing UI components, specifically for use […]

AEM Touch UI Dialog Validation New Best Practice: Use Foundation-Validation

Oftentimes, AEM developers will be asked to develop a validator for the component dialog. Back in the Classic UI dialog days, you would probably write a JavaScript function for dialog before submitting an event. In Touch UI dialog, if you’ve Googled around, you probably found a lot articles/codes to use jQuery based validator, i.e. $.validator.register({}). Recently, I […]

Istock 468157964 Featured Image

Mastering the AEM Dispatcher Part 4: Sharing Content with SSI

We’re delving deeper into the AEM Dispatcher as we continue in the series, Mastering the AEM Dispatcher. In this post, we’ll discuss how to share content with non-AEM applications in the Dispatcher using SSI includes. Integrating AEM and non-AEM websites is tricky. To create a consistent look and feel, you need to share the stylesheets, header, […]

Istock 172735727 Featured Image

Mastering the AEM Dispatcher Part 3: Shared Configurations

This is the third post in the series Mastering the AEM Dispatcher where we delve into the mysteries of this opaque technology. In this post, we’ll discuss how to set up configuration variables in the AEM Dispatcher to reduce redundancy and make it easy to compare and sync configuration files across environments.   The Starting […]

Load More