{"slug": "js", "name": "\u00b5JS", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.581, "rising": -0.98, "first": "2026-03-07", "latest": "2026-03-08", "why": "", "why_is_quote": false, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "", "kind": "", "icon": true, "domain": "mujs.org", "github_repo": null, "official_url": "https://mujs.org", "pricing": "", "aliases": ["\u00b5JS"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 756798352, "item_id": 47299897, "url": "https://news.ycombinator.com/item?id=47299897", "by": "jadbox", "date": "2026-03-08", "version": null, "stance": "recommend", "quote": "I love this- I'll give it a spin.", "excerpt": "I love this- I'll give it a spin. I'd really want web developers to start making websites again that can run without javascript, but it can feel like a SPA if JS is available. This has always been 'possible' but, in practice, it's a massive pain. uJS and HtmX could help to be the polyfill solution to make this possible. That said, I worry about Form elements being controlled by uJS to use a different REST method (lik", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}, {"id": 756687392, "item_id": 47292962, "url": "https://news.ycombinator.com/item?id=47292962", "by": "h4ch1", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "cool library", "excerpt": "Hey, cool library had just a small nitpick/request wrt https://mujs.org/playground Could you please add all sources as tabs? For example in Form (GET) I would really like to see /demos/search-results.html and the same goes for other examples. Thanks!", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}, {"id": 756620896, "item_id": 47288806, "url": "https://news.ycombinator.com/item?id=47288806", "by": "recursivedoubts", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "great library!", "excerpt": "heya amaury, great library! i have added it to the htmx alternatives page: https://htmx.org/essays/alternatives/#ujs", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}]}], "caveats": [], "who": [], "tags": [], "use_cases": [], "compared": [{"slug": "htmx", "name": "htmx", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "turbo", "name": "Turbo", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 756683744, "item_id": 47292734, "url": "https://news.ycombinator.com/item?id=47292734", "by": "amaury_bouchard", "date": "2026-03-07", "version": null, "stance": "compare", "quote": "The former is a browser navigation library (a lightweight alternative to HTMX and Turbo)", "excerpt": "Indeed! While the names are similar, \u00b5JS (mujs.org) and MuJS (mujs.com) are completely different projects. The former is a browser navigation library (a lightweight alternative to HTMX and Turbo), while the latter is an embeddable JavaScript interpreter written in C, developed by Artifex for MuPDF. Sorry for the confusion!", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}, {"id": 756671488, "item_id": 47291968, "url": "https://news.ycombinator.com/item?id=47291968", "by": "amaury_bouchard", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "I don't see any reason why they wouldn't work well together.", "excerpt": "I haven't tried it personally, but I don't see any reason why they wouldn't work well together. \u00b5JS manipulates the DOM via fetch and swapping, while web components live in the DOM like any other element. The only thing to be aware of is that if \u00b5JS replaces a fragment containing a web component, connectedCallback will fire again, which is the expected behavior. Would love to hear your feedback if you give it a try!", "context": "", "use_case": "DOM fragment swapping", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}], "threads": [{"url": "https://news.ycombinator.com/item?id=47285876", "title": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies", "mentions": 5}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 3}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 756798352, "item_id": 47299897, "url": "https://news.ycombinator.com/item?id=47299897", "by": "jadbox", "date": "2026-03-08", "version": null, "stance": "recommend", "quote": "I love this- I'll give it a spin.", "excerpt": "I love this- I'll give it a spin. I'd really want web developers to start making websites again that can run without javascript, but it can feel like a SPA if JS is available. This has always been 'possible' but, in practice, it's a massive pain. uJS and HtmX could help to be the polyfill solution to make this possible. That said, I worry about Form elements being controlled by uJS to use a different REST method (lik", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}, {"id": 756687392, "item_id": 47292962, "url": "https://news.ycombinator.com/item?id=47292962", "by": "h4ch1", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "cool library", "excerpt": "Hey, cool library had just a small nitpick/request wrt https://mujs.org/playground Could you please add all sources as tabs? For example in Form (GET) I would really like to see /demos/search-results.html and the same goes for other examples. Thanks!", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}, {"id": 756620896, "item_id": 47288806, "url": "https://news.ycombinator.com/item?id=47288806", "by": "recursivedoubts", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "great library!", "excerpt": "heya amaury, great library! i have added it to the htmx alternatives page: https://htmx.org/essays/alternatives/#ujs", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: \u00b5JS, a 5KB alternative to Htmx and Turbo with zero dependencies"}]}