![AlpineJS Icon](/img/1/alpinejs_1706922995887.png?w=800)
![AlpineJS Icon](/img/1/alpinejs_1706922995887.png?w=192)
AlpineJS
A powerful and lightweight library that enables quick and easy, state management, behavior composing, and interactivity.
Series.
Lessons.
![Video preview](https://videos.adocasts.com/7ba3b914-01a8-4b6d-b9b5-e5f5e05963de/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![Adding Interactivity to our Button](/img/1/11-adding-interactivity-to-our-button_1699821182960.jpeg?w=650)
Adding Interactivity to our Button
In this lesson, we'll add extendable interactivity to our button using AlpineJS. We'll also walk through a demonstration of how we can utilize event propagation in AlpineJS to our advantage.
![Video preview](https://videos.adocasts.com/28430c4f-b75a-49fd-a0ee-a5ebacba5a74/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![Serialize Props as Attributes](/img/1/2023-serializing-props-as-attributes_1699217099174.jpeg?w=650)
Serializing Props as Element Attributes
In this lesson, we'll learn about EdgeJS' serialize only and serialize except utility methods, which allow us to directly serialize key-value pairs from our props as element attributes within our components.
![Video preview](https://videos.adocasts.com/519ac2c1-2018-476e-9749-4c9643509672/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![Component Props & Default State](/img/1/2-2-component-props-and-default-state_1698513458896.jpeg?w=650)
Component Props and Default State
In this lesson, we'll learn how about props and how props and state interact within EdgeJS Components. We'll also take a look at how we can default default state values for our components.
![Video preview](https://videos.adocasts.com/afad0118-ec17-4c6d-acdc-93e5ff796d65/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![EdgeJS and AlpineJS State](/img/1/2-1-edgejs-and-alpinejs-state_1698513182410.jpeg?w=650)
Component State & Passing State from EdgeJS to ApineJS
In this lesson, we'll take a look at how we can define and manage state within EdgeJS Components. We'll also learn how we can pass single properties or full objects from EdgeJS to AlpineJS and our client-side scripts.
![Video preview](https://videos.adocasts.com/1a8569ce-1051-4c9a-9d8a-b6760c39dd4c/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![A Look at Component Reactivity](/img/1/2-0-a-look-at-component-reactivity_1698512931645.jpeg?w=650)
A Look At Component Reactivity
In this lesson, we'll take a look at how we'll approach reactivity within our EdgeJS components using AlpineJS. We'll also briefly discuss where the line between EdgeJS and AlpineJS is, in terms of our component state and reactivity.
![Video preview](https://videos.adocasts.com/f6564b79-6835-4496-aafb-2ec7d3060760/preview.webp)
![Installing AlpineJS and TailwindCSS](/img/1/1-1-alpinejs-tailwindcss_1697825884468.jpeg?w=650)
Getting Started, Installing AlpineJS and TailwindCSS
In this lesson, we'll quickly create a new AdonisJS 5 project to house our components. Then, we'll install the dependencies needed by PinesUI; AlpineJS and TailwindCSS.
![Video preview](https://videos.adocasts.com/db428d8a-f5fc-498c-a5f7-70aa43f18262/preview.webp)
![exploring edgejs-components](/img/1/1-0-edgejs-components_1697825411559.jpeg?w=650)
Exploring EdgeJS' Component System
In this lesson, we'll walk through a high-level overview of this series' objectives, including the various components we'll build throughout this series.