npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

feedlytic-widget

v1.1.4

Published

Lightweight JavaScript widget for capturing user feedback and exit-intent surveys

Readme

Feedlytic Widget 🚀

A lightweight, modern JavaScript widget for capturing user feedback, contextual comments, and exit-intent surveys.

Features

  • Multiple Feedback Types: Bug reports, feature requests, general feedback
  • 📍 Contextual Comments: Click anywhere on your page to add location-specific feedback
  • 🎨 Customizable: Brand colors, positioning, custom text
  • 📱 Responsive: Works on desktop and mobile devices
  • 🔧 Easy Integration: Simple script tag or ES module import
  • 📸 Screenshot Capture: Automatic screenshot generation for better context

Quick Start

🔒 Secure Integration (Recommended)

Basic Integration:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/feedlytic.umd.js"></script>
<script>
  // SECURE: Only project ID exposed - no database credentials!
  window.Feedlytic.init({
    projectId: 'your-project-id' // Only this is required
  });
</script>

With Custom Options:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/feedlytic.umd.js"></script>
<script>
  window.Feedlytic.init({
    projectId: 'your-project-id',
    color: '#your-brand-color',
    position: 'bottom-right',
    customTexts: {
      feedbackTitle: 'Send Feedback',
      submitButton: 'Send'
    }
  });
</script>

Via NPM

npm install feedlytic-widget

Configuration Options

const widget = new feedlyticWidget({
  // Required
  projectId: 'your-project-id',
  
  // Widget Appearance
  color: '#4f46e5',                    // Primary color
  position: 'bottom-right',            // bottom-right, bottom-left, top-right, top-left
  
  // Feature Toggles
  enableFeedback: true,                // Enable feedback button
  enableContextualFeedback: true,      // Enable contextual comments
  enableExitIntent: true,              // Enable exit-intent surveys
  
  // Exit Intent Settings
  exitIntentSensitivity: 2,            // 1-5, higher = more sensitive
  
  // Custom Text
  customTexts: {
    feedbackButton: 'Feedback',
    feedbackTitle: 'Send Feedback',
    feedbackPlaceholder: 'Tell us what you think...',
    submitButton: 'Send',
    cancelButton: 'Cancel',
    contextualModeButton: 'Click to Comment'
  }
});

Methods

// Initialize the widget
widget.init();

// Show feedback modal programmatically
widget.showFeedbackModal();

// Enable contextual comment mode
widget.enableContextualMode();

// Disable contextual comment mode
widget.disableContextualMode();

// Test database connection
widget.testConnection().then(isConnected => {
  console.log('Connection status:', isConnected);
});

// Destroy the widget
widget.destroy();

Events

// Listen to widget events
widget.on('feedback-submitted', (data) => {
  console.log('Feedback submitted:', data);
});

widget.on('widget-opened', (data) => {
  console.log('Widget opened:', data);
});

widget.on('widget-closed', () => {
  console.log('Widget closed');
});

widget.on('exit-survey-submitted', (data) => {
  console.log('Exit survey submitted:', data);
});

Browser Support

  • ✅ Chrome 60+
  • ✅ Firefox 60+
  • ✅ Safari 12+
  • ✅ Edge 79+

TypeScript Support

Full TypeScript definitions are included:

import { feedlyticWidget, feedlyticConfig } from 'feedlytic-widget';

const config: feedlyticConfig = {
  projectId: 'your-project-id',
};

const widget = new feedlyticWidget(config);

Alternative CDN Options

jsDelivr:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/feedlytic.umd.js"></script>

unpkg:

<script src="https://unpkg.com/[email protected]/dist/feedlytic.umd.js"></script>

License

MIT © Pacify Labs

Support