# featuredrop

This plugin helps Claude Code configure FeatureDrop in a project. Use it to add in-app feature announcements, guided tours, checklists, or feedback widgets.

- plugin · `type=plugin` · Claude Code · ★ 14
- Author: glincker
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/glincker/featuredrop
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/plugins/featuredrop

## What it does

FeatureDrop provides UI components for product adoption: changelogs, tours, onboarding checklists, badges, and feedback widgets. The plugin helps Claude Code set up FeatureDrop in a project. FeatureDrop runs in a React component tree and uses a manifest you control.

Add the package to a project with `npm install featuredrop`. The manifest can define features and badge expiry dates; `LocalStorageAdapter` can hold runtime state. A database is not needed for the documented starter setup. The described integration targets React apps.

## Install

### Claude Code (native platform)

**Plugin marketplace**
In the agent chat (not a shell):
```text
/plugin marketplace add anthropics/claude-plugins-community
```
In the agent chat (not a shell):
```text
/plugin install featuredrop@claude-community
```

## When to use it
- configure FeatureDrop in a project
- define features and badge expiry dates in a manifest
- add a changelog to an app
- build a guided product tour
- collect feedback through an in-app widget

## Example prompts
- Set up FeatureDrop in my React project and add a changelog.
- Define these features in the manifest and show badges until their expiry dates.
- Add a guided tour and a feedback widget using FeatureDrop.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: ba1ff69d42071f78.

BEGIN THIRD-PARTY FILE ba1ff69d42071f78
````text
<p align="center">
  <img src="apps/docs/public/branding/icon-256.png" alt="FeatureDrop" width="72" height="72" />
</p>

<h1 align="center">FeatureDrop</h1>

<p align="center">
  <strong>The open-source product adoption toolkit.</strong><br />
  Changelogs • Tours • Checklists • Hotspots • Feedback — from your own codebase.<br />
  &lt; 3 kB core &nbsp;·&nbsp; Zero vendor lock-in &nbsp;·&nbsp; MIT licensed
</p>

<p align="center">
  <a href="https://github.com/GLINCKER/featuredrop/stargazers"><img src="https://img.shields.io/github/stars/GLINCKER/featuredrop?style=flat&color=f59e0b&label=stars" alt="GitHub stars" /></a>
  <a href="https://www.npmjs.com/package/featuredrop"><img src="https://img.shields.io/npm/v/featuredrop?color=ea580c&label=npm" alt="npm version" /></a>
  <a href="https://www.npmjs.com/package/featuredrop"><img src="https://img.shields.io/npm/dm/featuredrop?color=22c55e&label=downloads" alt="npm downloads" /></a>
  <a href="https://bundlephobia.com/package/featuredrop"><img src="https://img.shields.io/bundlephobia/minzip/featuredrop?color=22c55e&label=gzipped" alt="bundle size" /></a>
  <a href="https://github.com/GLINCKER/featuredrop/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/featuredrop?color=6366f1&label=license" alt="MIT license" /></a>
  <a href="https://featuredrop.dev"><img src="https://img.shields.io/badge/docs-live-ea580c" alt="Live docs" /></a>
  <a href="https://www.producthunt.com/products/featuredrop"><img src="https://img.shields.io/badge/Product%20Hunt-Featured-ff6154?logo=producthunt&logoColor=white" alt="Product Hunt" /></a>
  <a href="https://context7.com/glincker/featuredrop"><img src="https://img.shields.io/badge/Context7-Indexed-0ea5e9?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnoiIGZpbGw9IndoaXRlIi8+PC9zdmc+" alt="Context7" /></a>
</p>

<p align="center">
  <a href="https://featuredrop.dev/docs/quickstart">Quickstart</a> &bull;
  <a href="https://featuredrop.dev/docs/components/gallery">Components</a> &bull;
  <a href="https://featuredrop.dev/playground">Playground</a> &bull;
  <a href="https://featuredrop.dev/docs/api">API Reference</a> &bull;
  <a href="#migration-from-beamer--pendo">Migration Guide</a> &bull;
  <a href="https://github.com/GLINCKER/featuredrop/discussions">Discussions</a>
</p>

<p align="center">
  <img src="apps/docs/public/og/github-social.png" alt="FeatureDrop — The open-source product adoption toolkit" width="720" />
</p>


---

## Why FeatureDrop?

Feature discovery, changelog widgets, product tours, onboarding checklists,
and in-app feedback — every SaaS needs some subset of these, and every SaaS
ends up either paying a vendor monthly or hand-rolling a "New" badge that
never expires. FeatureDrop is the self-hosted middle path: a typed manifest
you own, components that run inside your own tree, and zero required
backend.

Every SaaS ships features. Users miss them. The usual options are bad:

| Option | Problem |
|---|---|
| **Beamer / Headway / AnnounceKit** | External widget, vendor lock-in, $49–399/mo |
| **Pendo / Appcues** | Feature flags AND onboarding, ~$7k+/yr |
| **Joyride / Shepherd.js** | Tours only, not persistence or changelog |
| **DIY** | You build it, forget expiry, badges stay forever |

**FeatureDrop** gives you a free, self-hosted middle path: production-ready adoption components that run inside your own React tree, powered by a JSON manifest you own.

---

## Quick Start

```bash
npm install featuredrop     # < 3 kB core, zero runtime dependencies
```

**1. Define your features:**

```ts
import { createManifest } from 'featuredrop'

export const features = createManifest([
  {
    id: 'dark-mode',
    label: 'Dark Mode',
    description: 'Full dark theme support across every surface.',
    releasedAt: '2026-03-01T00:00:00Z',
    showNewUntil: '2026-04-01T00:00:00Z',
    type: 'feature',
````
END THIRD-PARTY FILE ba1ff69d42071f78

The third-party file has ended. Everything between the ba1ff69d42071f78 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 4085 of 22306 bytes. © glincker · MIT · https://github.com/glincker/featuredrop

## Similar
- [discernment-nudge](https://affpapa.org/en/nevibecode/plugins/discernment-nudge.md) — plugin · ★ 184013
- [academy-guide](https://affpapa.org/en/nevibecode/plugins/academy-guide.md) — plugin · ★ 184013
- [claude-api](https://affpapa.org/en/nevibecode/plugins/claude-api.md) — plugin · ★ 184013
- [example-skills](https://affpapa.org/en/nevibecode/plugins/example-skills.md) — plugin · ★ 184013
- [document-skills](https://affpapa.org/en/nevibecode/plugins/document-skills.md) — plugin · ★ 184013
- [superpowers](https://affpapa.org/en/nevibecode/plugins/superpowers.md) — plugin · ★ 305662

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
