---
title: Development
slug: contentandcollablab/development
description: Enhance your AEM experience with Adobe's resources, including developer portals, guides on AEM Sites, HTL, and tips for GraphQL API and CI/CD integration.
docTags: 
createdAt: 2023-11-06T15:58:40.775Z
---

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/-Uii-V3KOhbI0wPH9qLWz_adobestock111453960.jpeg)

Adobe provides the following links as additional, supplemental information based on goals, use case needs, and discussions within lab sessions. This information is intended to augment the experience gained from the Customer Experience Lab curriculum.

### Fundamentals

[AEM as a Cloud Service Documentation Home](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service) — Full product documentation hub covering all AEM Cloud Service solutions

[What's Different from AEM On-Premise and AMS](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/overview/what-is-new-and-different) — How the cloud architecture changes the developer experience: ephemerality, clustering, immutable vs. mutable content, and no OSGi web console

[Development Guidelines](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/developing/development-guidelines) — Core rules for writing cloud-safe code: no filesystem state, resilient background jobs, HTTP timeout requirements, and cluster-aware patterns

[AEM Architecture Overview](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/overview/architecture) — The logical and service architecture: author/publish/preview tiers, Cloud Manager's role, and how environments are typed (dev, stage, production, RDE)

***

### Local Development Environment

[SDK Overview & Quickstart Jar Setup](https://experienceleague.adobe.com/en/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/aem-runtime) — Downloading the SDK, starting author (4502) and publish (4503) instances from the command line, and strategies for persisting content between SDK upgrades

[AEM Maven Project Archetype](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/developing/aem-project-content-package-structure) — Project structure, package layout, and the separation of mutable vs. immutable content in the standard Maven multi-module project

[Dispatcher SDK & Tools](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/content-delivery/disp-overview) — Running and validating Dispatcher configuration locally using Docker before pushing to Cloud Manager

[WKND Tutorial: Getting Started](https://experienceleague.adobe.com/en/docs/experience-manager-learn/getting-started-wknd-tutorial-develop/overview) — End-to-end reference implementation covering component development, HTL, Sling Models, and project structure in the context of AEM as a Cloud Service

***

### Core Development Concepts

[HTL (HTML Template Language)](https://experienceleague.adobe.com/en/docs/experience-manager-htl/content/overview) — AEM's server-side templating language: expressions, block statements, and how it interfaces with Sling Models

[Sling Models](https://sling.apache.org/documentation/bundles/models.html) — Annotation-driven Java POJOs for mapping JCR properties and OSGi services to component logic; the standard pattern for backing HTL components

[OSGi Configuration](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/deploying/configuring-osgi) — Using `.cfg.json` files scoped by run mode (`config.author`, `config.publish.prod`, etc.); inline, environment-specific, and secret variable patterns

[Content Package Structure](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/deploying/overview) — Immutable vs. mutable content, why install hooks are not supported, and how Cloud Manager transforms packages to the Sling Feature Model at deploy time

[Core Components](https://experienceleague.adobe.com/en/docs/experience-manager-core-components/using/introduction.html) — Adobe's extensible, production-ready component library and the recommended base for custom component development

***

### Deployment & Environments

[Deploying to AEM as a Cloud Service](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/deploying/overview) — How Cloud Manager pipelines work, the relationship between custom code releases and AEM version updates, and the immutable code-in-git requirement

[Rapid Development Environments (RDE)](https://experienceleague.adobe.com/en/docs/experience-manager-learn/cloud-service/developing/rde/how-to-use.html) — Using the `aio aem:rde:install` CLI to push OSGi bundles, configs, dispatcher zips, and content packages directly to an RDE without running a full pipeline

[Cloud Manager CI/CD Pipelines](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/using-cloud-manager/cicd-pipelines/introduction-ci-cd-pipelines) — Full and config-only pipeline types, code quality gates, and the relationship between stage and production deployments

[Environment Variables & Secrets](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/deploying/configuring-osgi) — Setting environment-specific and secret values via Cloud Manager that get injected into OSGi configurations at runtime

***

### Content & APIs

[Content Fragments & Models API](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/headless/content-fragments/content-fragments-openapi) — OpenAPIs for full CRUD operations on Content Fragments and Models, with per-language code samples for headless integration scenarios

[AEM Headless Developer Portal](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/headless/introduction) — GraphQL API, Content Fragment models, persisted queries, and delivery patterns for headless AEM implementations

[Universal Editor Integration](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/developing/universal-editor/introduction) — Adding `data-` attributes to existing web app markup to enable in-context visual editing without requiring AEM-hosted rendering

[Web-Optimized Image Delivery APIs](https://experienceleague.adobe.com/en/docs/experience-manager-learn/cloud-service/developing/advanced/web-optimized-image-delivery-java-apis.html) — Using the `AssetDelivery` OSGi service to serve WEBP renditions from AEM as a Cloud Service while gracefully falling back on the local SDK

***

### Dispatcher & CDN

[Dispatcher in the Cloud](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/content-delivery/disp-overview) — How Dispatcher runs in AEM as a Cloud Service: managed via Cloud Manager, all config in Git, and validation via the Dispatcher SDK before deployment

[CDN Configuration](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/content-delivery/cdn) — Adobe-managed CDN setup, BYO CDN configuration, cache invalidation behavior, and response header rules

[Dispatcher Cache Rules & Invalidation](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/content-delivery/caching) — Configuring what gets cached at the Dispatcher and CDN layers, TTLs, and how publish replication triggers invalidation

***

### Debugging & Operations

[Developer Console](https://experienceleague.adobe.com/en/docs/experience-manager-learn/cloud-service/debugging/debugging-aem-sdk/osgi-web-consoles) — Read-only OSGi web console equivalent for cloud environments: inspect bundles, components, Sling Models, oak indexes, and query performance per pod

[Log Access via Cloud Manager](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/using-cloud-manager/manage-logs) — Downloading or tailing author, publish, and dispatcher logs per environment via Cloud Manager UI or the Adobe I/O CLI

[Repository Initialization (RepoInit)](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/deploying/overview) — Declaring service users, ACLs, and initial JCR paths via OSGi factory configuration scripts that run at deploy time



