Fullstack · Programmatic SEO · Automatisierung · Self-Hosting

OtakuPulse

Die deutschsprachige Anime-Datenbank & News-Plattform — von der Daten-Pipeline über KI-Redaktion bis zur Multi-Plattform-Distribution: eigenständig konzipiert, entwickelt und betrieben.

Next.js 16 · Payload CMS · PostgreSQL · Docker · Claude AI · n8n · Cloudflare

0
Anime-Titel
0
Charaktere
0
Personen
0
Tools integriert
0
RSS-Feeds
0
Social-Kanäle
Über das Projekt

Ein vollständiges Produkt — End-to-End

OtakuPulse verbindet eine durchsuchbare Anime-Datenbank mit automatisierter Redaktion, programmatischem SEO und Multi-Plattform-Distribution. Daten kommen aus AniList, angereichert um echte Dub-/Sub-Sprachen, Streaming-Verfügbarkeit und eigene, KI-geschriebene deutsche Texte. Vom Datenimport über die Bildspiegelung bis zum automatischen Posten in sechs soziale Netzwerke läuft alles self-hosted auf eigener Infrastruktur — orchestriert über mehr als zwanzig zusammenspielende Tools und Dienste.

🇩🇪 Deutschsprachig ⚡ ISR & Server Components 🔒 DSGVO & Security-Header 🤖 KI-Redaktion & -Übersetzung 📡 RSS → 6 Plattformen 🛡️ Jugendschutz / Age-Gate
Funktionen

Alles, was die Plattform kann

Sechs Funktionsbereiche — vom Katalog bis zum Betrieb.

🗃️

Katalog & Discovery

Verlinkte Entitäten und schnelle Discovery.

  • Anime, Charaktere, Synchronsprecher, Studios
  • Genres, Tags (nach Kategorie), Seasons
  • Volltextsuche mit kombinierbaren Filtern
  • Anime-Vergleich & „ähnliche Titel"
📺

Streaming & Sprachen

„Wer streamt es?" pro Titel.

  • Anbieter: Crunchyroll, Netflix, Amazon & Co.
  • Echte Dub-/Sub-Sprachfassungen
  • Anbieter-Landingpages & Sprachfilter
📅

Simulcast-Kalender

Was läuft wann?

  • Wochenraster der laufenden Season
  • Genre-Filter & Heute-Markierung
  • Täglich aktualisiert (Sync-Cron)
🤖

KI-Redaktion

Automatischer, einzigartiger Content.

  • News & Ankündigungen (Claude Sonnet)
  • Deutsche Beschreibungen (Claude Haiku)
  • Deterministischer Steckbrief aus der DB
🔎

SEO-Maschinerie

Auffindbarkeit by design.

  • Tausende Longtail-Landingpages
  • Sitemaps, Schema.org, OG-Bilder
  • Feed-Discovery, Google „Subscribe with Google"
📡

Distribution & Community

Reichweite automatisiert.

  • Autoposter → 5 Netzwerke (n8n)
  • Telegram-News-Bot, RSS (inkl. Vollinhalt)
  • Discord-/Telegram-/X-Anbindung
Plattform-Landkarte

Alle Inhalte & Seiten

Über 40 Routen-Typen — von Entitätsseiten über programmatische SEO-Seiten bis zu Feeds und Admin.

🗂️ Entitäten

  • /anime · /anime/[slug]
  • /anime/[slug]/episoden
  • /anime/[slug]/charaktere
  • /character · /character/[slug]
  • /person · /person/[slug]
  • /studio · /studio/[slug]
  • /genre · /tag · /season
  • /kalender · /kalender/[date]
  • /autor/[slug]

🔎 Listing & SEO

  • /suche (Filter & Volltext)
  • /top-anime · /top-anime/[filter]
  • /vergleich/[a]-vs-[b]
  • /plattform · /plattform/[slug]
  • /streamen/[slug]
  • /aehnlich/[slug]
  • /news · /news/[slug]
  • /news/kategorie/[cat]

💬 Community & Legal

  • /anime-discord-server
  • /anime-telegram-kanal
  • /impressum · /datenschutz
  • /nutzungsbedingungen
  • /kontakt

📡 Feeds

  • /feed.xml (Teaser + Cover)
  • /feed-full.xml (Vollinhalt)
  • /feed/[slug].xml (kuratiert)
  • /genre/[slug]/feed.xml
  • /news/kategorie/[cat]/feed.xml
  • /kalender/feed.xml

⚙️ System & SEO

  • /sitemap.xml · /sitemaps/[chunk]
  • /robots.txt
  • /opengraph-image
  • /manifest.webmanifest
  • /.well-known/security.txt

🔐 Admin & API

  • /legal/admin (Payload)
  • /api/[...slug] (REST)
  • /api/graphql
  • /api/graphql-playground
Automatisierung

Pipelines & Funktionen

Skripte und Worker, die den Katalog füllen, anreichern und verteilen — größtenteils per Cron, idempotent und resumable.

📥 Import tsx

AniList-GraphQL-Import einzeln, season- oder jahrweise; unbekannte Slugs werden beim ersten Aufruf live nachgeladen (On-Demand-Fallback).

import:anime · import:batch · import:years · import:tags

🔄 Täglicher Sync Cron 04:15

Laufende Anime + aktuelle Season inkl. Episoden aktualisieren — Grundlage für den Simulcast-Kalender.

sync.ts → otakupulse-sync.sh

🖼️ Bild-Spiegelung Worker

Cover/Banner/Portraits (~30k) inkrementell nach public/media spiegeln — kein CDN-Leak, schnelle Auslieferung via next/image.

mirror-images.ts (Loop alle 3 Min)

🌐 KI-Übersetzung Claude Haiku

Beschreibungen ins Deutsche umschreiben (gegen Duplicate Content), resumable, immer Seite-1-Pagination.

translate.ts

📝 News-Generierung Claude Sonnet

Pro Titel ein Artikel: deterministischer Steckbrief aus der DB + KI-Rewrite im „Weeb-Stil"; kontrollierte Link-Bausteine.

generate-anime-news.ts · generate-news.ts

🎙️ Dub/Sub & Streaming Host · Python

Echte Sprachfassungen & Anbieter aus Cloudflare-geschützten Quellen via TLS-Impersonation; idempotent, wöchentlich.

crunchyroll-dub.py · justwatch-streaming.py · wikipedia-dub.py · studio-logos.py

📨 Telegram-Posts Cron 30 Min

Neue, veröffentlichte Artikel in den Channel posten (Foto + Caption), Dedup über DB-Feld.

telegram-notify.ts

📡 Social-Autoposter n8n

RSS-Trigger zieht den Feed und verteilt neue Artikel an Discord, Mastodon, Bluesky, Reddit & Facebook.

n8n-workflows/otakupulse-autoposter.json

💾 Backups Cron nachts

pg_dump (App- + Umami-DB), gzip, Rotation 14 Tage, Offsite nach Backblaze B2 via rclone.

backup-db.sh

🩺 Uptime-Watchdog Cron 5 Min

Prüft die App; heilt per Container-Neustart und alarmiert per Telegram — ohne Deploys zu stören.

watchdog.sh
Tools & Zusammenspiel

Über 20 Dienste, ein System

Jedes Tool hat eine klare Rolle — von der Datenquelle über KI und Infrastruktur bis zur Distribution und Analyse.

Daten & Quellen
AniList
Stammdaten via GraphQL (rate-limitiert) + On-Demand-Import
Crunchyroll
Echte Audio-/Untertitel-Sprachen aus der Content-API
JustWatch
Streaming-Anbieter-Verfügbarkeit (DE)
Wikidata / Wikipedia
Legale Dub-Daten, Studio-Logos & Websites
Künstliche Intelligenz
Claude Haiku
Deutsche Beschreibungen (Massen-Übersetzung)
Claude Sonnet
News- & Ankündigungstexte mit Steckbrief
Framework & Daten
Next.js 16
App Router, Server Components, ISR
Payload CMS
Collections/Globals, Admin, Local API
PostgreSQL
Primärdatenbank (App + Umami getrennt)
TypeScript · Tailwind · Vitest
Typsicherheit, Styling, Unit-Tests
Infrastruktur & Betrieb
Docker · Unraid
Container: app, db, enrich, n8n, umami
Cloudflare Tunnel
Öffentliche Anbindung, DNS, CDN, 301
Backblaze B2 · rclone
Offsite-Backups der Datenbanken
Git / GitHub
Versionierung, inkl. n8n-Workflow & Doku
Distribution & Community
n8n
RSS → Discord/Mastodon/Bluesky/Reddit/Facebook
Telegram Bot API
News-Channel @otakupulse_de
RSS · Flipboard
Vollinhalt-Feed (content:encoded) für Magazine
Google „Subscribe with Google"
Reader Revenue Manager auf Artikelseiten
Discord · X
Community-Server & Profil, Landingpages
Mastodon · Bluesky · Reddit · Facebook
Auto-Cross-Posting der Artikel
Analyse & Datenschutz
Umami (self-hosted)
First-Party Analytics über /stats, cookielos
Google Analytics 4
Consent-gated (Opt-in, DSGVO)
Cookie-Consent
Kategorien Statistik/Marketing, localStorage
Python · curl_cffi
TLS-Impersonation für Host-Scraper
Architektur

Wie alles zusammenspielt

Sechs Schichten — von den externen Quellen bis zu Distribution, Betrieb und Analyse.

1 · Externe Quellen
AniList (GraphQL)CrunchyrollJustWatchWikidata / Wikipedia
2 · Enrichment & KI
Import & SyncBild-SpiegelungClaude-ÜbersetzungDub/Sub-Scraper (Python)News-Generierung
3 · Kern-Anwendung
Next.js 16Payload CMSPostgreSQLISR · Local API · Admin
4 · Auslieferung
Cloudflare Tunnelwww.otakupulse.deRSS-Feeds (+ Vollinhalt)Sitemaps · Schema.org
5 · Distribution & Community
n8nDiscordTelegramMastodonBlueskyRedditFacebookFlipboard · Google News
6 · Betrieb & Analyse
Docker / UnraidBackups → Backblaze B2Uptime-WatchdogUmami + GA4
Engineering

Technische Highlights

Die interessanten Probleme — und wie sie gelöst wurden.

01

Daten-Pipeline & Enrichment

Rate-limitierter AniList-Import mit On-Demand-Fallback, dazu Host-Scraper mit TLS-Impersonation (curl_cffi), die Cloudflare-geschützte Quellen anzapfen: echte Sprachen von Crunchyroll, Anbieter von JustWatch, legale Dub-Daten und Logos aus Wikidata. Idempotent, inkrementell, per Cron.

GraphQLcurl_cffiIdempotente Jobs~30k Bilder gespiegelt
02

Programmatisches SEO im großen Maßstab

Tausende automatisch erzeugte Seiten (Genre-, Studio-, Season-, Vergleichs- und Intent-Seiten), je mit Intro, interner Verlinkung, FAQ und Structured Data. Eigene Route-Handler-Sitemaps, dünne Seiten automatisch noindex, konsequente depth:0-Queries gegen N+1.

Schema.orgSitemap-ChunkingISROG-Image-Gen
03

KI-Integration mit Guardrails

Claude Haiku übersetzt ~100 % der Beschreibungen, Sonnet erzeugt News aus deterministischem DB-Steckbrief + Rewrite. Kontrollierte Link-Bausteine verhindern erfundene Slugs; resumable über Pagination.

Anthropic ClaudePrompt-EngineeringLexical-Rich-Text
04

Automatisierung & Distribution

n8n verteilt RSS an fünf Netzwerke, ein Telegram-Bot postet mit DB-Dedup. Feeds mit Cover-Bildern und Vollinhalt-Variante für Flipboard; Feed-Discovery-Tags und Google „Subscribe with Google" für maximale Reichweite.

n8ncontent:encodedTelegram-APIGoogle RRM
05

Self-Hosting, Sicherheit & Betrieb

Mehrere Docker-Container auf Unraid hinter Cloudflare-Tunnel, getrennter Worker mit Live-Code-Mount, nächtliche Backups mit Offsite nach B2, Uptime-Watchdog mit Alarm. Strenge Sicherheits-Header (CSP, COOP/CORP/COEP, HSTS), security.txt, consent-gated Analytics.

Docker / UnraidCloudflareBackblaze B2CSP & Härtung