A lightweight, embeddable screenshot and annotation widget for web applications. This page demonstrates all features using HTML attribute configuration.
Try it now: Click the purple flag button in the bottom-right corner to capture a screenshot, annotate it, and see all features in action. Open Settings (gear icon) to customize the widget!
Three capture modes to fit every use case. Powered by html2canvas, loaded dynamically only when needed.
Captures the entire scrollable page, including content below the fold. Perfect for documenting long pages.
Captures exactly what's currently visible in the browser viewport. Fast and focused.
Click and drag to select a specific region. Ideal for highlighting particular UI elements.
Click on any screenshot preview to open the annotation editor with these tools:
Freehand drawing
Outlined boxes
Directional pointers
Semi-transparent marker
Available colors:
Three ways to configure Ginotate, each suited for different use cases:
Configure via gino-* attributes directly on the script tag:
For dynamic values from your app's state:
Just embed the script - everything uses sensible defaults:
Settings are applied in this order (highest priority first):
User preferences from the Settings panel always take precedence.
| Property | Attribute | Default | Description |
|---|---|---|---|
testerId |
gino-testerId |
"" | Pre-fill tester name field |
defaultTitle |
gino-defaultTitle |
"" | Pre-fill title field |
endpoint |
gino-endpoint |
Auto-detect | Submission URL |
apiKey |
gino-apiKey |
"" | API key (X-API-Key header) |
apiSecret |
gino-apiSecret |
"" | API secret (X-API-Secret header) |
icon |
gino-icon |
flag | flag, bug, pencil, target, magnifier |
color |
gino-color |
purple | 8 color options |
size |
gino-size |
medium | small (40px), medium (56px), large (72px) |
shape |
gino-shape |
circle | circle, rounded, pill |
opacity |
gino-opacity |
1 | 0 to 1 (becomes solid on hover) |
pulse |
gino-pulse |
false | Enable pulse animation |
title |
gino-title |
Send Feedback | Modal header text |
categories |
gino-categories |
5 defaults | Comma-separated list |
vars |
gino-vars |
[] | Global variable names to capture |
demoMode |
gino-demoMode |
false | Simulate submissions |
Users can access a comprehensive Settings panel via the gear icon in the popover menu. All changes are saved to a cookie and persist across pages and sessions.
Orange highlights show which settings differ from code defaults, with "Overrides default: X" hints.
Reset individual fields back to code defaults without affecting other customizations.
Clear all user customizations and restore the original code configuration.
Settings travel across all pages on the same domain automatically.
Try it: Open Settings, change some values (try color or size), then navigate to another demo page - your settings will follow! You can also drag the button anywhere.
Every submission automatically includes comprehensive context:
Include your application's data in every feedback submission:
Both methods can be combined. All values appear in the customVars field of the submission payload.
This page has window.ginotate set with demo values (userId, plan, environment). Submit feedback to see them included!
A draggable floating button appears on the page. Clicking opens a popover with capture options.
Select Full Page, Visible Area, or Custom Area. The screenshot is captured using html2canvas.
Click the screenshot preview to open the annotation editor. Draw, highlight, or add arrows.
Enter a title, description, select categories, and optionally add your name.
The feedback is POSTed to your endpoint with the screenshot, metadata, and custom variables.
Feedback submissions POST JSON to your configured endpoint:
Headers sent: Content-Type: application/json,
X-API-Key (if configured), X-API-Secret (if configured)
See different configuration approaches in action: