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)
[ ] __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

Weiteres Build-Target:

yarn build:admin    # Admin-Module
Description
Starter Kit für SPAs mit Svelte und TibiCMS inkl. SSR
Readme MIT 547 MiB
Languages
TypeScript 41.4%
Svelte 36.2%
JavaScript 14.3%
Shell 4%
CSS 1.8%
Other 2.2%