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

watermelondb-studio

v0.2.6

Published

watermelon db on device server and web client for viewing and managing the db

Readme

🍉 WatermelonDB Studio

A developer tool for browsing and managing your WatermelonDB database directly from your device, inspired by tools like Flipper, but with no native client installation needed.

It provides an on-device server and a web-based client to view, query, and manage your database in real-time.

Screenshot of WatermelonDB Studio

Features

  • Live Database Inspection: Connect directly to your app's WatermelonDB instance on a running device or simulator.
  • Wireless Connectivity: Works over your local Wi-Fi network, no USB cable required.
  • QR Code Connection: A simple and fast connection process using your webcam to scan a QR code.
  • Browse Tables: View and paginate through all the records in your tables.
  • Raw SQL Queries: Run custom SQL queries against the database and see the results instantly.
  • CRUD Operations: Create, Read, Update, and Delete records through the web interface.
  • Expo & Bare React Native: Compatible with both major React Native development environments.

Installation & Setup

1. Install Package

yarn add watermelondb-studio

or

npm install watermelondb-studio

2. Install Peer Dependencies

This package relies on several peer dependencies which you need to install in your project:

You can install them all with one command:

yarn add @react-native-async-storage/async-storage expo-device expo-network react-native-svg react-native-tcp-socket

or

npm install @react-native-async-storage/async-storage expo-device expo-network react-native-svg react-native-tcp-socket

Note: You must already have @nozbe/watermelondb installed and configured in your project.

This package itself contains no native code, which means it won't introduce new sources of native build errors. The native modules it relies on are the peer dependencies listed above, many of which may already be in your project.

3. Native Dependencies

If you are using a bare React Native project (not Expo), you will need to ensure the native modules for react-native-svg and react-native-tcp-socket are correctly linked.

Run npx pod-install for iOS. For Android, the autolinking should handle it, but please refer to the respective packages' documentation if you encounter any issues.

How It Works

WatermelonDB Studio has two parts:

  1. The In-App Component (DebugProvider): You add this to your React Native app. It wraps your application and starts a small server that has direct access to your WatermelonDB instance. This server observes your database for any changes.
  2. The Web Client: A separate web application that connects to your app's server. It receives a live stream of your data, reacting instantly to any changes in the app. This is done efficiently by sending only the data differences over an SSE (Server-Sent Events) connection, so you always have a real-time view of your database with minimal overhead.

Usage

1. Wrap Your App with DebugProvider

In your app's entry file (e.g., App.tsx), import the DebugProvider and wrap your root component. It's highly recommended to only enable it during development.

// App.tsx
import { DebugProvider } from 'watermelondb-studio';
import { database } from './path/to/your/db'; // 👈 Make sure to import your database instance

const App = () => (
  // The DebugProvider should be one of your top-level components
  <DebugProvider database={database} enabled={__DEV__}>
    {/* The rest of your app */}
  </DebugProvider>
);

export default App;

2. Run the Studio Client

In your project's root directory, run the following command in your terminal:

npx watermelondb-studio

This will start the web server and should automatically open the Studio client in your browser.

3. Connect to Your App

  1. With your React Native app running on a device or simulator, use a four-finger tap on the screen to open the debug overlay.
  2. Tap the "Start Server" button. The server status will change to "Running," and a QR code will appear.
  3. In the web client (in your browser), click the "Scan QR Code" button.
  4. Allow browser permissions for your webcam, and point it at the QR code displayed on your device's screen.
  5. The client will automatically connect, and you will see your database tables appear.

Alternatives

If you are not using WatermelonDB or are looking for other solutions, the ecosystem has some great tools.

  • Drizzle ORM for Expo SQLite: If you're using Expo's built-in SQLite, Drizzle ORM offers what is arguably the best alternative toolset. It provides its own ORM, migration generation with drizzle-kit, and a powerful drizzle-studio for browsing your on-device database, making it a comprehensive solution.

Contributing

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

License

MIT