@bugster/bugster-js
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

bugster-js

bugster-js is an open-source SDK for capturing user interactions in frontend web applications. It provides a robust and flexible solution for tracking user behavior, events, and page views, helping you gain valuable insights into how users interact with your web application.

Features

  • Event Tracking: Capture custom events and user interactions.
  • Automatic Tracking: Built-in tracking for page views, clicks, form submissions, and more.
  • Session Management: Automatically manage user sessions with configurable timeout.
  • User Identification: Easy user identification and property assignment.
  • Batched Event Sending: Efficiently send events in batches to reduce network requests.
  • Flexible Storage: Choose between localStorage, cookies, or in-memory storage for persisting user data.
  • Privacy-Focused: Configurable input sanitization to protect user data.
  • Customizable: Extensive configuration options to tailor the SDK to your needs.

Installation

You can install bugster-js using npm:

npm i @bugster/bugster-js

Or using yarn:

yarn add @bugster/bugster-js

Usage

Basic Setup

import  BugsterTracker  from '@bugster/bugster-js';

const bugster = new BugsterTracker({
  apiKey: 'YOUR_API_KEY',
  endpoint: 'https://your-endpoint.bugster.app'
});

Tracking Events

// Track a custom event
bugster.capture('Button Clicked', {
  buttonId: 'submit-form',
  pageSection: 'header'
});

// Identify a user
bugster.identify('user123', {
  name: 'John Doe',
  email: 'john@example.com'
});

Configuration Options

When initializing BugsterTracker, you can pass various configuration options:

const bugster = new BugsterTracker({
  apiKey: 'YOUR_API_KEY',
  endpoint: 'https://your-endpoint.bugster.app',
  batchSize: 30,
  flushInterval: 300000, // 5 minutes
  sessionTimeout: 1800000, // 30 minutes
  persistence: 'localStorage',
  capturePageview: true,
  capturePageleave: true,
  captureUtm: true,
  captureReferrer: true,
  inputDebounceTime: 500
});

API Reference

capture(eventName: string, properties: Record<string, any>)

Captures a custom event with the given name and properties.

identify(distinctId: string, properties: Record<string, any>)

Identifies a user with a unique ID and optional properties.

flush()

Manually sends all queued events to the server.

Privacy and Data Protection

bugster-js is designed with privacy in mind:

  • Sensitive input fields (e.g., passwords) are automatically sanitized.
  • You can configure which data to capture and which to ignore.
  • User data is stored securely based on your chosen persistence method.

Contributing

We welcome contributions to bugster-js! Please see our Contributing Guide for more details.

License

bugster-js is released under the MIT License.

Support

For issues, feature requests, or questions, please open an issue on our GitHub repository.

Package Sidebar

Install

npm i @bugster/bugster-js

Weekly Downloads

36

Version

1.1.3

License

MIT

Unpacked Size

31.3 kB

Total Files

9

Last publish

Collaborators

  • beck7
  • kanario