Feedback Loop

Presentation analytics for shared decks.

Every /s/{slug} link silently records who got how far. Per-slide dwell time, bounce slide, returners. No raw IPs, no third-party trackers — analytics that respects the people you sent the deck to.

What it does
Per-slide dwell.

See exactly which slide held attention and which one got skipped. Heatmap renders within 30 seconds of a viewer closing the tab.

Bounce slide.

Find the slide where most viewers left. Fix it once, ship the next version, watch the funnel move.

Returners.

Anonymous fingerprinting tells you when the same viewer came back. The Monday-morning signal that the Friday pitch landed.

Privacy default-on.

Aggregate-only. We never store raw IPs. Identified analytics requires viewer auth and explicit owner opt-in. Read the policy →

FAQ
Do you store IP addresses?
No. We hash IP+UA+date with a daily-rotated salt to fingerprint viewers anonymously. Raw IPs never touch the database.
Can my viewers opt out?
Yes — we honor the Do-Not-Track header and a ?noanalytics=1 query string.
When does identified analytics kick in?
Only when (a) you marked the share as auth-required, (b) the viewer signed in, and (c) you opted in to identified analytics for that specific share. All three must be true.
Can I A/B test slide titles?
Coming. Per slideVariants JSON on each slide, viewers get a deterministic variant; we aggregate completion-after-slide as the lift metric.

Send a deck. Watch the heatmap.