Capture
Take a full scroll capture of the broken page, or a region around the defect, so the developer sees the layout, the error, and the state in one image.
Annotate
Use the paid cloud editor on a synced capture to add boxes, arrows and expected-versus-actual callouts. For a local-only handoff, keep the capture local and put the explanation in the report text.
Attach
Export a PNG or a paginated PDF, then drop it into the bug report yourself since Captorify does not write into trackers for you.
What a useful bug report has to show
QA captures have to carry enough context to reproduce the issue while keeping test accounts and tokens out of the picture. Captorify covers the full-page capture, the markup, and the cleanup in one browser workflow.
How teams use it
Capture the failure, explain the relevant detail and attach the checked image to the report.
Redaction and source context
Staging screenshots can expose session tokens or API keys. Decide the storage boundary before capture: turn off "Sync captures to cloud" or use a native browser capture for local-only work, then use the free manual redactor. The paid editor offers reviewed suggestions on already-synced captures. Its optional PDF URL and timestamp overlay supplies context, not proof of authenticity.
- Suggested redaction matches token and key shapes, including Stripe-style keys and high-entropy strings, and asks you to confirm.
- Raw captures export locally for free. Cloud-editor annotations and edited exports require a paid plan.
A repeatable bug report shape
Use the same fields for each report so triage can find the reproduction steps, environment and expected result.
- Starting state and numbered steps to reproduce.
- Expected and actual behavior, explained in text and optionally annotated on the image.
- Browser, operating system, application version and capture date.
Related guide for this task Put evidence images in reading order
Related guide for this task Mark the relevant control in a screenshot
Capture limits worth knowing
Plan around the limits so a developer does not get a silently cut or blank image.
- Lazy-loaded images may appear blank if they have not loaded by the time their tile is captured.
- Very tall pages are clamped with a truncation warning that shows captured versus total height.
- For a page past the cap, capture it in sections and combine them rather than relying on one giant image.
Follow one complete fictional QA handoff
1. Start with the fictional billing dashboard at 1200 × 760. Its September 1-7 range and Weekly billing summary provide the starting state, while Export is disabled. 2. Open that image in the free annotation tool and point an arrow at Export; the downloadable PNG is the actual tool output. 3. Fill the existing blank bug report with the expected result, actual result, reproduction context and observed frequency. The completed example is a training report, not a customer issue.
4. The three-page PDF keeps this one case in order: original dashboard, actual annotated PNG, then a PNG rendered from the completed fictional report text. The last page is a report image, not an application capture or proof that Export was clicked. Download the PDF and inspect every page before attaching it to a tracker. Local image preparation happens in your browser; a hosted Team library is a separate paid workflow.
Download the fictional source image
Actual local annotation-tool PNG of the fictional dashboard, pointing to its disabled Export control. Download the actual annotated PNG
Download the rendered fictional report PNG
Check the PDF order, settings and file hashes
Download the blank bug report template
Read the completed fictional report
Use a reproducible report template
Use the completed example to see a disabled-control report with its starting state, actions and expected and actual results. Record the frequency you observed and attach the checked image.
Keep the source capture when your data-handling rules allow it. A manual screenshot supports the report; automated regression coverage requires a separate test.
# Bug report: [one observable problem]
Environment: [app version, browser version, OS, viewport and zoom]
Preconditions: [demo account state and sample data]
Steps to reproduce:
1. [first action]
2. [second action]
3. [action that triggers the failure]
Expected result: [specific observable outcome]
Actual result: [specific observable difference]
Frequency: [for example, 3 of 3 attempts]
Impact: [which task is blocked]
Attachment: [checked, redacted screenshot filename]
Annotation: [what the highlighted area demonstrates]
Sensitive-data review: [what was removed and export verification]