diff --git a/src/components/slides/javascript/10-external-alpinejs/alpine-attributes.astro b/src/components/slides/javascript/10-external-alpinejs/alpine-attributes.astro
new file mode 100644
index 0000000..fac3b4b
--- /dev/null
+++ b/src/components/slides/javascript/10-external-alpinejs/alpine-attributes.astro
@@ -0,0 +1,65 @@
+ Um ein HTML-Element als Alpine-Komponente zu initialisieren und Daten Reaktiv zu halten Um HTML-Elemente abhängig einer Variable anzuzeigen Um auf Nutzer-Interaktionen mit anderen Elementen zu reagieren Um Text anzuzeigen Render HTML-Strings ohne diese zu escapen Um andere HTML-Element Attribute an eine Variable zu binden (um damit Attribute zu setzen) Um eine Variable gegen ein Input-Element zu binden Zum iterativen Rendern von Listen Um Übergänge zu definieren Um Reaktiv auf Änderungen von Variablen zu reagieren Um HTML-Elemente an eine Variable zu binden um schneller damit interagieren zu können Um HTML-Elemente anhand bestimmter Bedingungen zu mounten/unmounten Globale Funktionen in Alpine dienen als eine Art Convencience Layer für bereits existierende Funktionalität (um z.B. ein Data-Objekt in JS zu definieren) Um ein wiederverwendbares x-data Objekt zu erschaffen Bietet die Möglichkeit um einen globalen State zu definieren Bietet eine bequeme Möglichkeit ein wiederverwendbares x-bind Objekt zu erstellen.Alpine Attribute
+ x-data
+ x-show
+ x-on
+ x-text
+ x-html
+ x-bind
+ x-model
+ x-for
+ x-transition
+ x-effect
+ x-ref
+ x-if
+ Globale Funktionen
+ Alpine.data()
+ Alpine.store()
+ Alpine.bind()
+
Es wird nun Zeit, auf das nächste "Level" zu steigen, wenn es um die Web-Entwicklung geht
+Wir haben nun alle notwendigen API's angesehen, um mit einer Website auf rudimentäre Art und Weise zu interagieren. Nun haben natürlich viele Leute viele Ideen gehabt, die sich in Bibliotheken und Frameworks manifestiert haben.
+Das heißt für uns: Wir müssen das Rad nicht zum 100sten mal neu Erfinden.
+Wir werden nicht jQuery verwenden. Dafür gibt es aber aus meiner Sicht eine gute und moderne Alternative ohne gleich mit einem Monster-Framework um die Ecke zu kommen: AlpineJS
+AlpineJS ist robustes und minimales tool um Verhalten direkt ins HTML zu stricken. (laut eigener Aussage von AlpineJS)
+Insgesamt gibt es 15 Attribute, 6 Eigenschaften und 2 globale Methoden die ALpine nach außen liefert.
+Sehen wir uns das doch einfach mal genauer an
+AlpineJS hat ein paar Variablen die man zu bestimmten Zeitpunkten nutzen kann. Diese sind generel mit einem "$" prefixed.
+Mit dieser Variable können wir auf das aktuelle Element zugreifen (und es modifizieren wenn wir wollen)
+Mit der Variable $refs
können wir auf alle Referenzen die mit x-ref
angelegt worden sind, zugreifen.
$store
gibt uns die Möglichkeit, auf alle globalen Stores (mithilfe deren Namens) zuzugreifen
$watch
ist eine Funktion die wir innerhalb von Alpine-Komponenten verwenden können um auf reaktiven State und dessen Änderung zu reagieren
Mithilfe von $dispatch
können wir Custom Events versenden, die dann wiederum von Parent-Komponenten verarbeitet werden können
Da wir uns hier mit etwas komplett neuem befassen, legen wir auch ein neues Projekt auf.
+Wir verwenden Vite, um das Grundprojekt zu initialisieren, und verwenden dann npm um AlpineJS zu installieren
+
+ mkdir alpine-test
+ cd alpine-test
+ npm init -y
+ npm install --save-dev alpinejs
+
+ Alpine importieren und starten
+