Strapi Community (Free) × Nuxt SSR

Strapi Funktions-Demo

Alles auf Deutsch erklärt: Was jede Free-Plan-Funktion ist, wo du sie im Backend (Admin) findest und wie du sie hier im Frontend testest.

Backend: Strapi erreichbar (/_health)SSR intern: http://strapi:1337Browser: https://strapi.frankzinsli.chAuth: anonym

2 veröffentlichte Artikel geladen

Was ist im Free Plan enthalten?

Community = Open Source / Free. Unten: jede Funktion mit Kurz Erklärung, Admin-Ort und Frontend-Test. Bezahlte Extras sind klar markiert.

Content-Type Builder

Free

Hier baust du Datenmodelle: Collection Types (viele Einträge) und Single Types (genau ein Eintrag). Unbegrenzt im Free Plan.

Backend: Admin → Content-Type Builder

Frontend: Artikel, Kategorien, Tags, Global, Über uns

Komponenten

Free

Wiederverwendbare Feldgruppen. Einmal definiert, in mehreren Content Types nutzbar.

Backend: Content-Type Builder → Components

Frontend: SEO-Block, Links, Hero/Quote in Artikeln

Dynamic Zones

Free

Flexible Inhaltsblöcke: Redakteure wählen zur Laufzeit Hero, Zitat oder Rich Text.

Backend: Artikel / Über uns → Feld «blocks»

Frontend: Abschnitt Dynamic Zone + About-Seite

Content Manager

Free

Oberfläche zum Erfassen und Bearbeiten von Inhalten. Das Frontend liest dieselben Daten über die API.

Backend: Admin → Content Manager

Frontend: Listen, Detail, Create/Update/Delete

Draft & Publish

Free

Entwurf und Live-Version getrennt. Öffentliche API liefert standardmässig nur Published.

Backend: Eintrag speichern als Entwurf / Veröffentlichen

Frontend: status=draft | status=published, Preview

Preview (Fullscreen)

Free

Zeigt den Eintrag im Frontend bevor er live ist. Side-by-side Live Preview ist Growth/Enterprise.

Backend: Content Manager → Open preview

Frontend: /api/preview + Preview-Seiten

Media Library

Free

Zentrale Dateiverwaltung (Bilder, PDFs, …). Upload auch per REST /api/upload.

Backend: Admin → Media Library

Frontend: Upload-Bereich + Cover-Bilder

REST API

Free

Standard-Schnittstelle: /api/<plural>. Filter, Sort, Pagination, Populate sind kostenlos.

Backend: Einstellungen sichtbar über API-Antworten

Frontend: Alle Demo-Buttons, Custom Path

GraphQL API

Free

Im Free Plan verfügbar, aber als Plugin. Nach Installation: /graphql Playground.

Backend: Marketplace → GraphQL-Plugin installieren

Frontend: Abschnitt GraphQL (Erklärung)

Users & Permissions

Free

Endnutzer-Accounts mit JWT und Rollen (Public, Authenticated, eigene Rollen).

Backend: Settings → Users & Permissions

Frontend: Register / Login /users/me

Admin RBAC (Rollen)

Free

Rechte für Admin-Benutzer (wer darf Content Types bauen, Medien sehen, …). Unbegrenzte Rollen im Free Plan.

Backend: Settings → Administration panel → Roles

Frontend: nur Erklärung (Admin-Login)

API Tokens

Free

Maschinen-Zugriff ohne User-Login. Read-only oder Full Access für Server/CI.

Backend: Settings → API Tokens

Frontend: optional PREVIEW_API_TOKEN

Internationalization (i18n)

Free

Mehrsprachige Inhalte. Locales unbegrenzt. Felder müssen im Content-Type als localized markiert sein.

Backend: Settings → Internationalization + Locale am Eintrag

Frontend: Erklärung + locale Query-Param

Webhooks

Free

Bei Create/Update/Delete kann Strapi eine URL benachrichtigen (z. B. Rebuild, Cache-Purge).

Backend: Settings → Webhooks

Frontend: Erklärung (kein Empfänger nötig)

Data Transfer / Import-Export

Free

Inhalte und Dateien zwischen Umgebungen übertragen. Transfer Tokens im Admin erzeugen.

Backend: Settings → Transfer Tokens / CLI strapi transfer

Frontend: Erklärung

CRON Jobs

Free

Geplante Server-Aufgaben im Strapi-Prozess (z. B. nächtliche Syncs). Kein UI nötig.

Backend: Code: config/server.ts → cron

Frontend: Erklärung

Marketplace

Free

Plugins und Provider (E-Mail, Upload-S3, GraphQL, …) installieren.

Backend: Admin → Marketplace

Frontend: Erklärung

TypeScript

Free

Strapi 5 Projekte können vollständig in TypeScript laufen; Types werden generiert.

Backend: backend/*.ts, generated types

Frontend: Nuxt/TS Demo

Custom Fields

Free

Eigene Feldtypen per Plugin. Im Free Plan erlaubt, braucht aber eigene oder Marketplace-Felder.

Backend: Content-Type Builder / eigene Plugins

Frontend: Erklärung

Blocks Editor

Free

Strukturierter Block-Editor für Fliesstext. Alternative zu Markdown-Richtext.

Backend: Feldtyp «Blocks» im Content-Type Builder

Frontend: Erklärung (Demo nutzt Richtext + Dynamic Zone)

Datenbanken

Free

Community unterstützt Postgres, MySQL, MariaDB (SQLite lokal möglich).

Backend: docker-compose → Postgres

Frontend: Status Backend erreichbar

Backend-Tour (Strapi Admin)

Öffne die Links im Admin (eingeloggt). So siehst du dieselbe Datenwelt, die das Frontend über die API abfragt.

  1. 1. Content-Type Builder

    Schau dir Artikel, Kategorie, Tag, Global und Über uns an. Felder, Relationen, Komponenten und Dynamic Zones siehst du hier.

  2. 2. Content Manager

    Einträge anlegen, als Entwurf speichern, veröffentlichen, Relationen setzen und Media hinzufügen.

  3. 3. Media Library

    Dateien hochladen, Ordner anlegen, Assets in Media-Felder einfügen.

  4. 4. Users & Permissions

    Rollen Public/Authenticated und Rechte pro Action (find, create, upload, …).

  5. 5. Administration Roles

    Admin-RBAC: wer darf im Backend was sehen und ändern.

  6. 6. API Tokens

    Token für Server-zu-Server. Optional als PREVIEW_API_TOKEN für Draft-Fetches.

  7. 7. Internationalization

    Locales anlegen (z. B. de, en). Danach Felder im Content-Type als localized markieren.

  8. 8. Webhooks

    URL eintragen, Events wählen (entry.create usw.), mit einem Request-Bin testen.

  9. 9. Marketplace

    GraphQL, E-Mail-Provider, Upload-Provider usw. installieren.

  10. 10. Preview

    Artikel öffnen → speichern → Open preview. Draft und Published umschalten.

Preview

Was ist das? Preview zeigt den Eintrag im Frontend, bevor oder nachdem er veröffentlicht ist. Im Free Plan als Fullscreen-Preview. Side-by-side Live Preview ist Growth.

Backend: Artikel / Über uns / Kategorie öffnen → speichern → «Open preview». Frontend: Route /api/preview setzt Status und leitet weiter.

Single Types

Was ist das? Genau ein Datensatz pro Typ – ideal für Startseite, Settings, Über-uns. Keine Liste, sondern «das eine» Dokument.

Global (= Site Settings)

Strapi Demo DE

Deutsche Demo für alle Strapi-Community-Funktionen mit Nuxt SSR.

Collection Types, Relationen & Feldtypen

Was ist das? Collection Types = viele Einträge (Artikel, Kategorien, Tags). Hier siehst du Relationen (manyToOne / manyToMany), Populate, Medien, Komponenten, Enums, JSON, Zahlen, Booleans.

Kategorien: 2 · Tags: 2 · Artikel total: 2 · Seite 1/1

Filter und Pagination testen

Mit diesem Eintrag Filters, Sortierung und Seitengrösse prüfen.

views: 3Anleitungen #Demo
Frontend-Seite

Willkommen in der Strapi-Demo

Erster Demo-Artikel mit Relationen, Komponenten, Dynamic Zone und vielen Feldtypen.

featuredviews: 12Nachrichten #Strapi #Demo
Frontend-Seite

Draft & Publish

Was ist das? Jeder freigeschaltete Content Type kann Entwurf und Live-Version haben. Die öffentliche API liefert published; mit status=draft siehst du Entwürfe (je nach Rechten).

Noch keine Entwürfe geladen.

REST: Filter, Sort, Pagination, Populate

Was ist das? Die REST API akzeptiert Query-Parameter wie filters, sort, pagination, populate, fields, locale, status.

Users & Permissions

Was ist das? Endnutzer-Auth fürs Frontend (nicht Admin-Login). Rollen steuern API-Rechte. Public = ohne Token, Authenticated = mit JWT.

null

CRUD über die API

Was ist das? Create / Read / Update / Delete. Lesen ist öffentlich geseedet; Schreiben braucht JWT + Permission create/update/delete.

Media Library / Upload

Was ist das? Zentrale Mediathek im Admin. Per API: POST /api/upload (multipart). Danach erscheint die Datei auch unter Media Library.

GraphQL, i18n, Webhooks & Co.

Diese Free-Funktionen sind vor allem im Admin/Code sichtbar – hier die Kurzführer:

  • GraphQL: Free, aber Plugin. Admin → Marketplace → «GraphQL» installieren → danach meist https://strapi.frankzinsli.ch/graphql.
  • i18n: Settings → Internationalization → Locale hinzufügen. Im Content-Type Builder Felder als «localized» markieren. API: ?locale=de.
  • Webhooks: Settings → Webhooks → URL + Events. Bei Publish/Update schickt Strapi einen POST.
  • API Tokens: Settings → API Tokens für Server-Jobs ohne User-Login.
  • Transfer / Import-Export: Transfer Tokens + CLI strapi transfer für Umgebungen.
  • CRON: in backend/config/server.ts unter cron.tasks planen.
  • Blocks Editor: Feldtyp «Blocks» im Content-Type Builder (diese Demo nutzt Richtext + Dynamic Zone als Alternative).
  • Custom Fields: eigene Feld-Plugins oder Marketplace-Felder.

Rohdaten (letzte API-Antwort)

Zum Debuggen: genau die JSON-Antwort von Strapi. So siehst du Struktur, documentId, Relationen und Meta/Pagination.

Veröffentlichte Artikel

{
  "data": [
    {
      "id": 8,
      "documentId": "diwvlvmn9r9acmddo8s6ummm",
      "title": "Filter und Pagination testen",
      "slug": "filter-und-pagination-testen",
      "excerpt": "Mit diesem Eintrag Filters, Sortierung und Seitengrösse prüfen.",
      "content": "Probiere `filters[title][$contains]=Filter` und `pagination[pageSize]=1`.",
      "isFeatured": false,
      "views": 3,
      "rating": 3.2,
      "statusLabel": "in_review",
      "publishedOn": "2026-08-05",
      "eventAt": null,
      "readingTime": null,
      "contactEmail": null,
      "meta": null,
      "createdAt": "2026-08-06T14:12:59.863Z",
      "updatedAt": "2026-08-06T14:12:59.863Z",
      "publishedAt": "2026-08-06T14:12:59.871Z",
      "cover": null,
      "category": {
        "id": 8,
        "documentId": "ubueqytou7r0ebilz3arflrj",
        "name": "Anleitungen",
        "slug": "anleitungen",
        "description": "Kategorie für How-tos und Filter-Tests",
        "createdAt": "2026-08-06T14:12:59.807Z",
        "updatedAt": "2026-08-06T14:12:59.807Z",
        "publishedAt": "2026-08-06T14:12:59.811Z"
      },
      "tags": [
        {
          "id": 4,
          "documentId": "fn64koal7u4qiet2l3ezlpt1",
          "name": "Demo",
          "slug": "demo",
          "createdAt": "2026-08-06T14:12:59.819Z",
          "updatedAt": "2026-08-06T14:12:59.819Z",
          "publishedAt": "2026-08-06T14:12:59.818Z"
        }
      ],
      "seo": null,
      "blocks": []
    },
    {
      "id": 6,
      "documentId": "a2b1wgqijhbzdcnrslnt5fhh",
      "title": "Willkommen in der Strapi-Demo",
      "slug": "willkommen-in-der-strapi-demo",
      "excerpt": "Erster Demo-Artikel mit Relationen, Komponenten, Dynamic Zone und vielen Feldtypen.",
      "content": "## Hallo\n\nDieser Artikel wurde automatisch geseedet, damit du Content Manager, REST API und Preview testen kannst.",
      "isFeatured": true,
      "views": 12,
      "rating": 4.5,
      "statusLabel": "ready",
      "publishedOn": "2026-08-06",
      "eventAt": "2026-08-06T14:12:59.820Z",
      "readingTime": "00:05:00",
      "contactEmail": "demo@example.com",
      "meta": {
        "quelle": "seed",
        "prioritaet": 1
      },
      "createdAt": "2026-08-06T14:12:59.829Z",
      "updatedAt": "2026-08-06T14:12:59.829Z",
      "publishedAt": "2026-08-06T14:12:59.843Z",
      "cover": null,
      "category": {
        "id": 6,
        "documentId": "d3gbwpe8zwjawpkwq18vcf4m",
        "name": "Nachrichten",
        "slug": "nachrichten",
        "description": "Kategorie für aktuelle Beiträge (Collection Type + Relation)",
        "createdAt": "2026-08-06T14:12:59.796Z",
        "updatedAt": "2026-08-06T14:12:59.796Z",
        "publishedAt": "2026-08-06T14:12:59.801Z"
      },
      "tags": [
        {
          "id": 3,
          "documentId": "x6ble1v0kntf1zcxmgghtp1l",
          "name": "Strapi",
          "slug": "strapi",
          "createdAt": "2026-08-06T14:12:59.816Z",
          "updatedAt": "2026-08-06T14:12:59.816Z",
          "publishedAt": "2026-08-06T14:12:59.815Z"
        },
        {
          "id": 4,
          "documentId": "fn64koal7u4qiet2l3ezlpt1",
          "name": "Demo",
          "slug": "demo",
          "createdAt": "2026-08-06T14:12:59.819Z",
          "updatedAt": "2026-08-06T14:12:59.819Z",
          "publishedAt": "2026-08-06T14:12:59.818Z"
        }
      ],
      "seo": {
        "id": 5,
        "metaTitle": "Willkommen Demo",
        "metaDescription": "Geseedeter Strapi-Demoartikel auf Deutsch",
        "shareImage": null
      },
      "blocks": [
        {
          "id": 4,
          "title": "Hero aus der Dynamic Zone",
          "subtitle": "Wiederverwendbare Komponenten im Artikel",
          "image": null,
          "cta": {
            "id": 6,
            "label": "Admin öffnen",
            "url": "/admin",
            "isExternal": false
          },
          "__component": "blocks.hero"
        },
        {
          "id": 6,
          "body": "Strapi und Nuxt machen Content-Tests einfach.",
          "author": "Demo Bot",
          "__component": "blocks.quote"
        }
      ]
    }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "pageSize": 5,
      "pageCount": 1,
      "total": 2
    }
  }
}