VMs, containers, AI, databases, storage | build anything. No commitment to start.
Start your project in minutes. After credits run out, 20+ products include free monthly usage. Only pay when you're ready to scale with Google Cloud.
Start Building Free
Catch Bugs Before Your Customers Do
Real-time error alerts, performance insights, and anomaly detection across your full stack. Free 30-day trial.
Move from alert to fix before users notice. AppSignal monitors errors, performance bottlenecks, host health, and uptime—all from one dashboard. Instant notifications on deployments, anomaly triggers for memory spikes or error surges, and seamless log management. Works out of the box with Rails, Django, Express, Phoenix, Next.js, and dozens more. Starts at $23/month with no hidden fees.
...It's HTML5 canvas based and uses variable width Bézier curve interpolation based on Smoother Signatures post by Square. It works in all modern desktop and mobile browsers and doesn't depend on any external libraries. Demo works in desktop and mobile browsers. You can check out its sourcecode for some tips on how to handle window resize and high DPI screens. You can also find more about the latter in HTML5 Rocks tutorial. This library is provided as UMD (Universal Module Definition) and ES6 module. When you modify width or height of a canvas, it will be automatically cleared by the browser. SignaturePad doesn't know about it by itself, so you can call signaturePad.clear() to make sure that signaturePad.isEmpty() returns correct value in this case.