{"slug": "htmx", "name": "HTMX", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "JavaScript library that adds AJAX and partial page updates through HTML attributes.", "recommenders": 38, "commenters": 66, "warners": 7, "score": 31.481, "rising": -2.47, "first": "2025-11-03", "latest": "2026-10-13", "why": "Liked for adding interactivity to server-rendered HTML with little JavaScript and no build step, often paired with Go, Django or Spring Boot backends.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 41, "neutral": 18, "compare": 6, "warn": 7}, "spark": [1, 8, 4, 0, 2, 1, 3, 4, 10, 7, 0, 1], "listed": true, "loved": ["Minimal JavaScript", "Backend pairing"], "caveat": "Complexity growth", "short_quote": "It was a very nice experience and I recommend https://htmx.org/examples for the kind of cool things you can do.", "icon": false, "domain": "htmx.org", "github_repo": null, "official_url": "https://htmx.org", "pricing": "open source", "aliases": ["HTMX", "htmx"], "verdict": [{"text": "Liked for adding interactivity to server-rendered HTML with little JavaScript and no build step,", "cites": [{"id": 782617072, "item_id": 48913567, "url": "https://news.ycombinator.com/item?id=48913567", "by": "xp84", "date": "2026-07-14", "stance": "recommend", "quote": "I used HTMX on a recent project and really enjoyed it.", "excerpt": "I used HTMX on a recent project and really enjoyed it. As a person who knows how the Web worked before the invention of AngularJS and React, I deeply appreciate being able to build actual pages and minimize the amount of JS that has to exist. Vanilla JS works fine, but HTMX basically just substitutes for a lot of boilerplate that you'd otherwise have to create just to do the same event handler stuff over and over. If", "context": "knows how the Web worked before AngularJS and React", "use_case": "building web pages", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 788465088, "item_id": 49279068, "url": "https://news.ycombinator.com/item?id=49279068", "by": "mikestorrent", "date": "2026-08-12", "stance": "recommend", "quote": "The appeal is literally a \"fuck you\" to anyone that makes me have to run a build process for a web page", "excerpt": "The appeal is literally a \"fuck you\" to anyone that makes me have to run a build process for a web page, when I used to just be able to click reload and see the reality in front of me in seconds on a machine 1/500th the speed.", "context": "", "use_case": "web pages without build process", "switched_from": "", "story": "HTML over WebSockets: real-time SPAs with barely any JavaScript"}, {"id": 744032864, "item_id": 46502054, "url": "https://news.ycombinator.com/item?id=46502054", "by": "lemonwaterlime", "date": "2026-01-05", "stance": "recommend", "quote": "I sprinkle htmx when I want interactivity", "excerpt": "The challenge for most people is that HTML and Modern CSS are a declarative programming paradigm. You then selectively sprinkle state on top of that. I use HTML and Modern CSS for frontend. I sprinkle htmx when I want interactivity and a tiny amount of plain JavaScript. That gives me a mostly declarative frontend. On the backend I use Haskell, which is also declarative unless you opt into other things. The challenge ", "context": "uses Haskell on the backend", "use_case": "frontend interactivity", "switched_from": "", "story": "CSS sucks because we don't bother learning it (2022)"}, {"id": 741082448, "item_id": 46317653, "url": "https://news.ycombinator.com/item?id=46317653", "by": "didip", "date": "2025-12-18", "stance": "recommend", "quote": "I love HTMX. It felt like a rebirth of PJAX.", "excerpt": "I love HTMX. It felt like a rebirth of PJAX. Server side template rendering is simply the best. Too bad that the world insists on going nuts with JS everything. Oh as a plus, AI agents are a lot more productive when dealing with server side logic.", "context": "", "use_case": "server-rendered web UIs", "switched_from": "", "story": "Please just try HTMX"}]}, {"text": " often paired with Go, Django or Spring Boot backends.", "cites": [{"id": 782674256, "item_id": 48917141, "url": "https://news.ycombinator.com/item?id=48917141", "by": "fmind-dev", "date": "2026-07-14", "stance": "recommend", "quote": "It's a really nice combo, fast, efficient, and easy to maintain.", "excerpt": "I've switched from Python to Go + HTMX recently. It's a really nice combo, fast, efficient, and easy to maintain. HTMX should be part of the HTML spec.", "context": "switched from Python to Go", "use_case": "web frontend with Go", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 741686209, "item_id": 46355388, "url": "https://news.ycombinator.com/item?id=46355388", "by": "loumf", "date": "2025-12-22", "stance": "recommend", "quote": "But, I moved to Django/HTMX.", "excerpt": "I have recently gone all in on Python. Before I decided this, I was using Python for projects where I needed Pandas or numpy. I used React/TypeScript/Node for web applications. But, I moved to Django/HTMX. The main reason is to avoid npm, but also, I wanted something with more built-in defaults (my web apps have simple needs). It has nothing to do with the language -- it's more the ecosystem for me. I considered Ruby", "context": "", "use_case": "web frontend", "switched_from": "React", "story": "Ask HN: Why Did Python Win?"}, {"id": 744431120, "item_id": 46526945, "url": "https://news.ycombinator.com/item?id=46526945", "by": "ecshafer", "date": "2026-01-07", "stance": "recommend", "quote": "I just cant say enough how much I love HTMX.", "excerpt": "I just cant say enough how much I love HTMX. I got my feet wet doing hotwire/turbo in rails, and htmx is really just such a wonderful expansion of thise ideas. Making reactive app experiences on the web with a tiny js bundle and just writing html feels how web programming should be. I am writing a UI with Spring Boot + Thymleaf + HTMX and Alpine JS, and its the smoothest java based web dev experience ive had in so lo", "context": "building a UI with Spring Boot", "use_case": "reactive web UI", "switched_from": "", "story": "Htmx: High Power Tools for HTML"}, {"id": 758442256, "item_id": 47402641, "url": "https://news.ycombinator.com/item?id=47402641", "by": "bodash", "date": "2026-03-16", "stance": "recommend", "quote": "Go + HTMX + PostgreSQL + Redis can go a long mile", "excerpt": "Personally, I think Go + HTMX + PostgreSQL + Redis can go a long mile, but I could be missing hindsights", "context": "", "use_case": "rebuilding HN", "switched_from": "", "story": "Ask HN: What tech stack would you pick to rebuild HN today?"}]}, {"text": " The most common complaint is that complexity grows quickly once a UI becomes highly interactive,", "cites": [{"id": 782630768, "item_id": 48914423, "url": "https://news.ycombinator.com/item?id=48914423", "by": "overflowy", "date": "2026-07-14", "stance": "warn", "quote": "my experience with HTMX has always ended up being disappointing.", "excerpt": "While I love both Go and Alex, my experience with HTMX has always ended up being disappointing. I think the best way to put it, when I'm working with HTMX it feels like the complexity of the codebase is growing at a 2:1 rate compared to the app itself. I always end up with some weird edge case that I can not come out of without some weird hack. I get why people dislike Node packages, HTMX feels like it's an overcompe", "context": "", "use_case": "web apps", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 786129393, "item_id": 49133087, "url": "https://news.ycombinator.com/item?id=49133087", "by": "Aeolos", "date": "2026-08-01", "stance": "neutral", "quote": "We made a lot of progress with htmx, but eventually hit a complexity wall", "excerpt": "Our UI is highly interactive: think 3d visualizations with toggle-able overlays, various display settings, searchable lists, drawing tools etc. We made a lot of progress with htmx, but eventually hit a complexity wall where we were spending more time fighting the tool than solving the business need. Note, I'm not blaming htmx here, the documentation is clear about its strengths and limitations, and the hypermedia app", "context": "team building highly interactive 3D visualization UI", "use_case": "hypermedia UI", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 741027488, "item_id": 46314218, "url": "https://news.ycombinator.com/item?id=46314218", "by": "liampulles", "date": "2025-12-18", "stance": "recommend", "quote": "I like HTMX, I use it on my blog.", "excerpt": "I like HTMX, I use it on my blog. But I will say, in the niche where I need some dynamic DOM changes without needing a full-blown SPA, raw JavaScript with some basic utilities like jQuery is not so bad. The issue with htmx is that it is fairly prescriptive of how one should go about building dynamic interactions, and it becomes complex quickly if the dynamic interaction is more than trivial. I don't disagree with its", "context": "enterprise developer", "use_case": "blog dynamic interactions", "switched_from": "", "story": "Please just try HTMX"}]}, {"text": " which makes it a poor fit for SPA-like apps.", "cites": [{"id": 791761472, "item_id": 49485092, "url": "https://news.ycombinator.com/item?id=49485092", "by": "perardi", "date": "2026-08-28", "stance": "compare", "quote": "We are moving away from HTMX at work, to React.", "excerpt": "I agree. We are moving away from HTMX at work, to React. (After we moved away from Angular. That was\u2026a choice\u2026that I didn\u2019t make.) Here\u2019s the thing: there\u2019s still a place for HTMX. Lots of places. But \u201cbuilding an SPA but not actually and SPA\u201d is not a lane for HTMX. Nor do they promote HTMX for that purpose. Really quite the opposite. Different tools for different jobs. (Me? I honestly love React, just a more minima", "context": "works on a team using it at work", "use_case": "web frontend", "switched_from": "", "story": "Htmx 4.0"}, {"id": 785976256, "item_id": 49123516, "url": "https://news.ycombinator.com/item?id=49123516", "by": "dmoreno", "date": "2026-07-31", "stance": "recommend", "quote": "I use HTMX /alpinejs for small projects", "excerpt": "That's why many times HTMX is used together with alpinejs [1]. For areas that need server side, if you use say react and return a JSON you have to deserialize and do the render. It might be much more efficient to just replace. Having said that I use HTMX /alpinejs for small projects, and still trust react for bigger more interactive ones. [1] https://alpinejs.dev/", "context": "", "use_case": "small projects", "switched_from": "", "story": "Let's Make the Worst Htmx"}]}], "praise": [{"label": "Minimal JavaScript", "summary": "Commenters like building real pages with HTML attributes instead of heavy JS frameworks and build steps.", "quotes": [{"id": 782617072, "item_id": 48913567, "url": "https://news.ycombinator.com/item?id=48913567", "by": "xp84", "date": "2026-07-14", "stance": "recommend", "quote": "I used HTMX on a recent project and really enjoyed it.", "excerpt": "I used HTMX on a recent project and really enjoyed it. As a person who knows how the Web worked before the invention of AngularJS and React, I deeply appreciate being able to build actual pages and minimize the amount of JS that has to exist. Vanilla JS works fine, but HTMX basically just substitutes for a lot of boilerplate that you'd otherwise have to create just to do the same event handler stuff over and over. If", "context": "knows how the Web worked before AngularJS and React", "use_case": "building web pages", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 788465088, "item_id": 49279068, "url": "https://news.ycombinator.com/item?id=49279068", "by": "mikestorrent", "date": "2026-08-12", "stance": "recommend", "quote": "The appeal is literally a \"fuck you\" to anyone that makes me have to run a build process for a web page", "excerpt": "The appeal is literally a \"fuck you\" to anyone that makes me have to run a build process for a web page, when I used to just be able to click reload and see the reality in front of me in seconds on a machine 1/500th the speed.", "context": "", "use_case": "web pages without build process", "switched_from": "", "story": "HTML over WebSockets: real-time SPAs with barely any JavaScript"}, {"id": 744431120, "item_id": 46526945, "url": "https://news.ycombinator.com/item?id=46526945", "by": "ecshafer", "date": "2026-01-07", "stance": "recommend", "quote": "I just cant say enough how much I love HTMX.", "excerpt": "I just cant say enough how much I love HTMX. I got my feet wet doing hotwire/turbo in rails, and htmx is really just such a wonderful expansion of thise ideas. Making reactive app experiences on the web with a tiny js bundle and just writing html feels how web programming should be. I am writing a UI with Spring Boot + Thymleaf + HTMX and Alpine JS, and its the smoothest java based web dev experience ive had in so lo", "context": "building a UI with Spring Boot", "use_case": "reactive web UI", "switched_from": "", "story": "Htmx: High Power Tools for HTML"}]}, {"label": "Backend pairing", "summary": "Commenters describe it as a good match for Go, Django, Spring Boot, Rails and other server stacks.", "quotes": [{"id": 782674256, "item_id": 48917141, "url": "https://news.ycombinator.com/item?id=48917141", "by": "fmind-dev", "date": "2026-07-14", "stance": "recommend", "quote": "It's a really nice combo, fast, efficient, and easy to maintain.", "excerpt": "I've switched from Python to Go + HTMX recently. It's a really nice combo, fast, efficient, and easy to maintain. HTMX should be part of the HTML spec.", "context": "switched from Python to Go", "use_case": "web frontend with Go", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 775627296, "item_id": 48476706, "url": "https://news.ycombinator.com/item?id=48476706", "by": "faangguyindia", "date": "2026-06-10", "stance": "recommend", "quote": "Most of my apps are now simply HTMX + Go + SQLite. I've found it's enough for most projects.", "excerpt": "Most of my apps are now simply HTMX + Go + SQLite. I've found it's enough for most projects. One of my sites is image heavy and serves 10 TB of traffic per month. For this, I use the following setup: 1. S3 (I wanted reliable data storage) 2. In front of it, I have Cloudflare (with Tiered Cache enabled, which makes POPs prefer pulling from Cloudflare rather than the origin). I've set rules to cache everything on both ", "context": "runs an image-heavy site serving 10 TB/month", "use_case": "web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 741686209, "item_id": 46355388, "url": "https://news.ycombinator.com/item?id=46355388", "by": "loumf", "date": "2025-12-22", "stance": "recommend", "quote": "But, I moved to Django/HTMX.", "excerpt": "I have recently gone all in on Python. Before I decided this, I was using Python for projects where I needed Pandas or numpy. I used React/TypeScript/Node for web applications. But, I moved to Django/HTMX. The main reason is to avoid npm, but also, I wanted something with more built-in defaults (my web apps have simple needs). It has nothing to do with the language -- it's more the ecosystem for me. I considered Ruby", "context": "", "use_case": "web frontend", "switched_from": "React", "story": "Ask HN: Why Did Python Win?"}]}, {"label": "Simpler than SPAs", "summary": "Some say it solves many problems otherwise handled with React or Angular, with far less complexity.", "quotes": [{"id": 786889312, "item_id": 49180582, "url": "https://news.ycombinator.com/item?id=49180582", "by": "masfoobar", "date": "2026-08-05", "stance": "recommend", "quote": "I do stand that htmx can be used to solve a good chunk of problems that otherwise would be done with React, or angular, and so on.", "excerpt": "I am one of those 'htmx lovers' but I do not comment that is the be all to end all. Every website you create, just like any form of application, is based on solving a particular problem. How you solve that problem can vary from dev to dev. Some devs may disagree you your solution just as you can disagree with theirs. I do stand that htmx can be used to solve a good chunk of problems that otherwise would be done with ", "context": "", "use_case": "building web frontends", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 744431120, "item_id": 46526945, "url": "https://news.ycombinator.com/item?id=46526945", "by": "ecshafer", "date": "2026-01-07", "stance": "recommend", "quote": "I just cant say enough how much I love HTMX.", "excerpt": "I just cant say enough how much I love HTMX. I got my feet wet doing hotwire/turbo in rails, and htmx is really just such a wonderful expansion of thise ideas. Making reactive app experiences on the web with a tiny js bundle and just writing html feels how web programming should be. I am writing a UI with Spring Boot + Thymleaf + HTMX and Alpine JS, and its the smoothest java based web dev experience ive had in so lo", "context": "building a UI with Spring Boot", "use_case": "reactive web UI", "switched_from": "", "story": "Htmx: High Power Tools for HTML"}, {"id": 763156257, "item_id": 47697266, "url": "https://news.ycombinator.com/item?id=47697266", "by": "igor47", "date": "2026-04-08", "stance": "recommend", "quote": "I moved off react altogether and now use htmx in most of my projects", "excerpt": "All the examples are fetching data from a server, and in such cases I think tanstack query already does all the hard part. I feel like people under-use react query and put too much state in their FE. This might be relevant if your app has some really complicated interactions, but for most apps they should really be a function of server, not client, state. Of course this exact reasoning is why I moved off react altoge", "context": "", "use_case": "web frontend", "switched_from": "React", "story": "Show HN: Tired of logic in useEffect, I built a class-based React state manager"}]}, {"label": "Small interactive sites", "summary": "Commenters recommend it for websites that need some dynamic elements, such as live search.", "quotes": [{"id": 791769040, "item_id": 49485565, "url": "https://news.ycombinator.com/item?id=49485565", "by": "embedding-shape", "date": "2026-08-28", "stance": "recommend", "quote": "websites with some interactive/dynamic elements, HTMX is great for this", "excerpt": "Yeah, typically I end up building websites (for myself and others) in basically three \"lanes\". Static HTML/CSS files, great for docs, presentations, reports and similar. Or, websites with some interactive/dynamic elements, HTMX is great for this. Or, fully fledged \"client-side apps\" where it's more of an application than website, then I go full out dynamic programming with ClojureScript and similar approaches. I'm no", "context": "builds websites for self and others", "use_case": "interactive websites", "switched_from": "", "story": "Htmx 4.0"}, {"id": 785976256, "item_id": 49123516, "url": "https://news.ycombinator.com/item?id=49123516", "by": "dmoreno", "date": "2026-07-31", "stance": "recommend", "quote": "I use HTMX /alpinejs for small projects", "excerpt": "That's why many times HTMX is used together with alpinejs [1]. For areas that need server side, if you use say react and return a JSON you have to deserialize and do the render. It might be much more efficient to just replace. Having said that I use HTMX /alpinejs for small projects, and still trust react for bigger more interactive ones. [1] https://alpinejs.dev/", "context": "", "use_case": "small projects", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 747037474, "item_id": 46689842, "url": "https://news.ycombinator.com/item?id=46689842", "by": "ErroneousBosh", "date": "2026-01-20", "stance": "recommend", "quote": "to do stuff like \"find-as-you-type\" and other \"magical dynamic page\" things I used HTMX", "excerpt": "I've been dabbling in backend and frontend stuff for about 25 years now, but for the past 15 years or so I haven't really had to do any webby stuff for work (and that's kind of how I like it). Recently I've needed to put together a few things as \"proof of concept\" for things like internal directories and catalogues, and it's one of those \"How Hard Can It Possibly Be\" situations where we've had folk prevaricating for ", "context": "dabbled in backend and frontend for about 25 years", "use_case": "dynamic page interactions", "switched_from": "", "story": "The Overcomplexity of the Shadcn Radio Button"}]}, {"label": "Works with AI agents", "summary": "Several commenters say AI agents work well with HTMX and server-side logic.", "quotes": [{"id": 782637536, "item_id": 48914846, "url": "https://news.ycombinator.com/item?id=48914846", "by": "arjie", "date": "2026-07-14", "stance": "recommend", "quote": "Huge fan of HTMX.", "excerpt": "Huge fan of HTMX. Agent can reason about components well. Iteration is good and testing story is solid. Very happy with results. I use Rust/Go (prefer Go - safer package ecosystem - no build time code running) with HTMX.", "context": "", "use_case": "web frontend with Go/Rust", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 741082448, "item_id": 46317653, "url": "https://news.ycombinator.com/item?id=46317653", "by": "didip", "date": "2025-12-18", "stance": "recommend", "quote": "I love HTMX. It felt like a rebirth of PJAX.", "excerpt": "I love HTMX. It felt like a rebirth of PJAX. Server side template rendering is simply the best. Too bad that the world insists on going nuts with JS everything. Oh as a plus, AI agents are a lot more productive when dealing with server side logic.", "context": "", "use_case": "server-rendered web UIs", "switched_from": "", "story": "Please just try HTMX"}, {"id": 741064592, "item_id": 46316537, "url": "https://news.ycombinator.com/item?id=46316537", "by": "n4pw01f", "date": "2025-12-18", "stance": "recommend", "quote": "HTMX hx-get is reliably, and beautifully rendering the result of the Agentic Workflow without any react, etc.", "excerpt": "I have used HTMX extensively with AI agents. It is fantastic for dynamic views. Agent one: handles the request and does tool calls Agent two: reads the result and decides on quality vs a re-drive if it\u2019s low quality Agent three: decides how to present the information to the user, creates a collection of HTMX elements HTMX hx-get is reliably, and beautifully rendering the result of the Agentic Workflow without any rea", "context": "", "use_case": "render agentic workflow output", "switched_from": "", "story": "Please just try HTMX"}]}, {"label": "Performance", "summary": "Commenters report small bundles and fast loads after moving away from React.", "quotes": [{"id": 786107584, "item_id": 49131724, "url": "https://news.ycombinator.com/item?id=49131724", "by": "Aeolos", "date": "2026-07-31", "stance": "recommend", "quote": "I highly recommend everyone to give htmx or datastar a try", "excerpt": "I highly recommend everyone to give htmx or datastar a try, especially if your main experience is react or nextjs. We recently rewrote a half-million LOC codebase from react to datastar, with a detour through htmx first, and the results are staggering. First page load is 20KB down from a 750KB js bundle. 1 network request vs 40+. Total load time 0.1 seconds down from 2 seconds of spinners. Page refresh is so fast, th", "context": "rewrote half-million LOC codebase for medical device", "use_case": "web frontend", "switched_from": "React", "story": "Let's Make the Worst Htmx"}, {"id": 782674256, "item_id": 48917141, "url": "https://news.ycombinator.com/item?id=48917141", "by": "fmind-dev", "date": "2026-07-14", "stance": "recommend", "quote": "It's a really nice combo, fast, efficient, and easy to maintain.", "excerpt": "I've switched from Python to Go + HTMX recently. It's a really nice combo, fast, efficient, and easy to maintain. HTMX should be part of the HTML spec.", "context": "switched from Python to Go", "use_case": "web frontend with Go", "switched_from": "", "story": "How I use HTMX with Go"}]}], "caveats": [{"label": "Complexity growth", "summary": "Several commenters hit a complexity wall or needed hacks once interactions became non-trivial.", "quotes": [{"id": 782630768, "item_id": 48914423, "url": "https://news.ycombinator.com/item?id=48914423", "by": "overflowy", "date": "2026-07-14", "stance": "warn", "quote": "my experience with HTMX has always ended up being disappointing.", "excerpt": "While I love both Go and Alex, my experience with HTMX has always ended up being disappointing. I think the best way to put it, when I'm working with HTMX it feels like the complexity of the codebase is growing at a 2:1 rate compared to the app itself. I always end up with some weird edge case that I can not come out of without some weird hack. I get why people dislike Node packages, HTMX feels like it's an overcompe", "context": "", "use_case": "web apps", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 786129393, "item_id": 49133087, "url": "https://news.ycombinator.com/item?id=49133087", "by": "Aeolos", "date": "2026-08-01", "stance": "neutral", "quote": "We made a lot of progress with htmx, but eventually hit a complexity wall", "excerpt": "Our UI is highly interactive: think 3d visualizations with toggle-able overlays, various display settings, searchable lists, drawing tools etc. We made a lot of progress with htmx, but eventually hit a complexity wall where we were spending more time fighting the tool than solving the business need. Note, I'm not blaming htmx here, the documentation is clear about its strengths and limitations, and the hypermedia app", "context": "team building highly interactive 3D visualization UI", "use_case": "hypermedia UI", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 741027488, "item_id": 46314218, "url": "https://news.ycombinator.com/item?id=46314218", "by": "liampulles", "date": "2025-12-18", "stance": "recommend", "quote": "I like HTMX, I use it on my blog.", "excerpt": "I like HTMX, I use it on my blog. But I will say, in the niche where I need some dynamic DOM changes without needing a full-blown SPA, raw JavaScript with some basic utilities like jQuery is not so bad. The issue with htmx is that it is fairly prescriptive of how one should go about building dynamic interactions, and it becomes complex quickly if the dynamic interaction is more than trivial. I don't disagree with its", "context": "enterprise developer", "use_case": "blog dynamic interactions", "switched_from": "", "story": "Please just try HTMX"}]}, {"label": "Not for SPAs", "summary": "Commenters say it is the wrong tool for app-like, highly interactive interfaces.", "quotes": [{"id": 791761472, "item_id": 49485092, "url": "https://news.ycombinator.com/item?id=49485092", "by": "perardi", "date": "2026-08-28", "stance": "compare", "quote": "We are moving away from HTMX at work, to React.", "excerpt": "I agree. We are moving away from HTMX at work, to React. (After we moved away from Angular. That was\u2026a choice\u2026that I didn\u2019t make.) Here\u2019s the thing: there\u2019s still a place for HTMX. Lots of places. But \u201cbuilding an SPA but not actually and SPA\u201d is not a lane for HTMX. Nor do they promote HTMX for that purpose. Really quite the opposite. Different tools for different jobs. (Me? I honestly love React, just a more minima", "context": "works on a team using it at work", "use_case": "web frontend", "switched_from": "", "story": "Htmx 4.0"}, {"id": 785976256, "item_id": 49123516, "url": "https://news.ycombinator.com/item?id=49123516", "by": "dmoreno", "date": "2026-07-31", "stance": "recommend", "quote": "I use HTMX /alpinejs for small projects", "excerpt": "That's why many times HTMX is used together with alpinejs [1]. For areas that need server side, if you use say react and return a JSON you have to deserialize and do the render. It might be much more efficient to just replace. Having said that I use HTMX /alpinejs for small projects, and still trust react for bigger more interactive ones. [1] https://alpinejs.dev/", "context": "", "use_case": "small projects", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 744428144, "item_id": 46526759, "url": "https://news.ycombinator.com/item?id=46526759", "by": "librasteve", "date": "2026-01-07", "stance": "recommend", "quote": "It was a very nice experience and I recommend https://htmx.org/examples for the kind of cool things you can do.", "excerpt": "I made a website in HTMX (https://raku.org) to celebrate that I can use my preferred language on the server side. It\u2019s no frills, generally static and HTMX is just to goose up some of the UX dynamism. It was a very nice experience and I recommend https://htmx.org/examples for the kind of cool things you can do. otoh, I would not build Google Maps with this tool :-)", "context": "", "use_case": "website UX dynamism", "switched_from": "", "story": "Htmx: High Power Tools for HTML"}]}, {"label": "Fragment organization", "summary": "Commenters say deciding how to split and serve HTML fragments is hard to get right.", "quotes": [{"id": 775648560, "item_id": 48478035, "url": "https://news.ycombinator.com/item?id=48478035", "by": "pphysch", "date": "2026-06-10", "stance": "recommend", "quote": "My #1 advice is not creating separate server endpoints for every HTMX fragment", "excerpt": "My #1 advice is not creating separate server endpoints for every HTMX fragment, unless you are 1000% sure that endpoint will be used in multiple different pages. Working on a \"simple html page\" that is actually 5 different independent \"subpages\" (routes, views, templates) in the backend is awful. The UX was improved, but the DX was sacrificed. I recommend having a single view function for each page/SPA and do sub-rou", "context": "", "use_case": "HTML-first web apps", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 775640016, "item_id": 48477501, "url": "https://news.ycombinator.com/item?id=48477501", "by": "pragma_x", "date": "2026-06-10", "stance": "recommend", "quote": "I love the approach, but I'm having a bad time figuring out where the ideal balance is", "excerpt": "Since you're using HTMX, I have to ask: do you have any tips or idioms for composing complex forms and UI without things getting out of hand? I love the approach, but I'm having a bad time figuring out where the ideal balance is between too few or too many HTMX-replaced areas in a page. Thanks.", "context": "", "use_case": "complex forms and UI", "switched_from": "", "story": "Building an HTML-first site doubled our users overnight"}, {"id": 785215024, "item_id": 49075939, "url": "https://news.ycombinator.com/item?id=49075939", "by": "james2doyle", "date": "2026-07-27", "stance": "neutral", "quote": "It wasn\u2019t that easy to wrangle once it got more complicated.", "excerpt": "I used HTMX to serve my HTML partials. My HTML partials got too big. Not HTMXs fault. How do I fix that? Split them up? Use lazy loading? Pagination? That isn\u2019t clear. I settled on a solution that gave me the least compromises while not abandoning the sprit of HTMX and HATEOAS. HTMX has a whole section on their site dedicated to reasons not to use HTMX: https://four.htmx.org/essays#counterpoints Alpine Ajax is actual", "context": "", "use_case": "serving HTML partials", "switched_from": "", "story": "Removing React.js from the codebase and adapting Htmx for UI interactivity"}]}, {"label": "Tooling gaps", "summary": "Commenters miss tooling like Storybook and ask for guidance on production setup and dev tooling.", "quotes": [{"id": 785182160, "item_id": 49073885, "url": "https://news.ycombinator.com/item?id=49073885", "by": "jackhalford", "date": "2026-07-27", "stance": "warn", "quote": "I used htmx but had to migrate to svelte for storybook for development, I wish htmx had that sort of tooling", "excerpt": "I used htmx but had to migrate to svelte for storybook for development, I wish htmx had that sort of tooling", "context": "", "use_case": "UI interactivity", "switched_from": "", "story": "Removing React.js from the codebase and adapting Htmx for UI interactivity"}, {"id": 782664560, "item_id": 48916535, "url": "https://news.ycombinator.com/item?id=48916535", "by": "foxwell_1959", "date": "2026-07-14", "stance": "recommend", "quote": "I love the combination of Go and HTMX", "excerpt": "I love the combination of Go and HTMX, but these types of articles usually only show the basics. Coming from a JavaScript frontend NPM ecosystem heavy background, I would love to see a write up for a production ready application. Show how you handle asset bundling and hashing. What are the best DX tools for running the local dev server with hot reloading. How do you manage the few JS libraries dependencies that you n", "context": "background in JavaScript frontend NPM ecosystem", "use_case": "web frontend with Go", "switched_from": "", "story": "How I use HTMX with Go"}]}, {"label": "Bugs and docs", "summary": "One commenter reported problems with bugs, docs and page lifecycle, and switched to Hotwire.", "quotes": [{"id": 741109488, "item_id": 46319343, "url": "https://news.ycombinator.com/item?id=46319343", "by": "danpalmer", "date": "2025-12-18", "stance": "warn", "quote": "I found it to have quite a few problems with bugs, docs, and web page lifecycle.", "excerpt": "I did. I found it to have quite a few problems with bugs, docs, and web page lifecycle. I switched to Hotwire/Stimulus and found it to be a significantly better implementation of the same core concepts. I'd highly recommend checking them out.", "context": "", "use_case": "", "switched_from": "", "story": "Please just try HTMX"}]}, {"label": "Large responses", "summary": "One commenter found that sending large HTML responses for a filterable listing became laggy.", "quotes": [{"id": 785154226, "item_id": 49072139, "url": "https://news.ycombinator.com/item?id=49072139", "by": "james2doyle", "date": "2026-07-27", "stance": "compare", "quote": "I still like HTMX and will probably use it again.", "excerpt": "I actually tried to use HTMX on a site recently. I used the 4.0 beta. The site needed an interactive filterable product-listing-page-type experience to list out all their vendors. Form filters on the left and the list of results \"cards\" on the right. The problem I had was that the entire experience became really slow when I had it all working together as one \"response\". Sending back all that HTML for an entire form w", "context": "web developer", "use_case": "server-driven UI interactivity", "switched_from": "", "story": "Removing React.js from the codebase and adapting Htmx for UI interactivity"}]}], "who": [{"by": "Imustaskforhelp", "context": "18-year-old developer", "url": "https://news.ycombinator.com/item?id=49981023", "date": "2026-10-06"}, {"by": "embedding-shape", "context": "builds websites for self and others", "url": "https://news.ycombinator.com/item?id=49485565", "date": "2026-08-28"}, {"by": "dajonker", "context": "running Rails app in production", "url": "https://news.ycombinator.com/item?id=49483822", "date": "2026-08-28"}, {"by": "Aeolos", "context": "team building highly interactive 3D visualization UI", "url": "https://news.ycombinator.com/item?id=49133087", "date": "2026-08-01"}, {"by": "masfoobar", "context": "web dev since 2008", "url": "https://news.ycombinator.com/item?id=49068079", "date": "2026-07-27"}, {"by": "fmind-dev", "context": "switched from Python to Go", "url": "https://news.ycombinator.com/item?id=48917141", "date": "2026-07-14"}, {"by": "foxwell_1959", "context": "background in JavaScript frontend NPM ecosystem", "url": "https://news.ycombinator.com/item?id=48916535", "date": "2026-07-14"}, {"by": "xp84", "context": "knows how the Web worked before AngularJS and React", "url": "https://news.ycombinator.com/item?id=48913567", "date": "2026-07-14"}, {"by": "Induane", "context": "maintains many small one-off apps", "url": "https://news.ycombinator.com/item?id=48504230", "date": "2026-06-12"}, {"by": "faangguyindia", "context": "runs an image-heavy site serving 10 TB/month", "url": "https://news.ycombinator.com/item?id=48476706", "date": "2026-06-10"}, {"by": "eltados", "context": "solo developer", "url": "https://news.ycombinator.com/item?id=48030129", "date": "2026-05-05"}, {"by": "ErroneousBosh", "context": "dabbled in backend and frontend for about 25 years", "url": "https://news.ycombinator.com/item?id=46689842", "date": "2026-01-20"}], "tags": ["for server-rendered apps", "for Go backends", "for small interactive sites", "for avoiding npm", "for Django and Rails"], "use_cases": ["web frontend", "web apps", "frontend interactivity", "web development", "web projects", "web frontend with go"], "compared": [{"slug": "react", "name": "React", "co": 21, "switched_from": 3, "switched_to": 2}, {"slug": "alpine-js", "name": "Alpine.js", "co": 13, "switched_from": 0, "switched_to": 0}, {"slug": "datastar", "name": "Datastar", "co": 11, "switched_from": 0, "switched_to": 1}, {"slug": "django", "name": "Django", "co": 9, "switched_from": 0, "switched_to": 0}, {"slug": "angular", "name": "Angular", "co": 8, "switched_from": 0, "switched_to": 0}, {"slug": "svelte", "name": "Svelte", "co": 4, "switched_from": 0, "switched_to": 1}, {"slug": "postgresql", "name": "PostgreSQL", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "hotwire", "name": "Hotwire", "co": 3, "switched_from": 0, "switched_to": 1}], "makers": [{"id": 749443714, "item_id": 46840232, "url": "https://news.ycombinator.com/item?id=46840232", "by": "recursivedoubts", "date": "2026-01-31", "stance": "neutral", "quote": "htmx is just some javascript written on top of standard vanilla javascript apis", "excerpt": "I mean you're not wrong: end of the day htmx is just some javascript written on top of standard vanilla javascript apis. It tries to handle things in a more html-centric, attributes-driven manner than script-oriented approaches do, but it's nothing too complicated check out fixi for our ultra-minimalist take on the idea: https://github.com/bigskysoftware/fixi Or, for extreme minimalisim, htmz, which repurposes iframe", "context": "", "use_case": "hypermedia-driven web apps", "switched_from": "", "story": "htmx: Server Sent Event (SSE) Extension"}], "threads": [{"url": "https://news.ycombinator.com/item?id=46312973", "title": "Please just try HTMX", "mentions": 12}, {"url": "https://news.ycombinator.com/item?id=48912175", "title": "How I use HTMX with Go", "mentions": 9}, {"url": "https://news.ycombinator.com/item?id=49478178", "title": "Htmx 4.0", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=49119270", "title": "Let's Make the Worst Htmx", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=49057241", "title": "Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=49067301", "title": "Removing React.js from the codebase and adapting Htmx for UI interactivity", "mentions": 3}], "sentiment_by_month": {"2025-11": {"compare": 1, "recommend": 1, "neutral": 1}, "2025-12": {"neutral": 5, "recommend": 8, "warn": 2, "compare": 1}, "2026-01": {"recommend": 4, "neutral": 1}, "2026-02": {}, "2026-03": {"recommend": 2}, "2026-04": {"recommend": 1, "warn": 1}, "2026-05": {"neutral": 1, "recommend": 3, "compare": 1}, "2026-06": {"recommend": 4}, "2026-07": {"recommend": 10, "neutral": 4, "warn": 2, "compare": 1}, "2026-08": {"neutral": 4, "recommend": 7, "compare": 2, "warn": 1}, "2026-09": {}, "2026-10": {"warn": 1, "neutral": 2, "recommend": 1}}, "quotes": [{"id": 801234595, "item_id": 50077162, "url": "https://news.ycombinator.com/item?id=50077162", "by": "nemothekid", "date": "2026-10-13", "stance": "neutral", "quote": "It even renders a frontend with HTMX/Alpine.", "excerpt": "Rust + Axum has sort of supported this with a middleware (https://github.com/lazear/axum-aws-lambda). Essentially you write your API as normal, and then when you build for lambda you enable a feature that does the special handler for you. This + Function URL + Cloudfront, and you end up with an API entirely hosted in lambda. I have a backend that does is hosted like this that does pretty complex work (image/video upl", "context": "", "use_case": "frontend rendering", "switched_from": "", "story": "AWS Lambda Web Functions"}, {"id": 800234240, "item_id": 50014640, "url": "https://news.ycombinator.com/item?id=50014640", "by": "Multicomp", "date": "2026-10-09", "stance": "recommend", "quote": "I follow hypermedia.systems and htmx/datastar/alpine.js because I'm still trying to get back that powerful _web_ tech advancement", "excerpt": "WSDL - now that's a name I've not heard in a very long time! XML Web Services were awesome, but the SOAP and XML (where the hard parts that should have been given some batteries included defaults) I think was too much of a boat anchor to overcome. And then the ruby/rails wave came and made 'rest' JSON the Silicon Valley hearthrob, and WSDLs were out like yesterdays trash. Are they still used in businesses IRL? Yes! I", "context": "", "use_case": "hypermedia web development", "switched_from": "", "story": "Whistle: Speech to Text in 16.9 MB"}, {"id": 799696368, "item_id": 49981023, "url": "https://news.ycombinator.com/item?id=49981023", "by": "Imustaskforhelp", "date": "2026-10-06", "stance": "neutral", "quote": "create me a golang web application which uses htmx/templ/modernc sqlite about XYZ", "excerpt": "(I am currently 18 so you have actually been coding since more than two times my whole lifetime so y'know there's that.) I wish to ask you for some feedback and clarity and further concrete resources because I feel a little confused/lost regarding the whole vibe-coding situation, I wish to say thanks in general though as nonetheless your comment finally made me concretely express all the nuances brewing in my stomach", "context": "18-year-old developer", "use_case": "small Go web apps", "switched_from": "", "story": "Vibecoding isn't as fun as writing code by hand"}, {"id": 799287315, "item_id": 49955457, "url": "https://news.ycombinator.com/item?id=49955457", "by": "shepherdjerred", "date": "2026-10-04", "stance": "warn", "quote": "I am pretty opposed to htmx", "excerpt": "I haven\u2019t found a front end library I like more than React except maybe Astro. I didn\u2019t really like Svelte and I am pretty opposed to htmx. It is certainly better than Angular and Vue, though Vue 3 is tolerable. Maybe there are more popular options nowadays but tbh I am not really looking to move from React. I have zero complaints other than maybe the push towards server rendering and partnering with Next.js React is", "context": "", "use_case": "", "switched_from": "", "story": "Why don't more developers \u201cuse the platform\u201d?"}, {"id": 792016864, "item_id": 49501054, "url": "https://news.ycombinator.com/item?id=49501054", "by": "aidenn0", "date": "2026-08-30", "stance": "neutral", "quote": "With htmx you can often do this by making a request to the server to update a subtree", "excerpt": "> How do you deal with form state using CSS? Where does it get stored? In the html as elements? So not on the server? For really simple stuff you can use CSS sibling selectors: https://jsfiddle.net/Kqscu/4/ For more complicated stuff, it is in the html as elements. With htmx you can often do this by making a request to the server to update a subtree; the server doesn't need to know the state that the user is seeing, ", "context": "", "use_case": "updating HTML subtrees", "switched_from": "", "story": "Htmx 4.0"}, {"id": 791796464, "item_id": 49487279, "url": "https://news.ycombinator.com/item?id=49487279", "by": "rednb", "date": "2026-08-29", "stance": "warn", "quote": "for customer projects i find this choice way too risky", "excerpt": "> Here\u2019s the thing: there\u2019s still a place for HTMX. Lots of places. But \u201cbuilding an SPA but not actually and SPA\u201d is not a lane for HTMX. Nor do they promote HTMX for that purpose. Really quite the opposite. > Different tools for different jobs. (Me? I honestly love React, just a more minimal stack. Zustand and TanStack and Vite. No Redux or Next.JS) My concern with is that i build line of business applications for ", "context": "builds line of business applications for a living", "use_case": "line of business apps", "switched_from": "", "story": "Htmx 4.0"}, {"id": 791781632, "item_id": 49486352, "url": "https://news.ycombinator.com/item?id=49486352", "by": "trueno", "date": "2026-08-29", "stance": "recommend", "quote": "i use this stack quite a bit too", "excerpt": "i use this stack quite a bit too. i made the claude do some load bearing 360 backflips, gate and seam a whole buncha smoking guns, and bolt go-starlark on top of this so i can just declare little web apps like its streamlit but it doesn't feel sucky like streamlit. i get to just write little blurbs of python-looking code and i get these fully reactive tools. probably my favorite and most used abstraction that came fr", "context": "", "use_case": "web apps", "switched_from": "", "story": "Htmx 4.0"}, {"id": 791769040, "item_id": 49485565, "url": "https://news.ycombinator.com/item?id=49485565", "by": "embedding-shape", "date": "2026-08-28", "stance": "recommend", "quote": "websites with some interactive/dynamic elements, HTMX is great for this", "excerpt": "Yeah, typically I end up building websites (for myself and others) in basically three \"lanes\". Static HTML/CSS files, great for docs, presentations, reports and similar. Or, websites with some interactive/dynamic elements, HTMX is great for this. Or, fully fledged \"client-side apps\" where it's more of an application than website, then I go full out dynamic programming with ClojureScript and similar approaches. I'm no", "context": "builds websites for self and others", "use_case": "interactive websites", "switched_from": "", "story": "Htmx 4.0"}, {"id": 791761472, "item_id": 49485092, "url": "https://news.ycombinator.com/item?id=49485092", "by": "perardi", "date": "2026-08-28", "stance": "compare", "quote": "We are moving away from HTMX at work, to React.", "excerpt": "I agree. We are moving away from HTMX at work, to React. (After we moved away from Angular. That was\u2026a choice\u2026that I didn\u2019t make.) Here\u2019s the thing: there\u2019s still a place for HTMX. Lots of places. But \u201cbuilding an SPA but not actually and SPA\u201d is not a lane for HTMX. Nor do they promote HTMX for that purpose. Really quite the opposite. Different tools for different jobs. (Me? I honestly love React, just a more minima", "context": "works on a team using it at work", "use_case": "web frontend", "switched_from": "", "story": "Htmx 4.0"}, {"id": 791741152, "item_id": 49483822, "url": "https://news.ycombinator.com/item?id=49483822", "by": "dajonker", "date": "2026-08-28", "stance": "recommend", "quote": "HTMX just makes more sense: you control the flow of content from the client", "excerpt": "Cheers! We've been running the various betas in production for a couple of months now. For our Rails app we replaced most of our Hotwired/Turbo with HTMX. 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. For pushing updates, we use ActionCable, but we do it in a different way from what we used to do with Turbo Streams: when a recor", "context": "running Rails app in production", "use_case": "Rails app frontend interactivity", "switched_from": "Hotwire Turbo", "story": "Htmx 4.0"}, {"id": 790431152, "item_id": 49401947, "url": "https://news.ycombinator.com/item?id=49401947", "by": "arjie", "date": "2026-08-22", "stance": "recommend", "quote": "I use HTMX and like it", "excerpt": "I actually don\u2019t know what the concept is and I\u2019m not going to look to see if it\u2019s real. There is a lot of spam like this now on the Internet. Sorry, you might be a real Nigerian prince in urgent need of my bank account details but I can\u2019t really know. I use HTMX and like it so I might have read if it didn\u2019t look like spam post. Good luck with your project. Your English fluency is fine.", "context": "", "use_case": "web development", "switched_from": "", "story": "Htmx live is cool. Datastar is fast. This cow is raw and strong"}, {"id": 788465088, "item_id": 49279068, "url": "https://news.ycombinator.com/item?id=49279068", "by": "mikestorrent", "date": "2026-08-12", "stance": "recommend", "quote": "The appeal is literally a \"fuck you\" to anyone that makes me have to run a build process for a web page", "excerpt": "The appeal is literally a \"fuck you\" to anyone that makes me have to run a build process for a web page, when I used to just be able to click reload and see the reality in front of me in seconds on a machine 1/500th the speed.", "context": "", "use_case": "web pages without build process", "switched_from": "", "story": "HTML over WebSockets: real-time SPAs with barely any JavaScript"}, {"id": 788432244, "item_id": 49277015, "url": "https://news.ycombinator.com/item?id=49277015", "by": "aitchnyu", "date": "2026-08-12", "stance": "compare", "quote": "Its great for forms but that shopping cart example needs code scattered across multiple functions and templates.", "excerpt": "I like the Vue/React/Svelte model of the DOM being a function of the data. For example, in a shopping cart, I add two chocolates, the number against the chocolate, the count at top and a banner encouraging me to reach X total all center around a data structure. I use Django Ninja, Zod, InertiaJS+Vue and its as easy as using Django's templating engine, but static typing ensures my view doesnt emit unrepresentable data", "context": "", "use_case": "", "switched_from": "", "story": "HTML over WebSockets: real-time SPAs with barely any JavaScript"}, {"id": 787860576, "item_id": 49241286, "url": "https://news.ycombinator.com/item?id=49241286", "by": "vladkorobkov", "date": "2026-08-10", "stance": "recommend", "quote": "Being a big fan of the server-side rendering, HTMX, Tailwind CSS, and Alpine.js", "excerpt": "Being a big fan of the server-side rendering, HTMX, Tailwind CSS, and Alpine.js, I am working on a fast dependency-free, typed Mustache renderer for Python 3.12+. https://github.com/servletcloud/fstache", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What are you working on? (August 2026)"}, {"id": 787256176, "item_id": 49203511, "url": "https://news.ycombinator.com/item?id=49203511", "by": "wmanley", "date": "2026-08-06", "stance": "neutral", "quote": "to show live data in my app I use an SSE stream of OOB swaps", "excerpt": "You mean by having a function per fragment? I don\u2019t think this solves the hard to maintain bit - which is \u201cwhich fragments should I regenerate/send\u201d, and how do I keep that list up to date as my app evolves. FWIW I have a potential solution: to show live data in my app I use an SSE stream of OOB swaps. On every relevant change to the database I regenerate the HTML and compare it to the previously generated html to cr", "context": "", "use_case": "live HTML updates", "switched_from": "", "story": "Building Progressively Enhanced Forms Using Htmx"}, {"id": 786889312, "item_id": 49180582, "url": "https://news.ycombinator.com/item?id=49180582", "by": "masfoobar", "date": "2026-08-05", "stance": "recommend", "quote": "I do stand that htmx can be used to solve a good chunk of problems that otherwise would be done with React, or angular, and so on.", "excerpt": "I am one of those 'htmx lovers' but I do not comment that is the be all to end all. Every website you create, just like any form of application, is based on solving a particular problem. How you solve that problem can vary from dev to dev. Some devs may disagree you your solution just as you can disagree with theirs. I do stand that htmx can be used to solve a good chunk of problems that otherwise would be done with ", "context": "", "use_case": "building web frontends", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 786662752, "item_id": 49166422, "url": "https://news.ycombinator.com/item?id=49166422", "by": "masfoobar", "date": "2026-08-04", "stance": "recommend", "quote": "I recommend starting small and working up with htmx.", "excerpt": "But you can do this with htmx by using the respected hx-* attributes. For example, on button click to GET html. Again, you can specify what you want to do with the returned html with attributes such as hx-swap Unless I am misunderstanding, of course. I do remember triggers/hooks with things like Angular and Knockout. I don't miss this method of web development. I recommend starting small and working up with htmx. The", "context": "", "use_case": "server-driven web UI", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 786140225, "item_id": 49133764, "url": "https://news.ycombinator.com/item?id=49133764", "by": "webawesomebest", "date": "2026-08-01", "stance": "neutral", "quote": "HTMX + WA", "excerpt": "We use webawesome.com for all our projects, it works great and is very underrated. HTMX + WA", "context": "", "use_case": "hypermedia frontend", "switched_from": "", "story": "Progressive Web Components"}, {"id": 786129393, "item_id": 49133087, "url": "https://news.ycombinator.com/item?id=49133087", "by": "Aeolos", "date": "2026-08-01", "stance": "neutral", "quote": "We made a lot of progress with htmx, but eventually hit a complexity wall", "excerpt": "Our UI is highly interactive: think 3d visualizations with toggle-able overlays, various display settings, searchable lists, drawing tools etc. We made a lot of progress with htmx, but eventually hit a complexity wall where we were spending more time fighting the tool than solving the business need. Note, I'm not blaming htmx here, the documentation is clear about its strengths and limitations, and the hypermedia app", "context": "team building highly interactive 3D visualization UI", "use_case": "hypermedia UI", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 786107584, "item_id": 49131724, "url": "https://news.ycombinator.com/item?id=49131724", "by": "Aeolos", "date": "2026-07-31", "stance": "recommend", "quote": "I highly recommend everyone to give htmx or datastar a try", "excerpt": "I highly recommend everyone to give htmx or datastar a try, especially if your main experience is react or nextjs. We recently rewrote a half-million LOC codebase from react to datastar, with a detour through htmx first, and the results are staggering. First page load is 20KB down from a 750KB js bundle. 1 network request vs 40+. Total load time 0.1 seconds down from 2 seconds of spinners. Page refresh is so fast, th", "context": "rewrote half-million LOC codebase for medical device", "use_case": "web frontend", "switched_from": "React", "story": "Let's Make the Worst Htmx"}, {"id": 785976256, "item_id": 49123516, "url": "https://news.ycombinator.com/item?id=49123516", "by": "dmoreno", "date": "2026-07-31", "stance": "recommend", "quote": "I use HTMX /alpinejs for small projects", "excerpt": "That's why many times HTMX is used together with alpinejs [1]. For areas that need server side, if you use say react and return a JSON you have to deserialize and do the render. It might be much more efficient to just replace. Having said that I use HTMX /alpinejs for small projects, and still trust react for bigger more interactive ones. [1] https://alpinejs.dev/", "context": "", "use_case": "small projects", "switched_from": "", "story": "Let's Make the Worst Htmx"}, {"id": 785370288, "item_id": 49085643, "url": "https://news.ycombinator.com/item?id=49085643", "by": "yawaramin", "date": "2026-07-28", "stance": "recommend", "quote": "The criticisms I\u2019m seeing here are all things that are accepted without question in other frameworks but when htmx does it, suddenly it\u2019s too much.", "excerpt": "Ok, take a look at the other popular frontend frameworks out there and tell me with a straight face that they don\u2019t have their own mini-DSLs: https://docs.solidjs.com/concepts/control-flow/conditional-rendering https://vuejs.org/guide/essentials/template-syntax.html https://angular.dev/guide/templates#differences-from-standard-html None of which work with JavaScript turned off (unless you have a JavaScript backend an", "context": "", "use_case": "", "switched_from": "", "story": "Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy"}, {"id": 785215024, "item_id": 49075939, "url": "https://news.ycombinator.com/item?id=49075939", "by": "james2doyle", "date": "2026-07-27", "stance": "neutral", "quote": "It wasn\u2019t that easy to wrangle once it got more complicated.", "excerpt": "I used HTMX to serve my HTML partials. My HTML partials got too big. Not HTMXs fault. How do I fix that? Split them up? Use lazy loading? Pagination? That isn\u2019t clear. I settled on a solution that gave me the least compromises while not abandoning the sprit of HTMX and HATEOAS. HTMX has a whole section on their site dedicated to reasons not to use HTMX: https://four.htmx.org/essays#counterpoints Alpine Ajax is actual", "context": "", "use_case": "serving HTML partials", "switched_from": "", "story": "Removing React.js from the codebase and adapting Htmx for UI interactivity"}, {"id": 785182160, "item_id": 49073885, "url": "https://news.ycombinator.com/item?id=49073885", "by": "jackhalford", "date": "2026-07-27", "stance": "warn", "quote": "I used htmx but had to migrate to svelte for storybook for development, I wish htmx had that sort of tooling", "excerpt": "I used htmx but had to migrate to svelte for storybook for development, I wish htmx had that sort of tooling", "context": "", "use_case": "UI interactivity", "switched_from": "", "story": "Removing React.js from the codebase and adapting Htmx for UI interactivity"}, {"id": 785154226, "item_id": 49072139, "url": "https://news.ycombinator.com/item?id=49072139", "by": "james2doyle", "date": "2026-07-27", "stance": "compare", "quote": "I still like HTMX and will probably use it again.", "excerpt": "I actually tried to use HTMX on a site recently. I used the 4.0 beta. The site needed an interactive filterable product-listing-page-type experience to list out all their vendors. Form filters on the left and the list of results \"cards\" on the right. The problem I had was that the entire experience became really slow when I had it all working together as one \"response\". Sending back all that HTML for an entire form w", "context": "web developer", "use_case": "server-driven UI interactivity", "switched_from": "", "story": "Removing React.js from the codebase and adapting Htmx for UI interactivity"}, {"id": 785089264, "item_id": 49068079, "url": "https://news.ycombinator.com/item?id=49068079", "by": "masfoobar", "date": "2026-07-27", "stance": "recommend", "quote": "To me, htmx just makes webdev even more smoother.", "excerpt": "Yes - how you likely built websites in 2000's era (possibly with Classic ASP or PHP4 .. maybe Perl?) is the sort of websites we are addressing with HTMX. It's bringing us back to that sort of web development but with modern tools and technology. For the server side, we can use modern languages with better templating for html. For the client, with htmx, you can do a lot of javascript such as ajax calls (load, trigger,", "context": "web dev since 2008", "use_case": "web development", "switched_from": "", "story": "Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy"}, {"id": 785009920, "item_id": 49063120, "url": "https://news.ycombinator.com/item?id=49063120", "by": "yawaramin", "date": "2026-07-26", "stance": "recommend", "quote": "I use htmx for loading and updating resources and I want those operations to work as well as possible even without JavaScript.", "excerpt": "It\u2019s a concern because I use htmx for loading and updating resources and I want those operations to work as well as possible even without JavaScript. I\u2019ve never felt the need for Alpine.js, I have very little I need to do with custom JS, and it\u2019s trivial to maintain that by hand.", "context": "", "use_case": "loading and updating resources", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 784982864, "item_id": 49061429, "url": "https://news.ycombinator.com/item?id=49061429", "by": "ballon_monkey", "date": "2026-07-26", "stance": "recommend", "quote": "I love HTMX and use it in a few projects", "excerpt": "I love HTMX and use it in a few projects, but its amusing how whats old is new again. .NET Framework / Web Forms had update panels to do partial rendering of web pages back in 2005. Outside of .NET developers it got a lot of hate. But to a certain extent HTMX is a super well refined and more capable version of update panels and more.", "context": "", "use_case": "web projects", "switched_from": "", "story": "Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy"}, {"id": 784965344, "item_id": 49060334, "url": "https://news.ycombinator.com/item?id=49060334", "by": "hirvi74", "date": "2026-07-26", "stance": "neutral", "quote": "the library worked well enough for what I needed, but I found it to be a bit too limiting compared to accomplishing the same task in Vanilla JS", "excerpt": "While I am not particularly a fan of HTMX, I do absolutely adore how Carson and the team always have such a great sense of humor with the project. I used HTMX in a few projects, and the library worked well enough for what I needed, but I found it to be a bit too limiting compared to accomplishing the same task in Vanilla JS (my go-to).", "context": "", "use_case": "web projects", "switched_from": "", "story": "Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy"}, {"id": 784895411, "item_id": 49055963, "url": "https://news.ycombinator.com/item?id=49055963", "by": "faangguyindia", "date": "2026-07-26", "stance": "neutral", "quote": "most of my web app use HTMX", "excerpt": "I mostly use Go + SQLite for all the things I used to use Rails, JavaScript, or Python for. I find python django wastes too much resources, just look at memory usage. One of my web app backend (go) is serving approx 100 req/s right now and i look at pprof i see it's not bottlenecked by CPU but mostly IO and i love this. Writing concurrent code in Go is easy, the code i wrote 10yrs ago still compiles with no issue! Th", "context": "", "use_case": "web apps", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 783374112, "item_id": 48960882, "url": "https://news.ycombinator.com/item?id=48960882", "by": "nymanjon", "date": "2026-07-18", "stance": "neutral", "quote": "With HTMX 4.0 it might be a bit nicer.", "excerpt": "With HTMX 4.0 it might be a bit nicer. I use my own home-grown HTMZ-BE lib/snippet that has the back end decide where to place the elements. Deciding from the back end makes it so you go from a lot of eventing on the front end to middleware on the back end, which significantly reduces the complexity of the application. And then when you do have a lot of interactivity you just send down the whole interactive area and ", "context": "", "use_case": "web front end", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 783266369, "item_id": 48954148, "url": "https://news.ycombinator.com/item?id=48954148", "by": "mamcx", "date": "2026-07-17", "stance": "recommend", "quote": "htmx+ tailwindcss is the one combo that is right and I use it", "excerpt": "This sound fantastic and Django is the main thing I miss from python. htmx+ tailwindcss is the one combo that is right and I use it so seeing is the direction give me hope. Some notes, I hope can be considered!: - The main thing is the auto admin, then `auth`, is great that the `auth` is mean to have a one-to-one connection for your own extensions - The main pain is that everything is tangled to the ORM and the auto-", "context": "", "use_case": "web frontend", "switched_from": "", "story": "Topcoat: The full full-stack framework for Rust"}, {"id": 782674256, "item_id": 48917141, "url": "https://news.ycombinator.com/item?id=48917141", "by": "fmind-dev", "date": "2026-07-14", "stance": "recommend", "quote": "It's a really nice combo, fast, efficient, and easy to maintain.", "excerpt": "I've switched from Python to Go + HTMX recently. It's a really nice combo, fast, efficient, and easy to maintain. HTMX should be part of the HTML spec.", "context": "switched from Python to Go", "use_case": "web frontend with Go", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 782664560, "item_id": 48916535, "url": "https://news.ycombinator.com/item?id=48916535", "by": "foxwell_1959", "date": "2026-07-14", "stance": "recommend", "quote": "I love the combination of Go and HTMX", "excerpt": "I love the combination of Go and HTMX, but these types of articles usually only show the basics. Coming from a JavaScript frontend NPM ecosystem heavy background, I would love to see a write up for a production ready application. Show how you handle asset bundling and hashing. What are the best DX tools for running the local dev server with hot reloading. How do you manage the few JS libraries dependencies that you n", "context": "background in JavaScript frontend NPM ecosystem", "use_case": "web frontend with Go", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 782654960, "item_id": 48915935, "url": "https://news.ycombinator.com/item?id=48915935", "by": "yawaramin", "date": "2026-07-14", "stance": "recommend", "quote": "If you\u2019re using htmx, I highly recommend an HTML generation technique in your backend", "excerpt": "If you\u2019re using htmx, I highly recommend an HTML generation technique in your backend that lets you easily componentize in the same way as you can with React. Eg, extracting common pieces of HTML markup into functions much like React components. The reason is that htmx requires a certain amount of flexibility in the HTML generated by the backend. Eg, you need to be able to generate a certain piece of HTML markup and ", "context": "", "use_case": "hypermedia web apps", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 782637536, "item_id": 48914846, "url": "https://news.ycombinator.com/item?id=48914846", "by": "arjie", "date": "2026-07-14", "stance": "recommend", "quote": "Huge fan of HTMX.", "excerpt": "Huge fan of HTMX. Agent can reason about components well. Iteration is good and testing story is solid. Very happy with results. I use Rust/Go (prefer Go - safer package ecosystem - no build time code running) with HTMX.", "context": "", "use_case": "web frontend with Go/Rust", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 782630768, "item_id": 48914423, "url": "https://news.ycombinator.com/item?id=48914423", "by": "overflowy", "date": "2026-07-14", "stance": "warn", "quote": "my experience with HTMX has always ended up being disappointing.", "excerpt": "While I love both Go and Alex, my experience with HTMX has always ended up being disappointing. I think the best way to put it, when I'm working with HTMX it feels like the complexity of the codebase is growing at a 2:1 rate compared to the app itself. I always end up with some weird edge case that I can not come out of without some weird hack. I get why people dislike Node packages, HTMX feels like it's an overcompe", "context": "", "use_case": "web apps", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 782626177, "item_id": 48914136, "url": "https://news.ycombinator.com/item?id=48914136", "by": "smallerfish", "date": "2026-07-14", "stance": "neutral", "quote": "I wrote a framework for my own use that uses Kotlin + HTMX", "excerpt": "I wrote a framework for my own use that uses Kotlin + HTMX - https://github.com/reubenfirmin/zoned. The goal was to see if I could create webapps that were fully typed, end to end. It uses Kotlinx.html, which provides a jsx-ish dsl for writing html. I did the first 90% by hand, and have done the last 10% (and README) with Claude, just to get it out there.", "context": "", "use_case": "web frontend", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 782617072, "item_id": 48913567, "url": "https://news.ycombinator.com/item?id=48913567", "by": "xp84", "date": "2026-07-14", "stance": "recommend", "quote": "I used HTMX on a recent project and really enjoyed it.", "excerpt": "I used HTMX on a recent project and really enjoyed it. As a person who knows how the Web worked before the invention of AngularJS and React, I deeply appreciate being able to build actual pages and minimize the amount of JS that has to exist. Vanilla JS works fine, but HTMX basically just substitutes for a lot of boilerplate that you'd otherwise have to create just to do the same event handler stuff over and over. If", "context": "knows how the Web worked before AngularJS and React", "use_case": "building web pages", "switched_from": "", "story": "How I use HTMX with Go"}, {"id": 776067681, "item_id": 48504230, "url": "https://news.ycombinator.com/item?id=48504230", "by": "Induane", "date": "2026-06-12", "stance": "recommend", "quote": "With server-side rendering ( I use HTMX )", "excerpt": "There are a couple of things: 1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup. 2. It's the same classes as you move from project to project. I have ton", "context": "maintains many small one-off apps", "use_case": "server-side rendered front end", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 758442256, "item_id": 47402641, "url": "https://news.ycombinator.com/item?id=47402641", "by": "bodash", "date": "2026-03-16", "stance": "recommend", "quote": "Go + HTMX + PostgreSQL + Redis can go a long mile", "excerpt": "Personally, I think Go + HTMX + PostgreSQL + Redis can go a long mile, but I could be missing hindsights", "context": "", "use_case": "rebuilding HN", "switched_from": "", "story": "Ask HN: What tech stack would you pick to rebuild HN today?"}, {"id": 744431120, "item_id": 46526945, "url": "https://news.ycombinator.com/item?id=46526945", "by": "ecshafer", "date": "2026-01-07", "stance": "recommend", "quote": "I just cant say enough how much I love HTMX.", "excerpt": "I just cant say enough how much I love HTMX. I got my feet wet doing hotwire/turbo in rails, and htmx is really just such a wonderful expansion of thise ideas. Making reactive app experiences on the web with a tiny js bundle and just writing html feels how web programming should be. I am writing a UI with Spring Boot + Thymleaf + HTMX and Alpine JS, and its the smoothest java based web dev experience ive had in so lo", "context": "building a UI with Spring Boot", "use_case": "reactive web UI", "switched_from": "", "story": "Htmx: High Power Tools for HTML"}, {"id": 744032864, "item_id": 46502054, "url": "https://news.ycombinator.com/item?id=46502054", "by": "lemonwaterlime", "date": "2026-01-05", "stance": "recommend", "quote": "I sprinkle htmx when I want interactivity", "excerpt": "The challenge for most people is that HTML and Modern CSS are a declarative programming paradigm. You then selectively sprinkle state on top of that. I use HTML and Modern CSS for frontend. I sprinkle htmx when I want interactivity and a tiny amount of plain JavaScript. That gives me a mostly declarative frontend. On the backend I use Haskell, which is also declarative unless you opt into other things. The challenge ", "context": "uses Haskell on the backend", "use_case": "frontend interactivity", "switched_from": "", "story": "CSS sucks because we don't bother learning it (2022)"}, {"id": 741686209, "item_id": 46355388, "url": "https://news.ycombinator.com/item?id=46355388", "by": "loumf", "date": "2025-12-22", "stance": "recommend", "quote": "But, I moved to Django/HTMX.", "excerpt": "I have recently gone all in on Python. Before I decided this, I was using Python for projects where I needed Pandas or numpy. I used React/TypeScript/Node for web applications. But, I moved to Django/HTMX. The main reason is to avoid npm, but also, I wanted something with more built-in defaults (my web apps have simple needs). It has nothing to do with the language -- it's more the ecosystem for me. I considered Ruby", "context": "", "use_case": "web frontend", "switched_from": "React", "story": "Ask HN: Why Did Python Win?"}, {"id": 741082448, "item_id": 46317653, "url": "https://news.ycombinator.com/item?id=46317653", "by": "didip", "date": "2025-12-18", "stance": "recommend", "quote": "I love HTMX. It felt like a rebirth of PJAX.", "excerpt": "I love HTMX. It felt like a rebirth of PJAX. Server side template rendering is simply the best. Too bad that the world insists on going nuts with JS everything. Oh as a plus, AI agents are a lot more productive when dealing with server side logic.", "context": "", "use_case": "server-rendered web UIs", "switched_from": "", "story": "Please just try HTMX"}, {"id": 741027488, "item_id": 46314218, "url": "https://news.ycombinator.com/item?id=46314218", "by": "liampulles", "date": "2025-12-18", "stance": "recommend", "quote": "I like HTMX, I use it on my blog.", "excerpt": "I like HTMX, I use it on my blog. But I will say, in the niche where I need some dynamic DOM changes without needing a full-blown SPA, raw JavaScript with some basic utilities like jQuery is not so bad. The issue with htmx is that it is fairly prescriptive of how one should go about building dynamic interactions, and it becomes complex quickly if the dynamic interaction is more than trivial. I don't disagree with its", "context": "enterprise developer", "use_case": "blog dynamic interactions", "switched_from": "", "story": "Please just try HTMX"}]}