xPulse
🇩🇪 DE

xpulse-web – v1 → v2 Migrationskonzept

Status: ABGESCHLOSSEN · April 2026 Beschreibt den Weg von der statischen xpulse-web v1.0.0 zur komponentenbasierten v2.0.0 auf Basis des @xpulse/* Package-Stacks.


Ausgangslage: v1.0.0 (WAR)

xpulse-web v1.0.0 war eine vollständig statische Website:

public/
index.html ← alle Styles inline, translations.js als Script
privacy/index.html
terms/index.html
disclaimer/index.html
contact/index.html
imprint/index.html
status/index.html
assets/
translations.js ← monolithisches i18n System (Strings + Engine + Dropdown-CSS)
favicon.svg

Deployment: nginx Container hinter Traefik – kein Node.js Server.


Ergebnis: v2.0.0 (IST)

xpulse-web v2.0.0 läuft auf einem Node.js Server und baut vollständig auf dem @xpulse/* Package-Stack auf.

src/
index.js ← app.init() → app.start() → app.stop()
controllers/
index.js ← GET /
privacy.js
terms.js
disclaimer.js
contact.js
imprint.js
status.js
templates/
shared/
base.tpl.html ← gemeinsames Shell-Template
platform.tpl.html ← Landing (extends shared/base)
privacy.tpl.html ← (extends shared/base)
terms.tpl.html
disclaimer.tpl.html
contact.tpl.html
imprint.tpl.html
status.tpl.html
translations/
de/
platform.footer.json
platform.index.json
platform.privacy.json
platform.terms.json
platform.disclaimer.json
platform.contact.json
platform.imprint.json
platform.status.json
en/
(identische Struktur)
themes/
web.css ← Layout-CSS, verwendet --xpulse-* Tokens
public/
assets/
favicon.svg
status/
status.json.example ← Vorlage für Server-seitige status.json

Was sich geändert hat

Thema v1 v2
Server nginx static Node.js (@xpulse/http)
Routing Dateisystem-Pfade @xpulse/controller Auto-Discovery
Templates HTML-Dateien mit inline CSS @xpulse/template (extends/slots)
i18n Client-seitig, translations.js, data-i18n Attribute SSR via @xpulse/i18n, {% t('key', _route) %}
Sprach-URLs Keine /de/, /en/ Prefix (automatisch via i18n)
Design System CSS inline wiederholt @xpulse/theme – CSS Tokens + Switcher
Status-Seite window.__xpRenderStatus Hack SI-Objekt mit SSR-gerenderten Strings

Was gleich geblieben ist

Was Warum
URL-Struktur (/privacy/, /terms/ etc.) SEO, bestehende Links
Client-seitige Health-Checks in Status-Seite Bewährt, kein Mehrwert in Server-Side für v2
localStorage Key xpulse_lang Konsistenz zwischen Chat und Web
de/concept/v1-to-v2.md 2026-04-20