SignFlow · e-signature sdk · self-hosted

Capture legally-relevant signatures, not just a scribble.

A TypeScript widget that records pressure, velocity, and timing per stroke — then stores it as scalable, replayable vector data. Own your data, verify it server-side, ship it in an afternoon.

Try the live demoSee capabilities

Capabilities

Everything the data model needs to hold up as evidence.

Pressure-accurate capture

Pointer events record x, y, pressure, and timing per stroke — touch, pen, and mouse all normalized into one model.

Vector, not raster

Signatures store as SVG path data with a replayable pressure array — small, scalable, and animatable on playback.

Server-stamped timestamps

The signing date is assigned by the API, never trusted from the client, closing the door on backdated records.

Opt-in geolocation

Location is requested through explicit consent UI and defaults to null on decline — built for GDPR / POPIA.

Scoped key pairs

Every project gets a public key for capture and a secret key for retrieval. Rotate either one, instantly invalidating the old.

WASM stroke smoothing

An optional Rust-compiled WASM module smooths pressure and velocity curves client-side — no network hop required.

Quick start

A few lines to capture and submit a signature.

capture.ts
Save