# Bibliotheken und ihre Aufgabe Jede Bibliothek hat genau eine Aufgabe. ## Frontend (`frontend/package.json`) | Bibliothek | Aufgabe | |---|---| | React, React DOM | Oberfläche | | React Router | Seiten und Navigation | | TipTap (`@tiptap/*`) | Artikel-Editor | | d3-geo | Weltkarte: Projektion und Pfade | | d3-zoom, d3-selection, d3-transition | Weltkarte: Zoomen, Verschieben, weiche Übergänge | | topojson-client | Kartendaten entpacken | | `@fontsource/*` | Schriften lokal einbinden (keine Anfrage an Google) | | Vite | Entwicklung und Build | Bewusst ohne Animationsbibliothek: Jeder Design-Hintergrund ist ein einzelner Canvas mit eigener Schleife (Matrix, Blackwall). Es läuft immer nur der Hintergrund des aktiven Designs, also nie zwei Schleifen gleichzeitig. Größen (gzip, gemessen beim Build): Start 120 kB JavaScript + 17 kB CSS (Budget 250 kB). Erst beim Öffnen geladen: Artikel-Editor 131 kB, Weltkarte 44 kB. Schriftdateien lädt der Browser nur für das aktive Design. ## Backend (`backend/requirements.txt`) | Bibliothek | Aufgabe | |---|---| | FastAPI, Uvicorn | API und Auslieferung des Frontends | | httpx | Abrufe nach außen (Sendungsverfolgung, Monitoring, Rezepte, Reise-Infos) | | nh3 | Artikel-HTML bereinigen | Datenbank: SQLite (Python-Standardbibliothek).