On this page
Overview
Alpine.js is a lightweight framework that adds JavaScript state and interaction directly to HTML markup. It uses x-data for reactive state and directives such as x-on, x-text, x-show, x-model, and x-for to compose UI behavior.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Install from a script tag or import it as a module
The official installation guide supports both a CDN script tag and an npm module workflow that calls Alpine.start().
Sources: [2]
Best fit
Fits progressive interaction on server-rendered HTML
Dropdowns, counters, search inputs, and similar local behaviors can be added without adopting a larger component runtime for the entire page.
Sources: [1]
Before adoption
Check extension registration order and call Alpine.start only once
For module usage, the installation guide places extension registration after importing Alpine and before Alpine.start(), and warns against starting Alpine more than once per page.
Sources: [2]
Official sources
- [1]Alpine.js v3.17.4 Start Here(2026-10-06)
- [2]Alpine.js v3.17.4 Installation(2026-10-06)
- [3]Alpine.js v3.17.4 State(2026-10-06)
- [4]Alpine.js v3.17.4 package metadata(2026-10-06)
- [5]Alpine.js v3.17.4 release(2026-10-06)
Supplemental curator note
Alpine.js fits server-rendered pages that need focused interactions such as dropdowns and search without adopting a larger application runtime. Module users should verify extension registration order and avoid starting Alpine more than once.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/alpinejs/alpine.git - 2
Enter the repository
cd alpine - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
31,960 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- SortableJS31,186 Stars
4 shared tag(s) · 1 shared category(s)
reorder list items with drag and drop within or across lists while supporting touch input
JavaScript - SweetAlert218,098 Stars
4 shared tag(s) · 1 shared category(s)
replace alert, confirm, and prompt dialogs with WAI-ARIA-aware popups that resolve through Promises
JavaScript - flatpickr16,464 Stars
4 shared tag(s) · 1 shared category(s)
pick dates, times, ranges, and multiple days with a dependency-free UI and configurable disabled dates and locales
TypeScript - Tippy.js12,240 Stars
4 shared tag(s) · 1 shared category(s)
position tooltips, popovers, and dropdowns with Popper and attach them to hover, focus, or click interactions
JavaScript - IMask5,182 Stars
4 shared tag(s) · 1 shared category(s)
apply phone, number, date, and other input masks while separating displayed, unmasked, and typed values
TypeScript - Storybook91,200 Stars
4 shared tag(s)
capture UI states once and reuse them across docs, interaction tests, and agent tooling
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.