Skip to content
PluginStats

makethisbetter weekly downloads statistics

By makethisbetter · npm · Claude Code

Make This Better JS Widget SDK — embed user feedback collection in any website

View on npm Stale · Oct 18, 2026

makethisbetter has 916 recorded weekly downloads on npm, ranking #1492 of 2,391 tracked listings.

Weekly downloads
916
Official API · Oct 18, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#1492
Among tracked npm listings

About makethisbetter

<p align="center"> <img src="assets/logo.png" width="80" height="80" alt="Make This Better"> </p> <h1 align="center">Make This Better</h1> <p align="center"> Feedback widget with screenshots, annotations, and AI triage. </p> <p align="center"> <a href="https://makethisbetter.dev">makethisbetter.dev</a> </p> <p align="center"> <a href="https://www.npmjs.com/package/makethisbetter"><img src="https://img.shields.io/npm/v/makethisbetter.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/makethisbetter"><img src="https://img.shields.io/npm/dm/makethisbetter.svg" alt="npm downloads"></a> <a href="https://bundlephobia.com/package/makethisbetter"><img src="https://img.shields.io/bundlephobia/minzip/makethisbetter" alt="bundle size"></a> <a href="https://github.com/makethisbetter/makethisbetter-js/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license"></a> </p> <p align="center"> <a href="https://makethisbetter.dev"><img src="assets/makethisbetter-homepage-en.png" alt="Make This Better website homepage"></a> </p>

Why

You ship with AI agents. Your users hit bugs you never see in dev. They leave. You never find out why.

This widget gives your users a way to report exactly what went wrong — annotated screenshot, console errors, DOM state, browser info — in two clicks. AI triage turns that into a structured task your coding agent (Claude Code, Cursor, Codex) picks up automatically. The agent ships the fix. The user gets notified.

No more "can you describe what happened?" No more lost screenshots in Slack. The full loop, from frustrated user to shipped fix, runs without you context-switching.

Quick Start

CDN (2 lines)
<script src="https://unpkg.com/makethisbetter@1"></script>
<script>
  MakeThisBetter.init({ projectKey: 'mtb_proj_YOUR_KEY' })
</script>
npm
npm install makethisbetter
import { MakeThisBetter } from 'makethisbetter'

MakeThisBetter.init({ projectKey: 'mtb_proj_YOUR_KEY' })

That's it. A feedback tab appears on your page.

How It Works

User clicks feedback tab
  -> Annotates the problem (click to pin, drag to draw)
  -> Adds a comment
  -> Submits
     +-- Screenshot captured automatically
     +-- Console errors collected
     +-- Page context assembled (URL, browser, OS, selectors)
     +-- Sent to Make This Better API
     +-- AI asks a clarifying question if needed
  -> Dashboard shows structured feedback
  -> AI triage produces an agent-ready task
  -> Your coding agent picks it up and ships the fix
  -> User gets notified: the fix is live

Framework Guides

<details> <summary><strong>React / Next.js</strong></summary>
// app/providers.tsx (App Router) or pages/_app.tsx (Pages Router)
'use client'
import { useEffect } from 'react'

export function FeedbackProvider({ user }: { user?: { id: string, email?: string } }) {
  useEffect(() => {
    import('makethisbetter').then(({ MakeThisBetter }) => {
      MakeThisBetter.init({
        projectKey: process.env.NEXT_PUBLIC_MTB_KEY!,
        user
      })
    })
    return () => {
      import('makethisbetter').then(({ MakeThisBetter }) => MakeThisBetter.destroy())
    }
  }, [user])
  return null
}
</details> <details> <summary><strong>Vue / Nuxt</strong></summary>
// plugins/makethisbetter.client.ts (Nuxt) or main.ts (Vue)
import { MakeThisBetter } from 'makethisbetter'

export default defineNuxtPlugin(() => {
  MakeThisBetter.init({
    projectKey: useRuntimeConfig().public.mtbKey,
  })

  return {
    provide: { mtbDestroy: () => MakeThisBetter.destroy() }
  }
})
</details> <details> <summary><strong>Astro</strong></summary>
<!-- src/components/Feedback.astro -->
<script>
  import { MakeThisBetter } from 'makethisbetter'
  MakeThisBetter.init({ projectKey: import.meta.env.PUBLIC_MTB_KEY })
</script>
</details> <details> <summary><strong>Rails</strong></summary>
<%# app/views/layouts/application.html.erb %>
<body>
  <%= yield %>

  <%# Turbo replaces <body> on every visit, taking any script-appended element
      with it. Render the host yourself and mark it permanent, or the widget is
      rebuilt after each navigation and anything mid-flight — a half-written
      report, a screen recording — is lost. %>
  <div id="mtb-widget-host" data-turbo-permanent></div>

  <% if current_user&.admin? %>
    <script src="https://unpkg.com/makethisbetter@1"></script>
    <script>
      MakeThisBetter.init({
        projectKey: '<%= Rails.application.credentials.mtb_project_key %>',
        user: { id: '<%= current_user.id %>', email: '<%= current_user.email %>' }
      })
    </script>
  <% end %>
</body>

The host must sit inside <body> — Turbo pairs permanent elements by id within the body snapshot, so one placed in <head> is never matched and nothing happens. It needs both the id and the attribute; either alone does nothing.

Only Turbo-driven apps need this. React, Vue and Svelte routers re-render inside their own container and never replace <body>, so the host survives on its own.

</details> <details> <summary><strong>Plain HTML / Static Sites</strong></summary>
<script src="https://unpkg.com/makethisbetter@1"></script>
<script>
  MakeThisBetter.init({ projectKey: 'mtb_proj_YOUR_KEY' })
</script>
</details>

Features

Annotation

Click any element to pin it, or drag to draw a freeform highlight. The SDK captures the element's CSS selector, text content, and position.

Interaction Replay

Switch to Replay mode in the toolbar to capture an Interaction Replay (up to 60 seconds). It records rrweb DOM mutations and interaction events. It does not capture screen video or audio and does not request browser media permissions. The recorder loads lazily, so there is zero cost until the reporter starts a replay.

What a replay contains…

Description from the npm listing.

  • feedback
  • widget
  • ai
  • mcp
  • claude-code
  • cursor
  • vibe-coding
  • agent
  • bug-reporting
  • annotation

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

makethisbetter weekly downloads on npm, last 90 days: 916 weekly downloads as of Oct 18, 2026.makethisbetterWeekly downloads on npm · Last 90 days916downloads / week8008509009501K1.1KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekOct 18, 2026 – Oct 18, 2026 · 1 observations · Updated Oct 18, 2026pluginstats.com
makethisbetter weekly downloads on npm, last 90 days: 916 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

makethisbetter weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.makethisbetterWeekly downloads growth on npm916downloads / week now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
makethisbetter weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

makethisbetter npm ranking history: currently #1492 (by weekly downloads).makethisbetternpm ranking · by weekly downloads · Last 90 days#1492current rank#1460#1465#1470#1475#1480#1485#1490#1495Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 20, 2026 – Oct 21, 2026 · 2 observations · Updated Oct 18, 2026pluginstats.com
makethisbetter npm ranking history: currently #1492 (by weekly downloads).

Listing placement

All npm2,389 listings · 120 pages · 1,196 shown · page 76, #12 (overall #1,512)
All npm: every listing in weekly downloads order

Listing placement

Claude Code279 listings · 14 pages · page 11, #12 (overall #212)
Claude Code: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (1)
Recent weekly downloads observations for makethisbetter
Date (UTC)Weekly downloadsChange vs. previous
916—

Similar npm Claude Code plugins

All 20 makethisbetter alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/makethisbetter. First seen Oct 20, 2026; last successful collection Oct 20, 2026. See the methodology.