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

@fasterfixes/react

v0.0.5

Published

React feedback widget for FasterFixes. Drop-in component for collecting visual feedback with screenshots, element annotations, and inline comments.

Readme

@fasterfixes/react

Documentation · Website

React feedback widget for FasterFixes — collect visual feedback with screenshots, element annotations, and inline comments.

Installation

npm install @fasterfixes/react

Quick start

Wrap your app with FeedbackProvider:

import { FeedbackProvider } from "@fasterfixes/react";

function App() {
  return (
    <FeedbackProvider apiKey="your-project-api-key">
      <YourApp />
    </FeedbackProvider>
  );
}

That's it. The widget appears as a floating button. Reviewers with a valid token can click elements, annotate them, and submit feedback with automatic screenshots.

Customize appearance

<FeedbackProvider
  apiKey="your-project-api-key"
  color="#e63946"
  position="bottom-left"
>
  <YourApp />
</FeedbackProvider>

color accepts any CSS color value, including CSS variables:

<FeedbackProvider apiKey="your-project-api-key" color="var(--brand-primary)">

The color is applied as a --ff-accent CSS custom property on the widget root. Any classNames overrides take precedence.

How it works

  1. A reviewer visits your site with a token link (?ff_token=...)
  2. They click the floating widget button to enter feedback mode
  3. They click any element on the page to annotate it
  4. A comment popover appears — they describe the issue and submit
  5. A screenshot is captured automatically and uploaded with the feedback
  6. Feedback pins appear on the page showing existing feedback items

Props

FeedbackProvider

| Prop | Type | Required | Description | | ------------ | --------------------- | -------- | -------------------------------------------------------------- | | apiKey | string | Yes | Your FasterFixes project API key | | apiOrigin | string | No | Custom API origin (default: https://www.faster-fixes.com) | | color | string | No | Widget accent color — any CSS color value (default: #02527E) | | position | WidgetPosition | No | Floating button position (default: bottom-right) | | classNames | Partial<ClassNames> | No | CSS class overrides for widget elements | | labels | Partial<Labels> | No | Custom UI text labels |

useFeedback hook

Control the widget programmatically:

import { useFeedback } from "@fasterfixes/react";

function MyComponent() {
  const {
    show,
    hide,
    isVisible,
    startAnnotation,
    feedbackItems,
    togglePins,
    showPins,
  } = useFeedback();

  return (
    <button onClick={() => (isVisible ? hide() : show())}>
      Toggle feedback widget
    </button>
  );
}

| Property | Type | Description | | ----------------- | ---------------- | ------------------------------------- | | show | () => void | Show the widget | | hide | () => void | Hide the widget and reset mode | | isVisible | boolean | Whether the widget is currently shown | | startAnnotation | () => void | Enter annotation mode directly | | feedbackItems | FeedbackItem[] | All feedback items for the project | | togglePins | () => void | Toggle pin visibility on the page | | showPins | boolean | Whether pins are currently visible |

Features

  • Visual element annotation with click-to-select
  • Automatic screenshot capture
  • Edit and delete existing feedback
  • Resolved feedback filtering
  • Dark mode UI
  • Animated toolbar with list and visibility toggles
  • Feedback pins positioned on annotated elements
  • Element highlighting on hover and active feedback
  • Cross-page feedback list with navigation
  • Configurable position (corners, middle-left, middle-right)
  • Configurable accent color
  • Custom CSS class overrides
  • Custom text labels
  • SPA navigation support (URL change detection)
  • Full keyboard support (Escape to cancel)

Browser support

Works in all modern browsers (Chrome, Firefox, Safari, Edge).

License

MIT