Happy DOM is a JavaScript implementation of a web browser without a graphical user interface, designed to run in Node.js. It provides a comprehensive simulation of browser APIs including the DOM, HTML/SVG elements, CSSOM, Fetch, WebSocket, Canvas, Custom Elements, Shadow DOM, and more. The library is primarily used as a test environment for JavaScript frameworks (React, Vue, Angular, Lit, etc.) and supports server-side rendering via an optional server-renderer package. The codebase is a monorepo containing the core happy-dom package along with companion packages for global registration, Jest environment, server rendering, and a pluggable canvas adapter. It is actively maintained with thousands of tests and a large community. However, it exhibits moderate technical drift: some APIs are incomplete, there is significant boilerplate duplication across SVG/HTML element implementations, and a few deprecated settings linger. Overall, it is a solid, well-structured library but not exceptional in craftsmanship due to the repetitive patterns and some incomplete implementations.
Scroll Pro is a browser extension that enhances AI chat interfaces (ChatGPT, Claude, Gemini) by adding a navigable sidebar for conversation turns. It enables users to copy, export (to Markdown, PDF, text, JSON), and navigate chats via a table of contents. The extension operates entirely client-side using React 19.2.0, TypeScript, and Vite, with UI rendered in a Shadow DOM for isolation. Key features include platform-specific DOM parsing, keyboard shortcuts, context menus, and persistent state via browser storage. The architecture centers around a content script entry point that mounts a React app, provider abstractions for each chat platform, and reusable utilities for markdown conversion, scrolling, and file downloads.