Luca Nerlich -- Tech Documentation
Practical guides and reference documentation for Adobe Experience Manager, Java, JavaScript, and software design patterns. Every page focuses on real-world examples, common pitfalls, and patterns you can apply immediately.
Documentation
AEM
Comprehensive Adobe Experience Manager documentation covering the full stack -- from architecture and components to Dispatcher, security, and AEM as a Cloud Service.
- Architecture -- How Sling, JCR, and OSGi fit together in the AEM request processing pipeline
- Component Dialogs -- Copy-paste reference for the most useful Granite UI dialog widgets
- Custom Component Guide -- Step-by-step walkthrough: Sling Model, dialog, HTL template, and clientlib
- HTL Templates -- Sightly syntax, block elements, expression language, and XSS protection
- Sling Models -- Annotations, injectors, exporters, testing, and best practices
- Client Libraries -- Clientlib categories, dependencies, embedding, and the HTML Library Manager
- Groovy Console -- Interactive scripting for content operations, migrations, and debugging
- Workflows -- Business process mapping, custom process steps, and launchers
Java
Core Java language guides independent of any framework -- practical examples, pitfall tables, and patterns you can apply immediately.
- Streams and Collectors -- Stream pipelines, groupingBy, partitioningBy, and parallel streams
- Modern Java Features -- Records, sealed classes, pattern matching, and a Java 11-to-21 feature table
- Concurrency -- Threads, ExecutorService, CompletableFuture, and Virtual Threads
- Generics -- Bounded types, wildcards, the PECS principle, and type erasure
- Testing -- JUnit 5, Mockito mocking, AssertJ assertions, and parameterised tests
- Error Handling -- Checked vs unchecked exceptions, try-with-resources, and the Result pattern
JavaScript
Practical JavaScript and TypeScript topics with code examples and browser compatibility notes.
- Intl API Formatting -- Locale-aware number, date, currency, and relative time formatting
- Async/Await Patterns -- Promises, error handling, concurrency control, and common pitfalls
- Error Handling -- Custom error classes, global handlers, and structured error reporting
Content Modeling
CMS-agnostic guide to architecting content models -- content types, field selection, relations, performance pitfalls, complexity traps, and a practical blog example. Applies to AEM, Strapi, and any headless CMS.
Git
Practical Git reference -- branching strategies (trunk-based, Git Flow, GitHub Flow), merge vs rebase vs squash, interactive rebase, staging and stashing, undoing mistakes with reset/revert/reflog, cherry-pick, bisect, tags, aliases, and commit message conventions.
Web Performance
Core Web Vitals (LCP, INP, CLS), measuring performance with Lighthouse and field data, image and font optimization, JavaScript and CSS strategies, HTTP caching, CDN patterns, resource hints, performance budgets, and common anti-patterns.
Semantic HTML
What semantic HTML is, why it matters for accessibility and SEO, and a practical reference for every relevant element -- document structure, headings, text, inline semantics, lists, tables, forms, media, interactive elements, and common anti-patterns.
Design Patterns
GoF design patterns explained with Java and TypeScript examples: creational, structural, and behavioural patterns, plus a dedicated section on anti-patterns and common misuse.
Other
Shell and terminal setup, Docusaurus tips, a comprehensive Mermaid diagram guide, useful link collections, and practical Strapi CMS guides.
- Strapi: Custom Controllers and Services -- Extending core CRUD, custom actions, and service delegation
- Strapi: Relations and Population -- Deep population, filtering, and performance optimization
- Strapi: Authentication and Permissions -- JWT flow, RBAC, API tokens, and OAuth providers
- Mermaid Diagram Guide -- Flowcharts, sequence diagrams, class diagrams, and more
Featured content
A selection of the most useful pages across all categories:
- Component Dialog Examples -- Copy-paste Granite UI dialog widgets for AEM components
- AEM Architecture -- How Sling, JCR, and OSGi fit together
- Streams and Collectors -- Java Streams API from basics to advanced collectors
- Concurrency and Virtual Threads -- Modern Java concurrency with practical examples
- Sling Model Annotations --
@Self,@Inject,@ChildResource, and more - AEM Workflows -- From business process mapping to custom workflow steps
- Mermaid Diagram Guide -- Flowcharts, sequence diagrams, class diagrams, and more
- Multi-Tenancy ui.frontend -- Multi-tenant frontend architecture for AEM
- Templates and Policies -- Editable templates, allowed components, Style System
- ACLs and Permissions -- Repoinit, Netcentric ACL Tool, service users
Projects
Professional
- First Class Performance -- Design, development, and hosting. Strapi CMS, Next.js, React, SCSS, Material UI
- Complete Motion CrossFit -- Design, development, and hosting. Next.js, React, SCSS
- Nerlich / Puls GbR -- GbR business website. Next.js, React, SCSS
Hobby
- Steam5 -- Steam review guessing game. Spring Boot, Next.js, React, PostgreSQL
- RSS-Analyzer -- Audio RSS feed parser with aggregated release stats. Java, Next.js, React
- EZ-Budget -- Monthly and yearly budget tracker. Next.js, React, Bootstrap CSS
- Mindestens 10 Zeichen -- Community gaming and media blog. Docusaurus 3
All projects are self-hosted on a Hetzner VPS using Coolify and Docker. Lightweight, GDPR-friendly analytics via self-hosted Umami.
Contact
Questions, corrections, or content requests? Open a GitHub Issue or reach out at luca.nerlich@gmail.com.