Skip to content
JS
Comparison

happy-dom vs jsdom

Scraping and browser automationPackage data 25 Sept 2026
happy-domv20.14.5, 12 Sept 2026

Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.

$ npm install happy-dom
jsdomv30.1.1, 22 Sept 2026

A JavaScript implementation of many web standards

$ npm install jsdom
Metrichappy-domjsdomDifference
Weekly downloads12,435,30075,093,642jsdom 6.0x higher
12-month download growth+420%+141%happy-dom +279 pts
Gzip size---
Minified size---
Dependencies720jsdom 13 more
Unpacked size8.2 MB6.8 MBjsdom 20% smaller
Latest release20.14.5, 12 Sept 202630.1.1, 22 Sept 2026jsdom 10 days more recent
Releases, last 12 months9016happy-dom 74 more
First published15 Sept 201921 Nov 2011jsdom 7.8 years earlier
GitHub stars4,66721,691jsdom 4.6x higher
Open issues335273happy-dom 62 more
Open pull requests12029happy-dom 91 more
Contributors-382-
Commits, last 52 weeks141277jsdom 2.0x higher
TypeScript typesBundledNoneDiffers
Module formatESM onlyCommonJSDiffers
Runtimes---
LicenseMITMITSame

Green marks the smaller size or the more recent release. Bold marks the higher count, with no judgement implied. Sizes are for the whole package per Bundlephobia. Growth compares the average of the last 4 weeks with the first 4 weeks of the 52-week series.

happy-dom12.4m latest weekjsdom74.7m latest week
Week of 23 Sept 2025Week of 15 Sept 2026
Weekly npm downloads, 52 weeks. Y axis starts at zero. Values are not smoothed.

happy-dom

Major versions
  1. 0.0.115 Sept 2019
  2. 1.0.04 Oct 2020
  3. 2.0.014 Dec 2020
  4. 3.0.026 Apr 2022
  5. 4.0.019 May 2022
  6. 5.0.031 May 2022
  7. 6.0.030 Jun 2022
  8. 7.0.05 Oct 2022
  9. 8.0.07 Dec 2022
  10. 9.0.01 Apr 2023
  11. 10.0.05 Jul 2023
  12. 11.0.06 Sept 2023
  13. 12.0.015 Sept 2023
  14. 13.0.010 Jan 2024
  15. 14.0.019 Mar 2024
  16. 15.0.021 Aug 2024
  17. 16.0.027 Dec 2024
  18. 17.0.05 Feb 2025
  19. 18.0.010 Jun 2025
  20. 19.0.028 Sept 2025
  21. 20.0.09 Oct 2025
Last 5 releases
  1. 20.14.512 Sept 2026
  2. 20.14.412 Sept 2026
  3. 20.14.39 Sept 2026
  4. 20.14.29 Sept 2026
  5. 20.14.19 Sept 2026
772 releases in total, 90 in the last 12 months

jsdom

Major versions
  1. 0.0.121 Nov 2011
  2. 1.0.028 Sept 2014
  3. 2.0.028 Dec 2014
  4. 3.0.018 Jan 2015
  5. 4.0.022 Feb 2015
  6. 5.0.016 Apr 2015
  7. 6.0.05 Aug 2015
  8. 7.0.017 Oct 2015
  9. 8.0.027 Jan 2016
  10. 9.0.06 May 2016
  11. 10.0.024 Apr 2017
  12. 11.0.021 May 2017
  13. 12.0.019 Aug 2018
  14. 13.0.029 Oct 2018
  15. 14.0.010 Mar 2019
  16. 15.0.021 Apr 2019
  17. 16.0.013 Jan 2020
  18. 17.0.013 Aug 2021
  19. 18.0.08 Oct 2021
  20. 19.0.02 Dec 2021
  21. 20.0.019 Jun 2022
  22. 21.0.07 Jan 2023
  23. 22.0.02 May 2023
  24. 23.0.026 Nov 2023
  25. 24.0.021 Jan 2024
  26. 25.0.025 Aug 2024
  27. 26.0.09 Jan 2025
  28. 27.0.013 Sept 2025
  29. 28.0.02 Feb 2026
  30. 29.0.015 Mar 2026
  31. 30.0.027 Jul 2026
Last 5 releases
  1. 30.1.122 Sept 2026
  2. 30.1.017 Sept 2026
  3. 30.0.129 Jul 2026
  4. 30.0.027 Jul 2026
  5. 29.1.130 Apr 2026
276 releases in total, 16 in the last 12 months
happy-dom

-

jsdom

-

happy-dom

-

jsdom

-

  • Need both ESM and CommonJS entry pointsNeither (happy-dom: ESM only; jsdom: CommonJS)
  • Need to load it with require()jsdom
  • Need TypeScript types in the package itselfhappy-dom (happy-dom: Bundled; jsdom: None)
  • Node.js version requirementhappy-dom: >=20.0.0; jsdom: ^22.22.2 || ^24.15.0 || >=26.0.0 (engines field in package.json)
  • Need the more recent releasejsdom (30.1.1 on 22 Sept 2026 vs 20.14.5 on 12 Sept 2026)
  • Higher weekly npm downloadsjsdom (75.1m vs 12.4m)

Each line is generated from the data above.

Indexability: Indexed: 160 US searches/month across both orderings ("happy-dom vs jsdom", "jsdom vs happy-dom").