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

@stephanullmann/mockgoose

v0.0.8

Published

A mock of the Mongoose API

Readme

@stephanullmann/mockgoose

A lightweight mock of essential Mongoose features designed specifically for StackBlitz WebContainers.

Why?

Standard MongoDB and Mongoose connections don't work inside browser-based WebContainers. Solutions like mongodb-memory-server require native binaries that are also unsupported in that environment.

mockgoose solves this by mocking the Mongoose API (Schemas, Models, Queries) and persisting data to simple .json files in a local .mockgoose directory.

Features

  • Familiar API: Create Schemas and Models just like in Mongoose.
  • Persistence: Automatically saves data to .mockgoose/**/*.json sorted by collection.
  • WebContainer Compatible: Pure JavaScript/TypeScript, no binaries required.
  • Query Support: Supports common operations like find, findOne, create, updateOne, deleteOne, etc.

Installation

npm install @stephanullmann/mockgoose

Basic Usage

import { connect, Schema, model } from '@stephanullmann/mockgoose';

await connect('mongodb://localhost:27017/myapp'); // The URI is ignored, but setup is performed

//  Define a Schema
const userSchema = new Schema({
  name: String,
  email: { type: String, required: true },
  age: Number
});

//  Create a Model
const User = model('User', userSchema);

//  Use it like Mongoose
async function run() {
  // Create
  const newUser = await User.create({ 
    name: 'Guybrush Threeepwood', 
    email: '[email protected]', 
    age: 24 
  });

  // Read
  const users = await User.find({ age: { $gte: 18 } });
  
  // Update
  await User.updateOne({ _id: newUser._id }, { age: 31 });

  // Delete
  await User.deleteOne({ _id: newUser._id });
}

Supported Features

mockgoose aims to support the most common Mongoose operations, but it is not a 1:1 replacement.

Current Limitations:

  • Schema Validation: Basic schema structure is supported, but strict validation (required, min/max, custom validators) is not yet implemented.
  • Typescript: Basic type inference is available, but complex Mongoose Document types are not supported.
  • Advanced Queries: Features like Aggregation Pipelines, and complex populate calls are currently not supported or have limited support.
  • Connection: connect() is present for API compatibility but ignores the connection string.

Storage

Data is stored in the root of your project:

.mockgoose/
  ├── Users.json
  └── Books.json