Hacker ApprovedDepartments

htmx

Hacker Approved

Ranked 2 of 21 JavaScript frameworks by recommenders

A small, dependency-free library that adds interactivity to server-rendered HTML with a few attributes, avoiding heavy JavaScript frameworks; critics say complex, stateful apps hit limits.

A small, dependency-free library that adds interactivity to server-rendered HTML with a few attributes, avoiding heavy JavaScript frameworks; critics say complex, stateful apps hit limits.

440 people gave an opinion

recommend it
320
criticize it
120
approval share
73%
Each figure is 5 people. RecommendsCriticizes

Recommended in 13 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: recommended
  9. July 2026: recommended
  10. August 2026: recommended
  11. September 2026: recommended
  12. October 2026: recommended
  13. November 2026: recommended (month in progress)

Owned for 2 years

Median of the 12 owners who said how long they have had it.

Each square is one year.

Why it carries the badge

  • 320 people recommend itNeeds 10 or more, met.
  • 2.7 recommenders for every criticNeeds 2 to 1 or better, met.
  • Recommended in 13 of 13 monthsNeeds 4 or more, met.

The same three rules apply to every product, and the badge can’t be bought. How the badge works

What people say about it

The reasons people give, with the number of comments that give each one. Open a reason to read what they said.

Why people recommend it

Each mark is one comment

  • Simpler than heavy JS frameworks

    “Htmx is deliberately maintained as a single, no-dependency file of about 5000loc. The maintainers are of the opinion that it reduces complexity, and I tend to agree.”

    Comment from 31 Aug 2026 in “Htmx 4.0”

    “it solves a UX problem that frameworks like Django and Rails suffer from, without needing to bring in something heavy like React”

    Comment from 18 Dec 2025 in “Please just try HTMX”

    “The magic of this is that it's pretty easy to make SPA-like webapps with no javascript or complex client side framework.”

    Comment from 18 Dec 2025 in “Please just try HTMX”
  • Pairs well with server frameworks

    “Django + Postgres on the backend plus a frontend of HTMX + alpine.js for a light touch of interactivity where needed is a killer combination”

    Comment from 28 Aug 2026 in “Htmx 4.0”

    “Template Partials and HTMX seems like the Django equivalent of View Components and Stimulus for Rails, which is nice.”

    Comment from 10 Dec 2025 in “Django: what’s new in 6.0”

    “if your backend is already a non-JavaScript server rendered framework like Django then HTMX makes a ton of sense”

    Comment from 27 Jul 2026 in “Removing React.js from the codebase and adapting Htmx for UI interactivity”
  • Interactivity via simple HTML attributes

    “That's the thing that htmx gives you out of the box, along with error handling, progress indicator support, history support, animated transitions”

    Comment from 18 Dec 2025 in “Please just try HTMX”

    “Just a few attributes and we get some very reasonable progressively enhanced client/server interactive elements without full page loads.”

    Comment from 29 Aug 2026 in “Htmx 4.0”

    “I prefer to specify exactly what parts of the page get replaced in much simpler terms, a CSS selector, with `hx-target`.”

    Comment from 3 Nov 2025 in “</> Htmx – The Fetch()ening”
  • Server holds state, no sync issues

    “With htmx, there is no frontend state. The html always just reflects the state of the server passively, meaning it cannot go out of sync.”

    Comment from 31 Aug 2026 in “Htmx 4.0”

    “The right (IMO) way to use HTMX is as a replacement for sending JSON over the wire and rendering it into HTML on the client”

    Comment from 18 Dec 2025 in “Please just try HTMX”

    “HTMX really shifts the complexity back to the server in a way that feels more honest and easier to reason about.”

    Comment from 7 Jan 2026 in “Htmx: High Power Tools for HTML”

What people warn about

Each mark is one comment

  • Struggles with complex, stateful apps

    “I find htmx ideal for things that should be static to begin with, and for things that are dynamic, I fail to see how it can handle synchronisation?”

    Comment from 27 Jul 2026 in “Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy”

    “State management is the key thing - you end up needing to put way more on the backend then you'd otherwise like to.”

    Comment from 18 Dec 2025 in “Please just try HTMX”

    “eventually hit a complexity wall where we were spending more time fighting the tool than solving the business need”

    Comment from 1 Aug 2026 in “Let's Make the Worst Htmx”
  • Logic scattered across server and templates

    “In HTMX, the logic is spread. What I see is a construct that says "Replace this with the mystery meat from the backend, whatever that is".”

    Comment from 19 Dec 2025 in “Please just try HTMX”

    “HTMX made things more difficult as it required me to move back to mixing presentation concerns with business-logic and data concerns”

    Comment from 28 Aug 2026 in “Htmx 4.0”

    “You need to track a lot of identifiers for htmx to work properly, and your template and view logic needs to make that make sense.”

    Comment from 18 Dec 2025 in “Please just try HTMX”
  • Limited attributes, still needs JavaScript

    “That’s basically a massive hack. Every real world app will need enough js that htmx will require you to put js on front end”

    Comment from 27 Jul 2026 in “Removing React.js from the codebase and adapting Htmx for UI interactivity”

    “But it seems very narrow cased, there are only so many attributes and their values and you cannot implement anything else.”

    Comment from 19 Dec 2025 in “Please just try HTMX”
  • Awkward JSON handling

    “hx-on::after-request response it provides to your callback function does not automatically parse JSON content types”

    Comment from 3 Nov 2025 in “</> Htmx – The Fetch()ening”

    “the htmx developer has made it very clear to me that they are intentionally, ideologically allergic to JSON”

    Comment from 9 Nov 2025 in “Local First Htmx”

Other JavaScript frameworks people recommend

The four most recommended other JavaScript frameworks, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.

htmx compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
React48256046%1310 yrs21 owners—
htmxThis page32012073%132 yrs12 ownersApproved
Svelte1513780%133 yrs9 ownersApproved
Vue1213976%139.9 yrs4 ownersApproved
Angular829646%118 yrs10 owners—
See all 21 JavaScript frameworks, ranked

What people said

40 of the 679 comments that mention it, newest first. Each links to the original comment.

“With htmx, there is no frontend state. The html always just reflects the state of the server passively, meaning it cannot go out of sync.”

RecommendsComment from 31 Aug 2026 in “Htmx 4.0”

“Htmx is deliberately maintained as a single, no-dependency file of about 5000loc. The maintainers are of the opinion that it reduces complexity, and I tend to agree.”

RecommendsComment from 31 Aug 2026 in “Htmx 4.0”

“It's exactly because he followed the past two decades of web dev that htmx avoids almost everything about it.”

RecommendsComment from 30 Aug 2026 in “Htmx 4.0”

“Just a few attributes and we get some very reasonable progressively enhanced client/server interactive elements without full page loads.”

RecommendsComment from 29 Aug 2026 in “Htmx 4.0”

“HTMX made things more difficult as it required me to move back to mixing presentation concerns with business-logic and data concerns”

CriticizesComment from 28 Aug 2026 in “Htmx 4.0”

“For me at least, HTMX just makes more sense: you control the flow of content from the client, not from the server as you do with Turbo.”

RecommendsComment from 28 Aug 2026 in “Htmx 4.0”

“Django + Postgres on the backend plus a frontend of HTMX + alpine.js for a light touch of interactivity where needed is a killer combination”

RecommendsComment from 28 Aug 2026 in “Htmx 4.0”

“the main draw of HTMX encourages a completely different app architecture than what the average dev would arrive at with plain JS”

RecommendsComment from 28 Aug 2026 in “Htmx 4.0”

“Its great for forms but that shopping cart example needs code scattered across multiple functions and templates.”

MixedComment from 12 Aug 2026 in “HTML over WebSockets: real-time SPAs with barely any JavaScript”

“the impact of recursivedoubts i.e htmx creator on software engineering practices and adhering to simplicity is monumental”

RecommendsComment from 8 Aug 2026 in “Carl's Required Reading”

“eventually hit a complexity wall where we were spending more time fighting the tool than solving the business need”

CriticizesComment from 1 Aug 2026 in “Let's Make the Worst Htmx”

“The criticisms I’m seeing here are all things that are accepted without question in other frameworks but when htmx does it, suddenly it’s too much.”

RecommendsComment from 28 Jul 2026 in “Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy”

“Using a tool such as htmx is an effective way for them to solve current challenges while minimizing complexity.”

RecommendsComment from 28 Jul 2026 in “Removing React.js from the codebase and adapting Htmx for UI interactivity”

“The problem I had was that the entire experience became really slow when I had it all working together as one "response"”

MixedComment from 27 Jul 2026 in “Removing React.js from the codebase and adapting Htmx for UI interactivity”

“if your backend is already a non-JavaScript server rendered framework like Django then HTMX makes a ton of sense”

RecommendsComment from 27 Jul 2026 in “Removing React.js from the codebase and adapting Htmx for UI interactivity”

“That’s basically a massive hack. Every real world app will need enough js that htmx will require you to put js on front end”

CriticizesComment from 27 Jul 2026 in “Removing React.js from the codebase and adapting Htmx for UI interactivity”

“I find htmx ideal for things that should be static to begin with, and for things that are dynamic, I fail to see how it can handle synchronisation?”

MixedComment from 27 Jul 2026 in “Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy”

“When we design apps in a way that respects the conventions of REST (hypermedia and resource-oriented design), htmx slots in perfectly.”

RecommendsComment from 27 Jul 2026 in “Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy”

“I use htmx for loading and updating resources and I want those operations to work as well as possible even without JavaScript”

RecommendsComment from 26 Jul 2026 in “How I use HTMX with Go”

“One of the most delightful little swag stunts I've ever seen, and emblematic of the HTMX crew just how much they care about craft and delight in everything they do.”

RecommendsComment from 26 Jul 2026 in “Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy”

“Any personal web projects I still use htmx and reached a decent flow with it. Completely simplifies web dev, imo.”

RecommendsComment from 15 Jul 2026 in “How I use HTMX with Go”

“htmx is extremely easy to integrate with your clojure(script) projects, i found it to be quite pleasant paradigm”

RecommendsComment from 8 May 2026 in “ClojureScript Gets Async/Await”

“HTMX really shifts the complexity back to the server in a way that feels more honest and easier to reason about.”

RecommendsComment from 7 Jan 2026 in “Htmx: High Power Tools for HTML”

“WebSocket connectivity is one aspect; there is another part of logic and architecture where it falls short.”

CriticizesComment from 31 Dec 2025 in “Doom in Django: testing the limits of LiveView at 600.000 divs/segundo”

“I have just shipped a very useful and interactive app surprisingly quickly for my customer using just htmx with a little Javascript.”

RecommendsComment from 28 Dec 2025 in “Replacing JavaScript with Just HTML”

“all the users will be forced to reload the giant JS bundle over and over again, as opposed to just reloading a single resource on a single page like they would with the htmx approach”

RecommendsComment from 21 Dec 2025 in “Please just try HTMX”

“But it seems very narrow cased, there are only so many attributes and their values and you cannot implement anything else.”

MixedComment from 19 Dec 2025 in “Please just try HTMX”

“hx-trigger in the response header would handle that cleanly. Fires an event client-side; one global handler shows the error.”

RecommendsComment from 19 Dec 2025 in “Please just try HTMX”

“In HTMX, the logic is spread. What I see is a construct that says "Replace this with the mystery meat from the backend, whatever that is".”

CriticizesComment from 19 Dec 2025 in “Please just try HTMX”

“State management is the key thing - you end up needing to put way more on the backend then you'd otherwise like to.”

CriticizesComment from 18 Dec 2025 in “Please just try HTMX”

“That's the thing that htmx gives you out of the box, along with error handling, progress indicator support, history support, animated transitions”

RecommendsComment from 18 Dec 2025 in “Please just try HTMX”

“You need to track a lot of identifiers for htmx to work properly, and your template and view logic needs to make that make sense.”

CriticizesComment from 18 Dec 2025 in “Please just try HTMX”

“it solves a UX problem that frameworks like Django and Rails suffer from, without needing to bring in something heavy like React”

RecommendsComment from 18 Dec 2025 in “Please just try HTMX”

“The magic of this is that it's pretty easy to make SPA-like webapps with no javascript or complex client side framework.”

RecommendsComment from 18 Dec 2025 in “Please just try HTMX”

“The right (IMO) way to use HTMX is as a replacement for sending JSON over the wire and rendering it into HTML on the client”

RecommendsComment from 18 Dec 2025 in “Please just try HTMX”

“Template Partials and HTMX seems like the Django equivalent of View Components and Stimulus for Rails, which is nice.”

MixedComment from 10 Dec 2025 in “Django: what’s new in 6.0”

“the htmx developer has made it very clear to me that they are intentionally, ideologically allergic to JSON”

CriticizesComment from 9 Nov 2025 in “Local First Htmx”

“am I wrong to think that if you use hx-boost to swap in fragments, then the URL that gets updated/saved in history wouldn't actually load the same page”

MixedComment from 4 Nov 2025 in “</> Htmx – The Fetch()ening”

“I prefer to specify exactly what parts of the page get replaced in much simpler terms, a CSS selector, with `hx-target`.”

RecommendsComment from 3 Nov 2025 in “</> Htmx – The Fetch()ening”

“hx-on::after-request response it provides to your callback function does not automatically parse JSON content types”

MixedComment from 3 Nov 2025 in “</> Htmx – The Fetch()ening”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.