capricorn86/happy-dom

A JavaScript implementation of a web browser without its graphical user interface

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 42 minutes ago
Added to GitGenius on September 14th, 2026
Created on September 9th, 2019
Open Issues & Pull Requests: 453 (+0)
GitHub issues: Enabled
Number of forks: 326
Total Stargazers: 4,656 (+0)
Total Subscribers: 12 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.7 days
Mean response time: 76.9 days
90th percentile: 215.3 days
Tracked items: 382

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Roughly one issue in two opened in the past year never receives a reply. 97% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "enhancement" is answered fastest, typically in about 27 hours, while "bug" waits about 7 days. 46% of tracked open issues have had no activity in three months. Only 40% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 239
New in 7 days: 5
Closed in 7 days: 0
Avg open age: 391 days
Stale 30+ days: 182
Stale 90+ days: 143

Recent activity

Opened in 7 days: 3
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 5

Top labels

  • bug (338)
  • enhancement (80)
  • high priority (8)
  • easy fix (4)
  • question (3)
  • documentation (1)
  • good first issue (1)

Detailed Description

Happy DOM is a JavaScript implementation of a web browser without its graphical user interface.

The tool solves the problem of testing browser-dependent code in Node.js environments where a full browser instance is unnecessary or impractical. It provides a lightweight DOM implementation that allows developers to run and test web components, JavaScript applications, and browser APIs in server-side contexts. The approach implements core DOM features including Custom Elements, Declarative Shadow DOM, Mutation Observer, Tree Walker, and the Fetch API, enabling realistic browser behavior simulation without the overhead of launching a graphical browser.

The tool suits projects that need to test frontend code in CI/CD pipelines, server-side rendering scenarios, or development environments where spinning up a full browser is inefficient. It integrates with popular testing frameworks including Vitest, Jest, and Testing Library, and works with major frontend frameworks such as React, Vue, Svelte, and Angular. Developers building Web Components or using libraries like Google LitElement will find it particularly useful. The tool is designed as a lighter-weight alternative to full browser automation for testing scenarios where the graphical interface is not required.

The project maintains active engagement with the testing and web standards community, as evidenced by its integration with multiple testing frameworks and its alignment with WHATWG standards. Development activity shows consistent attention to compatibility across diverse JavaScript ecosystems, from traditional Node.js to newer runtimes like Bun. The codebase is written in TypeScript, providing type safety for contributors and users alike.