Open source · zero dependencies · browser native

SnapDOM captures any element as SVG, PNG, JPG, WebP. Plugins add GIF, video, standalone HTML and custom formats.

npm i @zumer/snapdom
<script src="https://unpkg.com/@zumer/snapdom/dist/snapdom.js"></script>
v2.23.2 current version 1m+ downloads/month MIT licensed
+ +
Mr. SnapDOM, ready to be captured Subject: Mr. SnapDOM AF · locked Live DOM: not a screenshot Fig. 01: moments before capture
CAPTURE
Used in production by

What SnapDOM captures.

SnapDOM starts from the element the browser rendered. It preserves the parts that usually make DOM capture difficult without rebuilding the page in a second rendering engine.

High fidelity

Web fonts, pseudo-elements, SVG references, backgrounds and open shadow roots travel with the capture.

Fast by design

A linear capture pipeline, bounded caches and lazy exporters keep repeated captures responsive.

Simple API

Capture once, then export to PNG, SVG, canvas, blob, JPG or WebP from the same result.

Zero dependencies

Ship one focused browser library without pulling a second DOM or rendering stack into your app.

Plugin-ready

Add formats and capture behavior without making the core library larger for everyone.

Open source

The core remains MIT licensed, inspectable and usable in personal and commercial projects.

SnapDOM Pro

Paid plugins for production workflows built on top of SnapDOM.

Professional plugins · coming soon

Production-ready plugins.

SnapDOM Pro will add focused, production-ready capabilities without changing the free core. Plugin sales fund ongoing SnapDOM maintenance and help keep the library current, independent and open source.

Built on the public plugin API

Local-first, explicit and integrated with the same capture lifecycle as SnapDOM.

Explore plugins
Mr. SnapDOM running toward the live demos

21 live demos

Run the complete demo suite.

Run SnapDOM against canvas, video, fonts, masks, transforms, Shadow DOM, iframes and plugin exporters. Every example uses the real library.

Open the showcase

Install SnapDOM and capture your first element.