# Alpine.js — Rugged Minimal JS Framework for Your Markup
> Alpine.js is a rugged, minimal framework for composing JavaScript behavior directly in your HTML markup. Like jQuery for the modern web but declarative — reactive data, directives, and state with 15KB gzipped and zero build step.
## Install
Save the content below to `.claude/skills/` or append to your `CLAUDE.md`:
## Quick Use
```html
```
Or via npm:
```bash
npm i alpinejs
```
```ts
import Alpine from "alpinejs";
(window as any).Alpine = Alpine;
Alpine.start();
```
## Intro
Alpine.js is a rugged, minimal framework for composing JavaScript behavior directly in your HTML markup. Built by Caleb Porzio (Livewire creator) as a modern take on what Tailwind did for CSS — 15 directives you can sprinkle on any HTML page without a build step. Perfect for Laravel + Livewire, Rails + Hotwire, and server-rendered apps that need sprinkles of interactivity.
- **Repo**: https://github.com/alpinejs/alpine
- **Stars**: 31K+
- **Size**: ~15KB gzipped
- **License**: MIT
## What Alpine.js Does
- **x-data** — component-scoped reactive state
- **x-show / x-if** — conditional rendering
- **x-for** — list rendering
- **x-model** — two-way binding for inputs
- **x-text / x-html** — content bindings
- **x-on (or @)** — event listeners
- **x-bind (or :)** — attribute bindings
- **x-transition** — enter/leave animations
- **x-init** — run on component init
- **Stores** — global state via `Alpine.store()`
- **Plugins** — persist, focus, intersect, mask, morph
## Architecture
Alpine walks the DOM at `Alpine.start()`, parses directives, and wires reactive Proxies to DOM nodes. Each `x-data` island is independent. No virtual DOM — mutations happen directly on the real DOM.
## Self-Hosting
CDN or npm. No build step required.
## Key Features
- 15KB gzipped
- No build step needed
- 15 directives cover 90 percent of interactivity
- Reactive via Proxy
- Transition helpers
- Global stores
- Plugins ecosystem
- Perfect companion to server-rendered backends
- CDN or bundler friendly
## Comparison
| Framework | Build Step | Scope | Best For |
|---|---|---|---|
| Alpine.js | No | Per-element | Sprinkles of interactivity |
| HTMX | No | Per-element | HTML over the wire |
| Vue | Yes | Component | SPAs |
| Svelte | Yes | Component | SPAs |
| Vanilla JS | No | Manual | Anything |
## FAQ
**Q: Alpine vs HTMX?**
A: HTMX handles server-rendered HTML + partial updates; Alpine handles client-side local state. They're complementary and are often used together.
**Q: Is it suitable for SPAs?**
A: Not really. Alpine is designed for server-first architectures (MPA + sprinkles). For SPAs, use Vue/Svelte/React.
**Q: What's the performance like?**
A: For small-scale scenarios, performance is excellent (no virtual DOM overhead). For large list rendering, it lags behind compile-time frameworks.
## Sources & Credits
- Docs: https://alpinejs.dev
- GitHub: https://github.com/alpinejs/alpine
- License: MIT
---
Source: https://tokrepo.com/en/workflows/alpine-js-rugged-minimal-js-framework-your-markup-3ae90b65
Author: Script Depot