# zumerlab/snapdom

High-performance engine for capturing, modifying, and converting DOM elements into any format.

Repository: https://github.com/zumerlab/snapdom
Canonical: https://ross.abutalabs.com/products/snapdom
Homepage: https://snapdom.dev
Language: JavaScript
License: MIT
License Family: permissive
Topics: screenshot, dom, clone, capture-screen, dom-manipulation, fidelity, javascript, plugin-system, snapdom-plugin, html2canvas-alternative
Last push: 2026-08-25T08:50:03+00:00

## Health v2 (maintenance only)
Score: 86/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 99, longevity 35
- inputs: {"age_days": 493, "days_push": 8, "days_rel": 8, "gap_med": 6, "n_releases_24m": 52}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 8040, forks 301 (observed 2026-08-28T04:10:12.088838+00:00)

## What it is
SnapDOM is a high-performance, dependency-free browser library that captures DOM elements as self-contained SVG representations and exports them to PNG, JPG, WebP, Canvas, Blob, or custom plugin formats. It preserves high fidelity details like web fonts, pseudo-elements, and shadow roots, serving as a fast modern alternative to html2canvas and html-to-image.

## Use cases
- capture a DOM element as a PNG image in the browser
- export rendered HTML components as downloadable images
- generate social share cards from HTML and CSS
- produce visual regression baselines for UI testing
- export dashboard charts and KPI cards as a single image
- find an html2canvas alternative with better fidelity and speed

## When to choose
- you need high-fidelity DOM-to-image capture including fonts, pseudo-elements, and shadow DOM
- capture performance matters, e.g. repeated captures in dashboards or tests
- you want a zero-dependency, MIT-licensed browser library with a plugin system for custom export formats

## When to avoid
- you need server-side or Node.js rendering rather than in-browser capture
- you need full-page screenshots of live websites rather than capturing a DOM subtree in your own app
- you need PDF export or formats not supported by core or available plugins

## Facets
- artifact type: library
- maturity: active
- function: image-processing, plugin-system, developer-tools
- domain: web-development, frontend, image-processing
- platform: browser
- tags: dom-capture, screenshot, html2canvas-alternative, svg-export, png-export, html-to-image, visual-regression, zero-dependencies, javascript, nodejs

## Member repositories
- zumerlab/snapdom (main) score 86

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:12.088838+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:31:25.752222+00:00, confidence not recorded.
  - readme: https://github.com/zumerlab/snapdom (fetched 2026-08-28T04:10:12.088838+00:00, sha 0e059831b08b)
  - homepage: https://snapdom.dev (fetched 2026-08-29T08:29:33.422454+00:00, sha a2b297b59817)
  - site_page: https://snapdom.dev/docs/api (fetched 2026-08-29T08:29:33.427284+00:00, sha 611352f98757)
  - site_page: https://snapdom.dev/docs (fetched 2026-08-29T08:29:33.425236+00:00, sha 964011fdfb92)
  - site_page: https://snapdom.dev/docs/options (fetched 2026-08-29T08:29:33.429273+00:00, sha 08d64acdbc31)
- Data as of 2026-08-30T08:39:29.467469+00:00.
