Day 23 of 40
The Front-End Pipeline
ui.frontend, the separate build, and the trade-offs
By the end of today you should be able to
- Explain what the front-end pipeline is and the problem it solves
- Describe how the ui.frontend module changes when the pipeline is enabled
- Name the trade-offs and constraints of adopting it
- Decide whether your project should use it
The problem
By default, your CSS and JavaScript ship inside the ui.apps package, which means a
one-line CSS fix takes the same route as a Java change: full build, full pipeline, quality gates,
deployment to every tier. Fifteen minutes at best, often much longer.
For teams where front-end work is the majority of change, that is a serious drag. The front-end pipeline decouples the two: front-end artefacts get their own Cloud Manager pipeline and are delivered separately from the AEM code.
How it changes things
- The
ui.frontendmodule builds independently and produces its own deployable artefact. - Cloud Manager gains a front-end pipeline — a separate pipeline type that builds only that module.
- The output is served from Adobe's CDN rather than embedded in the AEM package.
- The page component loads the assets from the CDN location instead of via a clientlib in
/apps.
Deployment drops from a full-stack release to minutes, and the front-end and back-end teams stop blocking each other.
You gain deployment speed and team independence. You give up having one artefact that contains everything — the front end and the AEM code are now versioned and deployed separately, so keeping them compatible becomes a discipline rather than a guarantee.
Enabling it
The documented steps, in order:
- Review the
ui.frontendmodule and make sure it is self-contained — it must build without depending on anything generated by the AEM build. - Update the project so
ui.appsno longer embeds the generated site clientlib, and the page component references the pipeline-delivered assets instead. - Create a front-end pipeline in Cloud Manager pointing at the branch and the
ui.frontendpath. - Run it and verify the assets are served from the CDN.
Constraints worth knowing before you commit
- It is Cloud Service only. There is no equivalent on 6.5 or AMS.
- Local development changes. Your local AEM has no front-end pipeline, so the project must still work locally — usually by keeping the clientlib path as a local fallback, or running the webpack dev server as a proxy.
- Versioning discipline. Because deployments are independent, a front-end change that assumes new markup can ship before the AEM change that produces it. Someone has to own that coordination.
- Not everything moves. Component-specific clientlibs that must live alongside components in
/appscan stay there; the pipeline suits the site-wide bundle.
If your team is small, or front-end and back-end changes usually ship together anyway, the coordination cost can exceed the speed benefit. The pipeline pays off when front-end iteration genuinely outpaces AEM code change.
Themes and the site template route
There is a related path: AEM Site Templates package a theme (the front-end) and site structure together, so a site can be created and themed largely without a Maven project. That is a different starting point from the archetype and worth knowing exists, though it is not the track you are on.
The front-end pipeline decouples CSS/JS delivery from AEM deployments, trading a single versioned artefact for much faster front-end iteration. Adopt it when front-end change genuinely dominates.
Watch
Adobe's own videos for this topic. They load only when you press play.
Read on Experience League
The primary sources these notes are drawn from.
Your notes
Saved automatically to this browser.
Check yourself
9 questions on today's material. 80% to pass.