npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@instalog.dev/react-native

v0.1.2

Published

React Native SDK for Instalog - a developer tool for debugging mobile apps

Readme

@instalog.dev/react-native

React Native SDK for Instalog - a developer tool for debugging mobile apps. It provides error tracking, crash reporting, user feedback collection, and event logging capabilities for React Native applications.

Installation

npm i @instalog.dev/react-native

Platform-specific Setup

Android

For feedback functionality on Android, ensure you have the Instalog activity registered in your AndroidManifest.xml:

<activity
  android:name="dev.instalog.mobile.feedback.InstalogFeedbackActivity"
  android:label="Instalog"
  android:theme="@style/Theme.Instalog"/>

Usage

Initialization

Initialize Instalog at the beginning of your app, typically in your main App file:

import { Instalog } from '@instalog.dev/react-native';

// Initialize with default options
await Instalog.initialize('YOUR_API_KEY');

// Or with custom options
await Instalog.initialize('YOUR_API_KEY', {
  isFeedbackEnabled: true,
  isCrashEnabled: true,
  isLogEnabled: true,
  isLoggerEnabled: true,
  autoCaptureCrashes: true,
  errorGrouping: {
    enabled: true,
    flushIntervalMs: 30000,
    errorThreshold: 5,
    timeWindowMs: 60000,
    flushOnBackground: true,
  },
});

User Identification

Identify your users to associate logged events and crashes with specific users:

await Instalog.identifyUser('user_id_or_email');

Event Logging

Log specific events with optional properties:

await Instalog.log('button_clicked', {
  screen: 'HomeScreen',
  buttonType: 'primary',
  timestamp: new Date().toISOString(),
});

Error Boundary

Use the ErrorBoundary component to catch and report React component errors:

import { Instalog } from '@instalog.dev/react-native';

export default function App() {
  return (
    <Instalog.ErrorBoundary
      fallback={<YourCustomErrorScreen />}
      onError={(error, errorInfo) => {
        // Handle the error event, if needed
        console.log('Caught an error:', error);
      }}
    >
      <YourApp />
    </Instalog.ErrorBoundary>
  );
}

Manual Error Reporting

Send manual error reports:

try {
  // Some code that might throw
  riskyOperation();
} catch (error) {
  if (error instanceof Error) {
    // Format the error into a report
    const report = Instalog.formatErrorReport(error);
    
    // Send the report to Instalog
    await Instalog.sendCrash('Custom Error Name', report);
  }
}

User Feedback

Show a feedback modal to collect user feedback:

await Instalog.showFeedbackModal();

Test/Debug Methods

// Simulate a crash for testing
await Instalog.simulateCrash();

API Reference

Instalog

| Method | Description | |--------|-------------| | initialize(apiKey, options) | Initializes the Instalog SDK with API key and options | | identifyUser(userId) | Sets the user ID for tracking | | log(event, properties) | Logs an event with optional properties | | sendCrash(name, report) | Manually sends a crash report | | showFeedbackModal() | Shows the feedback collection UI | | simulateCrash() | Simulates a crash for testing | | formatErrorReport(error, errorInfo) | Formats an error into a structured report | | ErrorBoundary | React component to catch and report rendering errors |

Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | isCrashEnabled | boolean | false | Enable crash reporting | | isFeedbackEnabled | boolean | false | Enable user feedback collection | | isLogEnabled | boolean | false | Enable event logging | | isLoggerEnabled | boolean | false | Enable console logging | | autoCaptureCrashes | boolean | false | Automatically capture unhandled JS errors | | errorGrouping | object | See below | Configuration for error grouping behavior |

Error Grouping Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | enabled | boolean | true | Whether to enable error grouping | | flushIntervalMs | number | 30000 | Interval between error group flush checks (ms) | | errorThreshold | number | 5 | Number of occurrences before sending a group report | | timeWindowMs | number | 60000 | Max age before sending a group report (ms) | | flushOnBackground | boolean | true | Flush errors when app goes to background | | requireNetwork | boolean | true | Check network status before sending reports | | maxErrorsPerGroup | number | 10 | Max errors to store per group | | dynamicFlushInterval | boolean | true | Enable dynamic flush intervals based on error frequency |

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library