CI Migration — Technische Analyse llmoready-saas

ALTES CI
RAUS.
LIBERS REIN.

Das bestehende llmoready-saas Repo trägt ein glassmorphes, Neon-blaues CI. Libers Suite braucht Ink Black, Libers Red, Rice White — Bebas Neue statt Outfit, DM Sans statt Manrope. Diese Analyse zeigt alle betroffenen Dateien, die Strategie für jeden Bereich und die empfohlene Reihenfolge.

llmoready-saas
~75 Dateien
~5 Dateien
~10 Dateien
Token-First · kein Rewrite
Aktuelles Design-System — llmoready
--anthracite · bg-anthracite #2D3748
--electric-blue · text-electric #00D4FF
--neon-green · btn-accent #00FF88
anthracite-dark #1A202C
Outfit — Headlines
font-headline · font-outfit · H1–H4
Manrope — Body Text
font-manrope · body · base font
Stil: Glassmorphism · backdrop-blur · rounded-xl · neon gradient · hero-pattern SVG blau
Libers CI — Ziel
--red · Libers Red #D62B2B
--black · Ink Black #0D0D0D
--white · Rice White #F5F4F0
--gray-mid · Stone #9A9890
--warm-sand #C4A882
Bebas Neue — Display
H1–H2 · Logo · Badges · Taglines
DM Sans — Body
body · lead · descriptions · UI
DM Mono — Labels
scores · tags · code · metadata
Stil: Kein Blur · Keine Border-Radius · Sharp Edges · Dot-Pattern rot · Rote Akzentlinie
01 — Betroffene Bereiche

SCHICHT FÜR SCHICHT.

Die Codebasis hat kein zentrales Design-Token-System — CSS-Variablen und Tailwind-Klassen sind über viele Blade- und Vue-Dateien verteilt. Die Strategie: Token-First. Zuerst die wenigen zentralen Stellen ändern, die den grössten visuellen Impact haben, bevor die langen Landing-Seiten angegangen werden.

Schicht 01 · Aufwand
KLEIN
Design-Token
Fundament
CSS-VARIABLEN, FONTS & TAILWIND-CONFIG

Die wichtigsten 3 Dateien — hier sitzen alle Design-Token. Änderungen hier wirken sich sofort auf das gesamte Frontend aus, ohne dass einzelne Seiten angefasst werden müssen. Fonts rausschmeissen, Farb-CSS-Variablen ersetzen, Tailwind-Tokens umbenennen.

api/resources/views/partials/head.blade.php REPLACE
app/tailwind.config.js REPLACE
app/src/style.css UPDATE
Wichtig head.blade.php: Google Fonts (Outfit, Manrope) → Bebas Neue + DM Sans + DM Mono. CSS-Variablen --anthracite, --electric-blue, --neon-green → Libers-Variablen. Klassen .glass-card, .glass-nav, .btn-primary, .btn-accent, .text-electric, .text-neon, .hero-pattern neu definieren — nicht löschen, ummappen (spart Arbeit in den Landing-Seiten).
Aufwand
3 Dateien
Schicht 02 · Aufwand
KLEIN
Shared
Partials
NAVIGATION, FOOTER, VUE APP-SHELL

Navigation und Footer sind shared Partials — einmal geändert, überall wirksam. Blade-Navigation für Landing-Seiten, Vue AppNavigation für das Dashboard. Logo-Swap, Markennamen ersetzen, Link-URLs anpassen.

api/resources/views/partials/navigation.blade.php UPDATE
api/resources/views/partials/footer.blade.php UPDATE
app/src/components/AppNavigation.vue UPDATE
app/src/components/AppFooter.vue UPDATE
Logo: /llmoready_logo.svg → Libers SVG · «LLMO Ready» → «Libers Suite» · glass-navbg-black border-b · btn-accent (neongrün) → Libers CTA-Stil · alle llmoready.com URLs updaten.
Aufwand
4 Dateien
Schicht 03 · Aufwand
KLEIN
Assets &
Public Files
LOGOS, FAVICON, OG-IMAGE

Alle Logo-Dateien im api/public/ und im landing/ Verzeichnis ersetzen. Libers SVGs (bereits vorhanden in libers.works Repo) nach api/public/ kopieren. Favicon, OG-Image neu erstellen.

api/public/llmoready_logo.svg → libers-logo-weiss.svg REPLACE
api/public/llmo-favicon.png → libers-icon.svg REPLACE
api/public/og-image.jpg → libers Libers OG (1200×630) NEU
api/public/llmo.png, llmoready_logo*.svg → Libers-Varianten REPLACE
landing/*.svg, *.png — spiegelgleich wie api/public/ REPLACE
Aufwand
~8 Dateien
Schicht 04 · Aufwand
MITTEL
E-Mail
Templates
EMAIL LAYOUT + ~40 INHALT-TEMPLATES (DE+EN)

Das zentrale E-Mail-Layout steuert Hintergrund, Logo, Akzentfarbe und Footer aller E-Mails. Die ~20 Inhalt-Templates (je DE+EN) enthalten aber zusätzlich hardcodierte Inline-Farben für Links und CTA-Buttons — #00d4ff und #00ff88 direkt im HTML-Attribut style="". Kein zentraler Hebel, muss per Search & Replace über alle Dateien laufen.

api/resources/views/emails/layout.blade.php REPLACE
emails/welcome.blade.php + welcome-en.blade.php UPDATE
emails/trial-*.blade.php (4 Dateien DE+EN) UPDATE
emails/password-reset, account-deleted, report, … (~35 weitere) UPDATE
layout.blade.php: Logo-URL → api.libers.ai/libers-logo.png · Hintergrund #2d3748 → #0D0D0D · Gradient #00d4ff → #00ff88#D62B2B (3px Linie) · support@llmoready.com → support@libers.ai · Footer-Link → libers.ai

Alle Inhalt-Templates: Search & Replace: #00d4ff#D62B2B · #00ff88#D62B2B · «LLMO Ready» → «Libers Suite» · @llmoready.com → @libers.ai
Aufwand
~40 Dateien
Schicht 05 · Aufwand
GROSS
Landing
Blade Views
~25 BLADE-SEITEN — BRAND-TEXT + SCHEMA.ORG

Die Landing-Seiten sind lang (index.blade.php: 1651 Zeilen) und durchzogen von Tailwind-Klassen, Brand-Namen und hardcodierten URLs. Durch die Token-Ummapping-Strategie aus Schicht 01 entfällt ein Grossteil der Klassen-Arbeit — die visuellen Klassen werden in head.blade.php neu definiert, nicht in jeder Seite ersetzt. Was manuell bleibt: Texte, URLs, Schema.org JSON-LD.

landing/index.blade.php (1651 Zeilen) UPDATE
landing/website-analyzer.blade.php UPDATE
landing/website-report.blade.php UPDATE
landing/about.blade.php UPDATE
landing/privacy.blade.php, terms.blade.php, support.blade.php, … UPDATE
landing/documentation*.blade.php (4 Dateien) UPDATE
landing/messe-*.blade.php, star-*.blade.php (je 3 Dateien) UPDATE
blog/index.blade.php, blog/show.blade.php + Partials UPDATE
Was in jeder Seite zu tun ist: «LLMO Ready» → «Libers Suite» · «llmoready.com» → «libers.ai» · Schema.org JSON-LD in index.blade.php (Organization name, url, sameAs, logo) · Meta-Tags ($title, $description, $canonical) auf Libers anpassen · Twitter @llmoready → @libers_ai

Was durch Token-Ummapping entfällt: Klassen wie btn-accent, glass-card, text-electric, section-pattern-bg werden in head.blade.php neu definiert — kein Suchen & Ersetzen in 1651 Zeilen nötig.
Aufwand
~25 Dateien
Schicht 06 · Aufwand
MITTEL
Server &
Config
ENV, CORS, RESEND, SHOPIFY APP

Nicht sichtbar, aber kritisch: Alle Umgebungsvariablen auf dem Hetzner-Server, CORS-Whitelist, Resend-Absender-Domain und die Shopify App müssen auf die neuen Domains zeigen. Kein Code-Change im Repo — direkt auf dem Server und in den jeweiligen Dashboards.

.env (Hetzner): APP_NAME, APP_URL, FRONTEND_URL, MAIL_FROM_ADDRESS SERVER
config/cors.php: CORS_ALLOWED_ORIGINS erweitern um libers.ai Domains UPDATE
Resend Dashboard: Domain libers.ai verifizieren, SPF/DKIM setzen EXTERN
shopify-app/: API-URL-Env-Variable auf api.libers.ai, Vercel redeploy UPDATE
wordpress-plugin/: API-URL updaten, neue Version publishen UPDATE
Aufwand
~5 Punkte
3
Token-Dateien ändern — maximale visuelle Wirkung sofort
~40
E-Mail-Templates — Search & Replace Inline-Farben
~25
Landing Blade Pages — Brand-Text & Schema.org
0
App-Logik-Änderungen — kein Functional-Code betroffen
02 — Search & Replace Liste

GLOBALE SUCHE. EINMAL.

Diese Ersetzungen können projekt-weit mit einem einzigen Find & Replace über alle Dateien laufen. In VSCode oder per grep -r + sed. Reihenfolge einhalten — spezifische Strings zuerst, dann generische.

Kategorie Suchen (ALT) Ersetzen (NEU) Scope
Brand Name LLMO Ready Libers Suite alle Blade + Vue + E-Mails
Brand Name LLMOReady Libers alle Blade + Vue
Domain llmoready.com libers.ai alle Blade + Vue + Config
Domain API api.llmoready.com api.libers.ai alle, zuerst (spezifischer)
Domain App app.llmoready.com app.libers.ai alle, zuerst (spezifischer)
E-Mail support@llmoready.com support@libers.ai E-Mails + Footer + Config
E-Mail contact@llmoready.com contact@libers.ai E-Mails + Schema.org
Social @llmoready @libers_ai head.blade.php + Schema.org
Farbe Inline #00d4ff #D62B2B nur E-Mail-Templates
Farbe Inline #00ff88 #D62B2B nur E-Mail-Templates
Farbe Inline #2d3748 (E-Mail BG) #0D0D0D nur E-Mail-Templates
Copyright © 2025-26 LLMO Ready © 2026 Libers GmbH Footer + E-Mail-Layout
Logo-Pfad /llmoready_logo.svg /libers-logo-weiss.svg Nav + E-Mail-Layout
Logo-Pfad /llmo-favicon.png /libers-icon.svg head.blade.php
Tailwind Font font-outfit / font-headline font-bebas alle Vue + Blade (vorsichtig)
Tailwind Font font-manrope font-dm-sans alle Vue + Blade
Achtung Tailwind-Font-Replace: font-outfit und font-manrope müssen erst im tailwind.config.js als neue Tokens definiert sein, bevor die Klassen in den Blade/Vue-Dateien umbenannt werden. Sonst brechen alle Stile sofort. Reihenfolge: Config → dann Replace in Views.
03 — Kern-Strategie

TOKEN-FIRST. KEIN REWRITE.

STRATEGIE A
KLASSEN UMMAPPEN STATT ERSETZEN

Die alten Utility-Klassen (.btn-accent, .glass-card, .glass-nav, .text-electric, .section-pattern-bg) in head.blade.php nicht löschen — sondern neu definieren. .btn-accent bekommt Libers-Red-Styles, .glass-card wird eine schlichte Box ohne Blur.

Vorteil: ~1651 Zeilen index.blade.php und 24 weitere Landing-Seiten müssen nicht nach Tailwind-Klassen durchsucht werden. Nur Texte und URLs müssen noch manuell angepasst werden.

STRATEGIE B
VUE: TAILWIND TOKENS UMBENENNEN

Im Vue Dashboard (tailwind.config.js) die Farb-Tokens direkt umbenennen: anthraciteink-black, electriclibers-red. Das bedeutet, dass alle Vue-Komponenten die alten Klassen (bg-anthracite, border-electric) nicht mehr funktionieren — diese müssen dann in allen Vue-Dateien ersetzt werden.

Alternativ: Alte Token-Namen als Alias belassen und auf neue Farben zeigen lassen. anthracite: { DEFAULT: '#0D0D0D' } — das Dashboard sieht sofort anders aus, ohne jede Vue-Datei anzufassen. Technisch unkorrekt, aber pragmatisch als erster Schritt.

STRATEGIE C
E-MAILS: LAYOUT FIRST

Zuerst emails/layout.blade.php komplett auf Libers CI umbauen. Damit sehen alle E-Mails schon nach Libers aus — auch wenn die Inhalt-Templates noch alte Farben für Links haben. Dann in einem zweiten Schritt die Inhalt-Templates per Search & Replace bereinigen.

Test: Jede E-Mail-Klasse hat einen Test-Trigger über das Artisan-Kommando. Nach dem Layout-Update: php artisan tinker → E-Mail manuell versenden und visuell prüfen bevor alle 40 Templates angepasst werden.

STRATEGIE D
SCHEMA.ORG SEPARAT BEHANDELN

Das JSON-LD in landing/index.blade.php enthält Organization-Schema, SoftwareApplication-Schema und Product-Schema — alle mit «LLMO Ready» und «llmoready.com». Diese sind nicht sichtbar im UI, aber relevant für LLM-Sichtbarkeit (das ist unser eigenes Produkt!). Separat prüfen und auf Libers Suite anpassen.

Ironie: Wenn unser LLM-Score-Tool sich selbst schlecht schematisiert, ist das ein peinliches Demo-Problem. Schema.org-Update hat Priorität vor rein visuellen Anpassungen.

04 — Empfohlene Reihenfolge

IN DIESER FOLGE.

01
ASSETS DEPLOY
Libers SVGs, Favicon in api/public/ kopieren. Voraussetzung für alles andere.
02
HEAD.BLADE + TAILWIND CONFIG
Fonts & CSS-Variablen. Sofortiger visueller Impact auf alle Seiten.
03
NAV + FOOTER BLADE
Logo, Brand, Links. Überall gleichzeitig wirksam.
04
VUE APP-SHELL
AppNavigation + AppFooter. Dashboard sieht nach Libers aus.
05
EMAIL LAYOUT
layout.blade.php komplett neu. Alle E-Mails profitieren sofort.
06
GLOBAL SEARCH & REPLACE
Tabelle aus Schicht 02 abarbeiten. Brand-Namen, URLs, E-Mails, Farben.
07
SCHEMA.ORG + META
JSON-LD in index.blade.php. Titles + Descriptions anpassen.
# Globales Search & Replace via CLI (nach Token-Updates)
grep -rl "LLMO Ready" ./api/resources ./app/src | xargs sed -i '' 's/LLMO Ready/Libers Suite/g'
grep -rl "llmoready\.com" ./api/resources ./app/src | xargs sed -i '' 's/llmoready\.com/libers.ai/g'
grep -rl "00d4ff" ./api/resources/views/emails | xargs sed -i '' 's/00d4ff/D62B2B/g'
# macOS: sed -i '' 's/.../.../g' · Linux: sed -i 's/.../.../g'

KEIN REWRITE.
EIN SYSTEM-WECHSEL.
SCHICHT FÜR SCHICHT.