bigskysoftware/htmx

</> htmx - high power tools for HTML

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 40 minutes ago
Added to GitGenius on September 2nd, 2023
Created on April 13th, 2020
Open Issues & Pull Requests: 678 (+0)
Number of forks: 1,635
Total Stargazers: 49,014 (+0)
Total Subscribers: 216 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 20.5 hours
Mean response time: 140.4 days
90th percentile: 527.0 days
Tracked items: 722

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 97% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "documentation" is answered fastest, typically in about 17 hours, while "enhancement" waits about 14 months. 64% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 10% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 509
New in 7 days: 2
Closed in 7 days: 0
Avg open age: 773 days
Stale 30+ days: 495
Stale 90+ days: 481

Recent activity

Opened in 7 days: 2
Closed in 7 days: 0
Comments in 7 days: 3
Events in 7 days: 7

Top labels

  • bug (76)
  • enhancement (48)
  • 2.0 (33)
  • documentation (26)
  • htmx 4 (18)
  • help wanted (15)
  • information needed (9)
  • under discussion (7)

Detailed Description

htmx is a lightweight JavaScript library that extends HTML's capabilities by enabling AJAX, CSS transitions, WebSockets, and Server Sent Events directly through HTML attributes. Rather than requiring developers to write JavaScript to handle asynchronous requests and dynamic UI updates, htmx allows these interactions to be declared declaratively in markup using attributes like hx-post and hx-swap. The library is intentionally small at approximately 14 kilobytes minified and gzipped, contains no external dependencies, and is designed to be extensible through a plugin system.

The core philosophy of htmx challenges several arbitrary constraints in web development. The library questions why only anchor tags and form elements should trigger HTTP requests, why only click and submit events should initiate them, why only GET and POST methods should be available, and why responses must always replace the entire page. By removing these limitations, htmx positions itself as completing HTML's potential as a true hypertext system, grounded in REST architectural principles and HATEOAS concepts. The project is the successor to intercooler.js and represents a continuation of that library's approach to simplifying interactive web development.

The repository shows active maintenance and community engagement.

The development workflow is structured around a test-driven approach using mocha for testing, chai for assertions, and sinon for mocking AJAX requests. The test suite is organized into multiple categories including attribute-specific tests, core functionality tests, regression tests, extension tests, and manual tests that cannot be automated. Developers can modify the main source file at src/htmx.js and add corresponding tests in the appropriate test directories. The project provides clear contribution guidelines and accepts sponsorships for those unable to contribute code directly.

The library's classification spans multiple categories including html enhancement, dynamic UI, AJAX simplification, event-driven architecture, and frontend tools, reflecting its broad applicability across modern web development scenarios. The homepage at htmx.org provides comprehensive documentation and examples demonstrating the library's capabilities for building modern user interfaces with minimal JavaScript overhead.