Real-time event stream showing page views, clicks, scroll depth, session end, and idle events with a live indicator

Page views don't tell the story

"User visited the pricing page" is five data points short of a narrative. Did they scroll? Did they linger? Did they tab away and come back? Were they idle while the tab was open? Did they bounce in 2 seconds or read for 4 minutes?

Most analytics tools leave you to guess. Some make you write custom event instrumentation to capture any of it. Onboardics captures all of it on install — no code, no schema, no maintenance — and gives you live visibility into every event as it happens.

What the snippet captures automatically

EventFires whenMetadata
scroll_depth On pagehide, reporting the max % scrolled on that page depth_bucket — 0 / 25 / 50 / 75 / 100
session_end On pagehide of the last page in a session session_duration_seconds, page_count, event_count
idle 2+ minutes of no keyboard / mouse activity while the tab is visible Capped at 3 events per session
visibility_change User tabs away or returns statehidden or visible
rage_click 3 clicks in under 500ms within a 30px radius Element selector, text, coordinates
time_on_page Every pagehide and SPA nav duration_seconds
custom Whenever you call window.__onboardics.track(name, props) event_name plus any properties you pass

Every event also carries the page_view baseline metadata from its session: UTM parameters, first-touch referrer, viewport dimensions, device type, detected framework. Nothing extra to wire up.

Live in the dashboard within 500ms

The Events page subscribes to a Supabase Realtime channel scoped to your project. Every /api/events insert pushes a postgres_changes notification over a WebSocket. New events appear in the stream in under half a second — no polling, no refresh button, no "rebuilding dashboard" delay.

A pulsing LIVE indicator shows the subscription is healthy. If you scroll down while new events arrive above, a floating "12 new events ↑" badge lets you jump back without losing your scroll position. 500ms is the buffer threshold we batch over — dropping below that was purely jitter from the UI rerender, not the pipeline.

This is different from how most analytics tools work. Amplitude, Mixpanel, PostHog Cloud all buffer server-side for minutes to hours before events show up in queryable form. Onboardics is an operational tool — you install the snippet, open the Events page, watch your first visitor in real time, and know immediately that things are wired up correctly.

Segments that unlock with engagement signals

Custom events, when the defaults aren't enough

Product-specific actions — "invoice sent", "listing published", "video watched 80%" — are one function call away:

window.__onboardics.track('invoice_sent', { amount: 4200, plan: 'growth' });

Custom events flow through the same pipeline, show up in the real-time stream with event_type = custom and metadata.event_name = invoice_sent, and are segmentable immediately. See Using custom events for a full walkthrough with SaaS / marketplace / content product examples.

Privacy-respecting by default

Engagement events participate in the same consent gate as every other event type. If setConsent(false) was called — or Termly auto-detection reads declined analytics consent — engagement events never fire. Form-field names captured in form_interaction events pass through a PII denylist (password, SSN, credit-card, etc.) before emission.

Everything we capture is detailed on the Security page. Nothing is hidden, nothing is opaque — you can read v1.js source.

Pricing

Rich engagement events and real-time streaming are available on all tiers including Free. They're part of the tracking snippet and the default dashboard — no plan-gate, no enterprise add-on, no polling-interval tier.

Start free →    Book a Demo