awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
zumerlab avatar

zumerlab/snapdom

0
View on GitHub↗
7,902 stars·286 forks·JavaScript·MIT·14 viewssnapdom.dev↗

Snapdom

Snapdom is a DOM capture engine that serializes live web page elements into images, videos, documents, and other formats. It converts any DOM subtree into PNG, JPG, WebP, SVG, PDF, or self-contained HTML, and can record animating elements as video files or animated GIFs using the browser's MediaRecorder API.

The library distinguishes itself through a plugin-based architecture that allows custom output format handlers and pipeline hooks to extend the capture process without re-cloning the source element. It manages separate caches for images, styles, and fonts with preloading and clearing methods to optimize memory and rendering speed, and resolves cross-origin assets through a configurable proxy to avoid canvas taint. Snapdom also supports visual regression testing by comparing captured subtrees against saved baselines, and can generate annotated screenshots with bounding boxes for use with large language models.

Additional capabilities include CSS effect rendering for transforms, shadows, clip-paths, blend modes, masks, and pseudo-elements, as well as font embedding to preserve original typography. The capture pipeline supports dimension and scale control, node filtering, form value capture, text find-and-replace, and timestamp overlays, with a reusable composable hook pattern for declarative use in component frameworks.

Features

  • DOM Subtree Capture and Exports - Captures any DOM subtree as a self-contained representation and exports it to multiple formats.
  • DOM Subtree Animated Recordings - Records animating DOM elements as video files or animated GIFs using browser capture APIs.
  • DOM-to-Image Converters - Converts any DOM element into PNG, JPG, WebP, SVG, or PDF formats.
  • Raster Image Exports - Renders DOM subtrees to PNG, JPG, or WebP bitmap formats for download or further use.
  • Multi-Format Image Exports - Converts captured DOM representations into PNG, JPG, WebP, SVG, Canvas, or Blob output.
  • DOM Export Plugins - Ships a plugin system for adding custom output formats and pipeline hooks to the DOM capture process.
  • DOM Element PNG Captures - Captures any DOM subtree as a PNG image by attaching a ref and calling a single function.
  • DOM Subtree Renderers - Clones and serializes a live DOM subtree with styles, images, and fonts for self-contained export.
  • DOM Subtree Capture Engines - Captures, modifies, and exports DOM subtrees as images, videos, or documents.
  • DOM-to-Canvas Renderers - Provides a DOM-to-canvas rendering pipeline that serializes live DOM subtrees into canvas representations.
  • Screenshot Generators - Generates high-fidelity screenshots of DOM elements with embedded styles and fonts.
  • Captured Element Downloads - Triggers a browser download of the captured element as an image file in a chosen format.
  • Multi-Format Exports - Routes a single cloned DOM subtree through multiple output converters without re-cloning the source element.
  • Single-Capture - Clones the DOM element once and exports it to multiple formats without re-cloning the source.
  • DOM Subtree JPG Exports - Exports DOM subtrees as JPEG images for compressed raster output.
  • Font Inlining - Inlines font-face rules and icon fonts into captured output to preserve original typography.
  • DOM Subtree - Captures animating DOM elements frame by frame and encodes them into animated GIFs.
  • Animation Frame Capturers - Captures frame-by-frame changes of animating DOM elements and encodes them into animated GIFs or video files.
  • Captured Image Downloads - Downloads the captured image directly as a file with a specified format and filename.
  • DOM Subtree SVG Captures - Converts DOM subtrees into SVG documents preserving layout, styles, and fonts.
  • DOM Subtree SVG Exports - Exports DOM subtrees as SVG for scalable vector output.
  • DOM Subtree Video Recordings - Captures animating DOM elements to video via the native MediaRecorder API.
  • Export Pipeline Plugins - Provides a plugin system for registering custom output format handlers and pipeline hooks in the capture process.
  • Pipeline Plugins - Registers custom hooks that run at each stage of the capture and export process.
  • Capture - Extends the capture and export process with custom hooks and output format plugins.
  • Composable Capture Hooks - Ships a reusable composable hook that wraps the DOM capture lifecycle for declarative use in component frameworks.
  • Capture Format Plugins - Defines new output methods that become available on the capture result object via a plugin system.
  • Visual Regression Testing - Compares captured DOM subtrees against saved baselines to detect visual differences in web interfaces.
  • Computed Style Renderers - Renders CSS transforms, shadows, clip-paths, blend modes, masks, and pseudo-elements into captured output.
  • CSS Effect Renderers - Renders CSS transforms, shadows, clip-paths, blend modes, masks, and pseudo-elements into captured output.
  • DOM Subtree Blob Captures - Converts a selected DOM element into a Blob object for uploading or further processing.
  • PNG Captures - Converts DOM elements into PNG images with optional retina resolution support.
  • Web-Compatible Font Embedding - Downloads and inlines web fonts into captured output to preserve original typography.
  • DOM Node Filtering - Excludes specific DOM elements from capture using CSS selectors or custom filter functions.
  • DOM Video Frame Captures - Draws the current frame of a video element so it can be captured like any other DOM node.
  • DOM Subtree Video Recordings - Records animating DOM subtrees as video files or animated GIFs using the MediaRecorder API.
  • JavaScript 框架汇总 - Listed in the “JavaScript 项目” section of the Great Open Source Project awesome list.

Star history

Star history chart for zumerlab/snapdomStar history chart for zumerlab/snapdom

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Snapdom

Similar open-source projects, ranked by how many features they share with Snapdom.
  • tsayen/dom-to-imagetsayen avatar

    tsayen/dom-to-image

    10,777View on GitHub↗

    dom-to-image is a programmatic tool for capturing the visual state of HTML elements as downloadable images or raw image data. It functions as a DOM to image converter that renders specific nodes as base64 data URLs, binary blobs, or pixel arrays. The library transforms HTML elements into raster or vector images by utilizing the HTML5 canvas API. It can retrieve raw byte arrays of a DOM node for low-level image manipulation as an RGBA pixel data extractor. The project covers web content rasterization and the generation of dynamic screenshots from live HTML content. It handles the conversion o

    JavaScriptcanvascssdom
    View on GitHub↗10,777
  • bubkoo/html-to-imagebubkoo avatar

    bubkoo/html-to-image

    7,033View on GitHub↗

    html-to-image is a JavaScript library and client-side screenshot utility that transforms DOM elements into image formats such as PNG, JPEG, or SVG. It functions as a DOM-to-canvas renderer, using the browser's native rendering capabilities to convert document nodes into rasterized images or canvas elements. The library leverages SVG foreignObject serialization to capture live DOM content, which is then rasterized into pixel-based formats. It includes specialized exporters for generating binary Blobs or raw RGBA pixel data as typed arrays. The tool provides configurations for image appearance

    TypeScriptcanvasdataurldom
    View on GitHub↗7,033
  • niklasvh/html2canvasniklasvh avatar

    niklasvh/html2canvas

    31,881View on GitHub↗

    This project is a browser-based rendering engine that captures visual snapshots of web page elements. It functions as a document object model to canvas renderer, programmatically reconstructing the visual appearance of web content by interpreting CSS box models and document structures directly within the client environment. The tool distinguishes itself by performing all image generation locally, eliminating the need for server-side processing or external rendering services. By simulating browser layout logic and mapping geometric shapes and text properties to pixel-based drawing commands, it

    TypeScriptdomjavascriptscreenshot
    View on GitHub↗31,881
  • garris/backstopjsgarris avatar

    garris/BackstopJS

    7,156View on GitHub↗

    BackstopJS is an automated screenshot testing framework and visual regression testing tool designed to identify pixel-level discrepancies between different versions of a web application. It functions as a browser automation testing suite that captures visual snapshots of a user interface and compares them against stored reference images to detect unintended changes. The project utilizes a containerized testing environment via Docker to ensure consistent browser rendering and prevent cross-platform visual discrepancies. It includes a web UI diffing interface that allows users to analyze visual

    JavaScript
    View on GitHub↗7,156
See all 30 alternatives to Snapdom→

Frequently asked questions

What does zumerlab/snapdom do?

Snapdom is a DOM capture engine that serializes live web page elements into images, videos, documents, and other formats. It converts any DOM subtree into PNG, JPG, WebP, SVG, PDF, or self-contained HTML, and can record animating elements as video files or animated GIFs using the browser's MediaRecorder API.

What are the main features of zumerlab/snapdom?

The main features of zumerlab/snapdom are: DOM Subtree Capture and Exports, DOM Subtree Animated Recordings, DOM-to-Image Converters, Raster Image Exports, Multi-Format Image Exports, DOM Export Plugins, DOM Element PNG Captures, DOM Subtree Renderers.

What are some open-source alternatives to zumerlab/snapdom?

Open-source alternatives to zumerlab/snapdom include: tsayen/dom-to-image — dom-to-image is a programmatic tool for capturing the visual state of HTML elements as downloadable images or raw… bubkoo/html-to-image — html-to-image is a JavaScript library and client-side screenshot utility that transforms DOM elements into image… niklasvh/html2canvas — This project is a browser-based rendering engine that captures visual snapshots of web page elements. It functions as… garris/backstopjs — BackstopJS is an automated screenshot testing framework and visual regression testing tool designed to identify… sindresorhus/pageres — Pageres is an automated web page capturer and command line interface that renders HTML content and websites into… nexu-io/html-anything — This project is an LLM HTML artifact generator and sandboxed previewer designed for rapid prototyping and content…