LogRocket Feedback → Mushi Mushi
Hours Low riskLogRocket 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.
| LogRocket | Mushi 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 tab | The 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
- Step 01Create a Mushi Mushi project
- Step 02Install Mushi Mushi alongside LogRocket
- Step 03Mount Mushi Mushi (LogRocket stays as-is)
- Step 04Wire LogRocket session URL into Mushi Mushi metadata
- Step 05Mirror LogRocket.identify into mushi.identify
- Step 06Turn off LogRocket in-app surveys you used for bug reports
- Step 07Update internal runbooks
- Step 08Submit a test report and verify the LogRocket link works
Feature parity (feedback only; replay is its own product)
| Capability | LogRocket Feedback | Mushi Mushi |
|---|---|---|
| User-triggered feedback in the app | ✅ (Surveys add-on: rating + comment) | ✅ (bug report widget) |
| Screenshot in the report | Session 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.