# Migration: PhyProof-Patterns → Starter-Template

> Übernahme generischer Patterns aus `wm-phytolab/phyproof-shop-tibi-2025` in `cms/tibi-svelte-starter`.

**Erstellt:** 2026-02-25  
**Quelle:** `/WM_Dev/src/gitbase.de/wm-phytolab/phyproof-shop-tibi-2025`

---

## Pakete & Reihenfolge

| # | Paket | Status | Abhängig von | Dateien |
|---|-------|--------|-------------|---------|
| 1 | [Foundation](paket-1-foundation.md) | ✅ | — | requestsStore, serverBuildInfo, formContext, clickOutside, utils, store, types |
| 2 | [Build-System](paket-2-build-system.md) | ✅ | Paket 1 | writeBuildInfo, esbuild-wrapper, ES-targets, Sentry tunnel, SPA-rewrites, versionCheck |
| 3 | [Toast + Loading](paket-3-toast-loading.md) | ⬜ | Paket 1 | toast.ts, ToastContainer, LoadingBar, Portal |
| 4 | [API-Layer](paket-4-api-layer.md) | ⬜ | 1, 2, 3 | api.ts Rewrite (fetch, dedup, loading, version-check) |
| 5 | [SSR Caching](paket-5-ssr-caching.md) | ⬜ | — | ssr.yml, ssr-server.js, utils.js, clear_cache.js, get_read.js |
| 6 | [Widgets + Nav](paket-6-widgets-navigation.md) | ⬜ | 1, 3, 4 | Button, Form, Input, Select, SearchableSelect, MedialibImage, Pagination, Carousel, Tooltip, DebugFooterInfo, navigation.ts |

**Hinweis:** Paket 5 (SSR) ist Backend-only und kann parallel zu den Frontend-Paketen umgesetzt werden.

---

## Parallelisierung

```
Paket 1 (Foundation) ──→ Paket 2 (Build) ──→ Paket 4 (API) ──→ Paket 6 (Widgets)
                    └──→ Paket 3 (Toast) ──┘
                    
Paket 5 (SSR) ────────── (unabhängig, jederzeit) ──────────────┘
```

---

## Bewusst nicht übernommen

| Feature | Grund |
|---------|-------|
| `auth.ts` | Zu komplex als Default — pro Projekt entscheiden |
| Pagebuilder | Block-Registry ist immer projektspezifisch |
| Video Tours | Nischig — als separates Tool |
| i18n-Erweiterungen | Sprachsetup-abhängig |
| `validators.ts` | Passwort-Stärke zu spezifisch |
| Shop-Widgets | Cart, Filter, Pricing usw. |
| `@tailwindcss/typography` | Dependency nur bei Bedarf |
| `navigationData.ts` | CMS-Navigation braucht Collection-Setup |
| `CookieConsent.svelte` | GA-ID hardcoded, GDPR-Setup projektspezifisch |
