apairon 4a604bab0b refactor: streamline SSR setup and remove Babel configuration
- Updated import path for app.server module in SSR hook.
- Removed babel.config.server.json as Babel is no longer needed for async/await transformation.
- Adjusted esbuild configuration to target ESNext and modified output paths.
- Enhanced App.svelte to handle initial content loading during SSR.
- Updated SSR script to load messages synchronously before rendering.
- Simplified build:server script in package.json by removing Babel step.
2026-05-12 15:47:53 +00:00
2022-09-15 15:56:54 +00:00
2022-09-15 15:56:54 +00:00
2022-04-26 11:14:37 +02:00
2025-03-27 13:26:28 +00:00
2021-03-22 13:24:57 +01:00

tibi-starter

Starter Kit für SPAs(s) ;) mit Svelte und TibiCMS inkl. SSR

Neues Projekt aufsetzen? → Skill .agents/skills/tibi-project-setup/SKILL.md

Setup-Checkliste

[ ] Repository geklont und Remotes konfiguriert
[ ] __PROJECT_NAME__ in .env ersetzt (kebab-case)
[ ] __TIBI_NAMESPACE__ in .env ersetzt (snake_case)
[ ] __TIBI_NAMESPACE__ in api/config.yml und frontend/.htaccess ersetzt
[ ] Keine verbleibenden __*__-Platzhalter (mit grep prüfen)
[ ] App.svelte hat <svelte:head> mit <title>
[ ] ADMIN_TOKEN in api/config.yml.env gesetzt
[ ] yarn install && yarn upgrade ausgeführt
[ ] make docker-up gestartet
[ ] Website erreichbar unter https://{PROJECT_NAME}.code.testversion.online/
[ ] yarn validate zeigt 0 Fehler und 0 Warnungen
[ ] yarn build und yarn build:server erfolgreich

Architektur

Via Svelte wird eine SPA (Single-Page-App) programmiert. Der Code wird einmal für den Browser aufbereitet und außerdem für den Server kompiliert und transpiliert. Der Server-Code wird in einem tibi-server SSR-Hook eingebunden und generiert fertiges HTML anhand der aktuellen Route — für SEO und optimierte Ladezeiten.

Die Navigation innerhalb der App löst nur API-Aufrufe aus, ohne jedes Mal SSR anzustoßen. Ein Cache in der ssr-Collection minimiert die SSR-Last.

SSR-Details:

  • <title> und <meta description> kommen über <svelte:head> aus App.svelte → SSR injiziert sie in den <!--HEAD-->-Platzhalter von spa.html
  • <html lang> wird vom SSR-Hook (api/hooks/ssr/get_read.js) anhand der URL-Sprache gesetzt
  • SSR-Bundle wird mit yarn build:server erstellt und landet in api/hooks/lib/app.server.js

Der normale Frontend-Build yarn build erzeugt sowohl das Frontend-Bundle als auch das Admin-Modul admin.mjs.

S
Description
Starter Kit für SPAs mit Svelte und TibiCMS inkl. SSR
Readme MIT 601 MiB
Languages
TypeScript 46.9%
Svelte 33.1%
JavaScript 13.4%
Shell 3.2%
CSS 1.5%
Other 1.8%