Skip to Content
v1.36.0 · shipped One-screen report · Looks like your app Read the changelog →
Migration guidesLogRocket Feedback → Mushi Mushi

LogRocket Feedback → Mushi Mushi

Hours Low risk

LogRocket is mainly session replay and product analytics. Its feedback features are in-app Surveys (a paid add-on you configure in the LogRocket dashboard, which can show a persistent rating and comment tab) and a Feedback view that pulls in feedback from tools like Intercom, Zendesk and the app stores. This guide moves in-app bug reporting to Mushi Mushi while you keep LogRocket for session replay.

You can run both SDKs side by side indefinitely. LogRocket records the session; Mushi Mushi captures the user’s report. Mushi Mushi can attach a LogRocket session URL to every report via metadata, so triagers get one-click access to the replay.

Why switch (the bug-report piece)

  • Bug reports, not ratings. A Mushi Mushi report carries the user’s description, a screenshot they can mark up, console and network logs, and (on the web) the page element they picked.
  • AI triage. Mushi Mushi’s two-stage classifier and judge loop turn raw reports into triaged tickets without a human pass.
  • Open-source server. Mushi Mushi’s server and console are AGPLv3, so you can self-host them for free. (LogRocket also offers self-hosting, as part of its paid plans.)
  • Privacy. Mushi Mushi captures on user trigger, one report at a time. If LogRocket keeps recording sessions, keep using LogRocket’s privacy controls too.

API mapping

const mushi = Mushi.init({...}) returns the instance used below.

LogRocketMushi Mushi
LogRocket.init('app/id')const mushi = Mushi.init({ projectId, apiKey }) (mounted separately)
LogRocket.identify(uid, traits)mushi.identify(uid, traits)
LogRocket.captureMessage(msg)mushi.captureEvent({ description: msg }), or let the user submit through the widget
LogRocket.captureException(err)mushi.captureException(err)
LogRocket.track(name, props)For repro context on the next report: mushi.addBreadcrumb({ category: 'custom', level: 'info', message: name }). For product analytics: mushi.track(name, props) (names must be snake_case; not attached to reports)
In-app survey / feedback tabThe Mushi Mushi widget (by default a floating button on desktop, an edge tab on phones), or your own button calling mushi.open()
LogRocket.getSessionURL(cb)Attach the URL as metadata on Mushi Mushi reports (below)

Linking LogRocket session URLs into Mushi Mushi reports

With this, each Mushi Mushi report carries the LogRocket session URL, so triagers can open the replay from the report.

import LogRocket from 'logrocket' import { Mushi } from 'mushi-mushi' LogRocket.init('your-app/id') const mushi = Mushi.init({ projectId: 'YOUR_PROJECT_ID', apiKey: 'YOUR_PUBLIC_KEY' }) // LogRocket calls this again when a new session starts. LogRocket.getSessionURL((sessionUrl) => { mushi.setMetadata('logrocketSession', sessionUrl) }) LogRocket.identify('user-42', { email: 'jane@example.com' }) mushi.identify('user-42', { email: 'jane@example.com' })

Every Mushi Mushi report now carries the LogRocket session URL in its metadata.

Migration checklist

Migration checklist
8 required steps
  1. Step 01
    Create a Mushi Mushi project
  2. Step 02
    Install Mushi Mushi alongside LogRocket
  3. Step 03
    Mount Mushi Mushi (LogRocket stays as-is)
  4. Step 04
    Wire LogRocket session URL into Mushi Mushi metadata
  5. Step 05
    Mirror LogRocket.identify into mushi.identify
  6. Step 06
    Turn off LogRocket in-app surveys you used for bug reports
  7. Step 07
    Update internal runbooks
  8. Step 08
    Submit a test report and verify the LogRocket link works

Feature parity (feedback only; replay is its own product)

CapabilityLogRocket FeedbackMushi Mushi
User-triggered feedback in the app✅ (Surveys add-on: rating + comment)✅ (bug report widget)
Screenshot in the reportSession replay instead✅ (with markup on web)
Console + network capture✅ (in the replay)✅
Self-host✅ (paid plans)✅ (free)
Open-source server❌ (SDK is MIT)✅
Session replay✅Opt-in, sampled (capture.replay); keep LogRocket if replay is central
Heatmaps✅❌
Funnels / analytics✅✅ (basic, from mushi.track())

The takeaway: Mushi Mushi replaces in-app bug reporting, not the replay. Keep LogRocket for replay; use Mushi Mushi for bug reports that arrive with context, an AI diagnosis and a ready fix.

References

Last updated on