Built for React Native & Expo

Bug reports that actually help you fix things.

Shake to report. Every bug comes with Zustand state, navigation history, and JS errors. Route to Linear, GitHub, Jira, or Slack.

Free tier. No credit card. MIT licensed.

error 2m ago
Cart total shows $0 after adding items
State Snapshot
cart: { items: 3, total: 0 }
user: { plan: "pro" }
Navigation
/products → /cart → /checkout
Integrates with
How it works

Shake. Annotate. Ship.

1

Shake your phone

BugPulse captures a screenshot, freezes your app state, and records the navigation history. All automatic.

2

Annotate the screenshot

Draw on the screenshot to circle the problem. Pick colors, undo strokes, highlight exactly what's wrong.

3

Bug lands in your tracker

Report goes to Linear, GitHub, Jira, or Slack with full diagnostics attached. Your team gets everything they need.

Features

What generic tools miss

RN-Specific Diagnostics

Every report captures what cross-platform tools miss. Not just a screenshot and a text box.

  • Zustand & Redux state snapshots frozen at shake time
  • Expo Router navigation history with timestamps
  • JS error boundaries with full stack traces
  • Console warnings and errors
  • Device info, OS version, screen size, locale
diagnostics.json
{
  "stateSnapshots": [{
    "name": "cartStore",
    "state": {
      "items": ["Earbuds", "Case"],
      "total": 0
    }
  }],
  "navHistory": [
    { "path": "/products" },
    { "path": "/cart" },
    { "path": "/checkout" }
  ],
  "lastError": {
    "message": "Cannot read total of undefined"
  }
}

Route Anywhere

One SDK, every destination. Reports go where your team already works.

  • Linear, GitHub Issues, Jira, Slack
  • Multi-destination routing
  • Auto-labeling by screen, platform, error type
  • Spike alerts when bugs cluster
  • Custom webhook for anything else
Your App
BugPulse
Linear GitHub Jira Slack

Zero Backend (Free Tier)

Ship in 5 minutes, not 5 sprints. No account needed for the free tier.

  • Free tier sends directly to Slack webhooks
  • No proxy, no server, no signup required
  • Paid proxy handles Linear, GitHub, Jira auth
  • HMAC-signed for security on paid tier
Without BugPulse
😧
User: "the app crashed"
No screenshot. No state. No stack trace.
With BugPulse
🐛
BugPulse: Cart total shows $0
error /checkout 3 state snapshots screenshot attached

Add BugPulse in 3 lines

Wrap your app. Shake to report. That's it.

Expo SDK 50+ React Native 0.72+ TypeScript
App.tsx
import { BugReportProvider, SlackIntegration } from '@bugpulse/react-native';

export default function App() {
  return (
    <BugReportProvider
      integrations={[
        SlackIntegration({
          webhookUrl: 'https://hooks.slack.com/...',
        }),
      ]}
    >
      <YourApp />
    </BugReportProvider>
  );
}
Pricing

Start free. Scale when ready.

No credit card required. Upgrade or cancel anytime.

Free
$0
For side projects
  • SDK with all diagnostics
  • Direct Slack/webhook
  • Open source
Get Started
Pro
$19/mo
For teams at scale
  • Unlimited destinations
  • Duplicate detection
  • Report enrichment
  • Unlimited reports
Get Started