# PayloadCMS

<span class="s1">**PayloadCMS**</span> ist ein modernes, Headless CMS, das vollständig auf <span class="s1">**Node.js**</span> basiert und speziell für Entwickler:innen konzipiert ist. Es kombiniert ein leistungsfähiges Admin-Panel mit einem *code-first*-Ansatz, wodurch Inhalte, Strukturen und Logiken direkt im Code definiert werden können.

### Überblick

<table id="bkmrk-eigenschaft-beschrei"><thead><tr><th>**Eigenschaft**

</th><th>**Beschreibung**

</th></tr></thead><tbody><tr><td>CMS-Typ

</td><td>Headless CMS

</td></tr><tr><td>Backend

</td><td>Node.js + Express

</td></tr><tr><td>Sprache

</td><td>TypeScript (auch JavaScript möglich)

</td></tr><tr><td>API-Schnittstellen

</td><td>REST und GraphQL

</td></tr><tr><td>Admin-Oberfläche

</td><td>Automatisch generiert aus dem Code

</td></tr><tr><td>Authentifizierung

</td><td>Integriert (JWT, Sessions, Role-based Access)

</td></tr><tr><td>Datenbanken

</td><td>MongoDB (Standard), <span class="s1">**PostgreSQL / SQLite**</span> via Kysely (experimentell)

</td></tr><tr><td>ORM/Query Builder

</td><td>Mongoose (MongoDB) / Kysely (SQL-DBs wie SQLite)

</td></tr></tbody></table>

#### Code-First Schema

Alle Collections (Inhaltstypen) werden im Code als JavaScript/TypeScript-Objekte definiert.

```
import { CollectionConfig } from 'payload/types';

const Posts: CollectionConfig = {
  slug: 'posts',
  fields: [
    { name: 'title', type: 'text', required: true },
    { name: 'content', type: 'richText' },
  ],
};

export default Posts;
```

### Authentifizierung &amp; Rollen

- Integrierte Benutzerverwaltung
- Rollenbasierte Zugriffskontrolle (Access Control Policies)
- Auth-Collection konfigurierbar

### Dateiuploads &amp; Medien

- Unterstützung für File-Uploads (lokal oder via Cloud)
- Optimierung und Vorschau automatisch im Admin-Panel

### Hooks &amp; Middleware

- Asynchrone Hooks vor/nach Aktionen
- Business-Logik z. B. bei <span class="s1">beforeChange</span>, <span class="s1">afterDelete</span>, etc.

### Mehrsprachigkeit

- Unterstützung für i18n (lokalisierte Inhalte)

### Datenbankunterstützung

<table id="bkmrk-datenbank-standard%3F-"><thead><tr><th>**Datenbank**

</th><th>**Standard?**

</th><th>**ORM / Query Layer**

</th><th>**Hinweise**

</th></tr></thead><tbody><tr><td>MongoDB

</td><td>✅

</td><td>Mongoose

</td><td>Reif &amp; empfohlen

</td></tr><tr><td>SQLite

</td><td>🔄 (ab 1.12+)

</td><td>Kysely

</td><td>Gut für lokale Dev

</td></tr><tr><td>PostgreSQL

</td><td>🔄 (ab 1.12+)

</td><td>Kysely

</td><td>Für produktive SQL-Setups

</td></tr></tbody></table>