A Headless CMS (Content Management System) is a system where the backend (content management) is completely separated from the frontend (content presentation).
Backend and frontend are tightly coupled.
You create content in the system and it's rendered directly using built-in themes and templates with HTML.
Pros: All-in-one solution, quick to get started.
Cons: Limited flexibility, harder to deliver content across multiple platforms (e.g., website + mobile app).
Backend only.
Content is accessed via an API (usually REST or GraphQL).
The frontend (e.g., a React site, native app, or digital signage) fetches the content dynamically.
Pros: Very flexible, ideal for multi-channel content delivery.
Cons: Frontend must be built separately (requires more development effort).
Websites built with modern JavaScript frameworks (like React, Next.js, Vue)
Mobile apps that use the same content as the website
Omnichannel strategies: website, app, smart devices, etc.
Contentful
Strapi
Sanity
Directus
Prismic
Storyblok (a hybrid with visual editing capabilities)
Storyblok is a user-friendly, headless Content Management System (CMS) that helps developers and marketing teams create, manage, and publish content quickly and efficiently. It offers a visual editing interface for real-time content design and is flexible with various frameworks and platforms. Its API-first architecture allows content to be delivered to any digital platform, making it ideal for modern web and app development.
Shopware is a modular e-commerce system from Germany that allows you to create and manage online stores. It’s designed for both small retailers and large enterprises, known for its flexibility, scalability, and modern technology.
Developer: Shopware AG (founded in 2000 in Germany)
Technology: PHP, Symfony framework, API-first approach
Current Version: Shopware 6 (since 2019)
Open Source: Yes, with paid extensions available
Headless Ready: Yes, supports headless commerce via APIs
Product Management: Variants, tier pricing, media, SEO tools
Sales Channels: Web shop, POS, social media, marketplaces
Content Management: Built-in CMS ("Shopping Experiences")
Payments & Shipping: Many integrations (e.g. PayPal, Klarna)
Multilingual & Multi-Currency Support
B2B & B2C capabilities
App System & API for custom extensions
Startups (free Community Edition available)
SMEs and mid-sized businesses
Enterprise clients with complex needs
Very popular in the DACH region (Germany, Austria, Switzerland)
Made in Germany → GDPR-compliant
Highly customizable
Active ecosystem & community
Scalable for growing businesses
A Join Point is a concept from Aspect-Oriented Programming (AOP).
A Join Point is a specific point during the execution of program code where additional behavior (called an aspect) can be inserted.
Method calls
Method executions
Field access (read/write)
Exception handling
In AOP, cross-cutting concerns (like logging, security, or transaction management) are separated from the main business logic. These concerns are applied at defined points in the program flow — the Join Points.
Pointcut: A way to specify which Join Points should be affected (e.g., "all methods starting with save
").
Advice: The actual code that runs at a Join Point (e.g., "log this method call").
Aspect: A combination of Pointcut(s) and Advice(s) — the full module that implements a cross-cutting concern.
@Before("execution(* com.example.service.*.*(..))")
public void logBeforeMethod(JoinPoint joinPoint) {
System.out.println("Calling method: " + joinPoint.getSignature().getName());
}
→ This logs a message before every method call in a specific package. The joinPoint.getSignature()
call provides details about the actual Join Point.
SVG stands for Scalable Vector Graphics. It's an XML-based file format used to describe 2D graphics. SVG allows for the display of vector images that can be scaled to any size without losing quality. It's widely used in web design because it offers high resolution at any size and integrates easily into web pages.
Here are some key features of SVG:
Vector-based: SVG graphics are made up of lines, curves, and shapes defined mathematically, unlike raster images (like JPEG or PNG), which are made of pixels.
Scalability: Since SVG is vector-based, it can be resized to any dimension without losing image quality, making it ideal for responsive designs.
Interactivity and Animation: SVG supports interactivity (e.g., via JavaScript) and animation (e.g., via CSS or SMIL).
Search engine friendly: SVG content is text-based and can be indexed by search engines, offering SEO benefits.
Compatibility: SVG files are supported by most modern web browsers and are great for logos, icons, charts, and other graphics.
SLD (Styled Layer Descriptor) is an XML-based standard developed by the Open Geospatial Consortium (OGC). It is used to define the styling of geospatial data in web mapping services like WMS (Web Map Service).
SLD describes how certain geospatial features should be rendered on a map — meaning it defines colors, lines, symbols, labels, and more. With SLD, you can specify things like:
Roads should appear red.
Water bodies in blue, with a certain transparency.
Points should have symbols that vary depending on attribute values (e.g., population).
Text labels over features.
SLD is an XML file with a defined structure.
It can be read by WMS servers like GeoServer or MapServer.
The file includes Rules, Filters, and Symbolizers like LineSymbolizer
, PolygonSymbolizer
, or TextSymbolizer
.
<Rule>
<Name>Water Bodies</Name>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#0000FF</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
To create custom-styled maps (e.g., thematic maps).
To define styling server-side, so the map is rendered correctly regardless of the client.
For interactive web GIS applications that react to attribute values.
If you're working with geospatial data — for example in QGIS or GeoServer — you'll likely come across SLD when you need fine-grained control over how your maps look.
The SLD (Second-Level Domain) is the part of a domain name that appears directly to the left of the Top-Level Domain (TLD).
In the domain
👉 example.com
.com
is the TLD (Top-Level Domain)
example
is the SLD (Second-Level Domain)
Level | Example |
---|---|
Top-Level Domain | .com |
Second-Level Domain | example |
Subdomain (optional) | www. or e.g. blog. |
Domain | SLD | TLD |
---|---|---|
google.de |
google |
.de |
wikipedia.org |
wikipedia |
.org |
meinshop.example.com |
example |
.com |
The SLD is usually the custom, chosen part of the domain—often representing a company name, brand, or project. It's the most recognizable and memorable part of a domain name.
A hyperscaler is a company that provides cloud services on a massive scale — offering IT infrastructure such as computing power, storage, and networking that is flexible, highly available, and globally scalable. Common examples of hyperscalers include:
Microsoft Azure
Google Cloud Platform (GCP)
Alibaba Cloud
IBM Cloud (on a somewhat smaller scale)
Massive scalability
They can scale their services virtually without limits, depending on the customer's needs.
Global infrastructure
Their data centers are distributed worldwide, enabling high availability, low latency, and redundancy.
Automation & standardization
Many operations are automated (e.g., provisioning, monitoring, billing), making services more efficient and cost-effective.
Self-service & pay-as-you-go
Customers usually access services via web portals or APIs and pay only for what they actually use.
Innovation platform
Hyperscalers offer not only infrastructure (IaaS), but also platform services (PaaS), as well as tools for AI, big data, or IoT.
Hosting websites or web applications
Data storage (e.g., backups, archives)
Big data analytics
Machine learning / AI
Streaming services
Corporate IT infrastructure
Vite is a modern build tool and development server for web applications, created by Evan You, the creator of Vue.js. It is designed to make the development and build processes faster and more efficient. The name "Vite" comes from the French word for "fast," reflecting the primary goal of the tool: a lightning-fast development environment.
The main features of Vite are:
Fast Development Server: Vite uses modern ES modules (ESM), providing an ultra-fast development server. It only loads the latest module, making the initial startup much faster than traditional bundlers.
Hot Module Replacement (HMR): HMR works extremely fast by updating only the changed modules, without needing to reload the entire application.
Modern Build System: Vite uses Rollup under the hood to bundle the final production build, enabling optimized and efficient builds.
Zero Configuration: Vite is very user-friendly and doesn’t require extensive configuration. It works immediately with the default settings, supporting many common web technologies out-of-the-box (e.g., Vue.js, React, TypeScript, CSS preprocessors, etc.).
Optimized Production: For production builds, Rollup is used, which is known for creating efficient and optimized bundles.
Vite is mainly aimed at modern web applications and is particularly popular with developers working with frameworks like Vue, React, or Svelte.
Memcached is a distributed in-memory caching system commonly used to speed up web applications. It temporarily stores frequently requested data in RAM to avoid expensive database queries or API calls.
Key-Value Store: Data is stored as key-value pairs.
In-Memory: Runs entirely in RAM, making it extremely fast.
Distributed: Supports multiple servers (clusters) to distribute load.
Simple API: Provides basic operations like set
, get
, and delete
.
Eviction Policy: Uses LRU (Least Recently Used) to remove old data when memory is full.
Caching Database Queries: Reduces load on databases like MySQL or PostgreSQL.
Session Management: Stores user sessions in scalable web applications.
Temporary Data Storage: Useful for API rate limiting or short-lived data caching.
Memcached: Faster for simple key-value caching, scales well horizontally.
Redis: Offers more features like persistence, lists, hashes, sets, and pub/sub messaging.
sudo apt update && sudo apt install memcached
sudo systemctl start memcached
It can be used with PHP or Python via appropriate libraries.