Skip to content

WriteTrack Documentation

WriteTrack is a TypeScript SDK that captures and analyzes typing behavior. It records behavioral signals like timing, rhythm, corrections, and clipboard interactions from any text input element.

  • 100% Client-side — All capture and analysis happens in the browser; no data is sent anywhere unless you configure output sinks
  • Framework agnostic — Works with vanilla JS, React, Vue, Svelte, or any frontend framework
  • Lightweight — ~115KB gzipped, zero runtime dependencies
  • Detailed Behavioural Data — Captures timing, rhythm, corrections, clipboard usage, and more
import { WriteTrack, webhook } from 'writetrack';
const textarea =
document.querySelector<HTMLTextAreaElement>('#response-field')!;
const tracker = new WriteTrack({ target: textarea });
// Session data is POSTed to your endpoint when getData() is called
tracker.pipe(webhook({ url: 'https://api.example.com/writetrack' }));
tracker.start();
// ... user types ...
// Retrieve session data and dispatch to all registered sinks
const data = tracker.getData();

WriteTrack instruments your text inputs and captures behavioral signals:

  1. Timing Patterns — Dwell time (key hold duration), flight time (between keystrokes), rhythm consistency
  2. Correction Behavior — Backspaces, deletions, arrow key navigation, revision patterns
  3. Clipboard Interactions — Paste events, selection patterns, copy/cut operations
  4. Session Dynamics — Typing bursts, natural pauses, fatigue progression
  5. Authenticity Analysis — Optional WASM-powered analysis scores each session across six categories: content origin, timing authenticity, session continuity, physical plausibility, revision behavior, and temporal patterns
  • Desktop: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
  • Mobile: iOS Safari 14+, Android Chrome 90+, Mobile Firefox 88+