Luca Nerlich -- Tech Documentation
Reference documentation and practical guides for Adobe Experience Manager, Java, JavaScript, Strapi, and software design patterns. Every page is built around real-world code examples and common pitfalls.
Start Here -- Beginners' Guides
Multi-chapter guided introductions, from zero to working knowledge:
- AEM Beginners' Guide -- 14 chapters covering JCR, Sling, OSGi, components, HTL, Sling Models, templates, clientlibs, and deployment
- Java Beginners' Guide -- 17 chapters from variables and control flow through streams, testing, and build tools
- JavaScript Beginners' Guide -- 15 chapters covering fundamentals, the DOM, events, TypeScript, error handling, and deployment
- Strapi Beginners' Guide -- 12 chapters on content modeling, REST API, authentication, lifecycle hooks, and deployment
AEM
Comprehensive Adobe Experience Manager documentation covering the full stack.
- Architecture -- How Sling, JCR, and OSGi fit together in the request processing pipeline
- Custom Component Guide -- End-to-end walkthrough: Sling Model, dialog, HTL template, and clientlib
- Component Dialogs -- Copy-paste reference for Granite UI dialog widgets
- Sling Models -- Annotations, injectors, exporters, and best practices
Java
Core Java language guides -- practical examples, pitfall tables, and patterns.
- Streams and Collectors -- Stream pipelines, groupingBy, partitioningBy, and parallel streams
- Concurrency -- Threads, ExecutorService, CompletableFuture, and Virtual Threads
- Modern Java Features -- Records, sealed classes, pattern matching (Java 11--21)
- Generics -- Bounded types, wildcards, PECS, and type erasure
JavaScript
Practical JavaScript and TypeScript topics with code examples and browser compatibility notes.
- Async/Await Patterns -- Promises, error handling, concurrency control, and pitfalls
- Intl API Formatting -- Locale-aware number, date, and currency formatting
- Error Handling -- Custom error classes, global handlers, and structured reporting
Strapi
Guides for building and extending a Strapi headless CMS.
- Custom Controllers and Services -- Extending core CRUD, custom actions, and service delegation
- Relations and Population -- Deep population, filtering, and performance optimization
- Authentication and Permissions -- JWT flow, RBAC, API tokens, and OAuth providers
Design Patterns
GoF patterns explained with Java and TypeScript examples -- creational, structural, and behavioural -- plus a section on anti-patterns and common misuse.
- Pattern Overview -- When and why to use each pattern
- Glossary -- Quick reference for design pattern terminology
More Topics
- Content Modeling -- CMS-agnostic guide to content types, relations, and performance pitfalls
- Git -- Branching strategies, merge vs rebase, interactive rebase, and commit conventions
- Web Performance -- Core Web Vitals, Lighthouse, image optimization, caching, and CDN patterns
- Semantic HTML -- Element reference, accessibility, and common anti-patterns
- Mermaid Diagrams -- Flowcharts, sequence diagrams, class diagrams, and more
Projects
- Steam5 -- Steam review guessing game. Spring Boot, Next.js, PostgreSQL
- RSS-Analyzer -- Audio RSS feed parser with aggregated release stats. Java, Next.js
- EZ-Budget -- Monthly and yearly budget tracker. Next.js, Bootstrap CSS
- Mindestens 10 Zeichen -- Community gaming and media blog. Docusaurus 3
- First Class Performance -- Design, development, and hosting. Strapi, Next.js, Material UI
- Complete Motion CrossFit -- Design, development, and hosting. Next.js, SCSS
- Nerlich / Puls GbR -- Business website. Next.js, SCSS
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.