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

@cerebruminc/cerebellum

v19.0.1

Published

Cerebrum's React Component Library

Readme

License: MIT

Cerebellum

Cerebrum's React Component Library

For information about how to use Cerebellum in your application, please see the Storybook documentation.

Mantine Integration

Cerebellum exports Mantine-based helpers (showToast, showBar, showDialog, openConfirmModal, MantineModal, createCustomMantineTheme) as optional utilities. To use them, Mantine must be installed as a peer dependency in the consuming app.

1. Install Mantine

npm install @mantine/core @mantine/notifications @mantine/modals

2. Import CSS

Mantine uses CSS variables and CSS Modules. Add the following imports before any other styles in your app entry point (e.g. _app.tsx or layout.tsx):

// Mantine base styles (required)
import "@mantine/core/styles.css";
import "@mantine/notifications/styles.css";
import "@mantine/modals/styles.css";

// Cerebellum's Mantine CSS module styles (required for correct styling)
import "@cerebruminc/cerebellum/lib/esm/mantine.css";

3. Wrap your app with MantineProvider

import { MantineProvider } from "@mantine/core";
import { Notifications } from "@mantine/notifications";
import { ModalsProvider } from "@mantine/modals";
import { createCustomMantineTheme } from "@cerebruminc/cerebellum";

const theme = createCustomMantineTheme();

export default function App({ children }) {
  return (
    <MantineProvider theme={theme}>
      <ModalsProvider>
        <Notifications />
        {children}
      </ModalsProvider>
    </MantineProvider>
  );
}

Local Development

You can run Storybook locally with

npm start

Testing changes locally via yalc (the simplest)

Testing local builds with yalc

Once the component is working well in Storybook, you'll want to make sure it works as expected in your project. You can do this with yalc publish:

first make sure you have yalc installed in your machine

npm install -g yalc

Follow the next steps:

  1. Create a build of your changes:
npm run build
  1. publish the changes to your local repository that yalc creates, it grabs only files that should be published to NPM and puts them in a special global store.
yalc publish
  1. In your project repository run:
yalc add @cerebruminc/cerebellum
npm install

You'll need to do this whenever you want to connect to your local Cerebellum build. Make sure to restart your local server.

When you're done, you can revert your changes inside your package.json file and wait until the new version is available in the npm repository:

NOTE: There is a huge gotcha here. revert the changes inside package.json will require you to run again npm ci or npm i to reinstall the original package


Working with npm link (another way to work locally with cerebellum)

If you want to work with npm link, In the Cerebellum directory, run:

npm link

In the consuming app, run:

npm link @cerebruminc/cerebellum

You'll need to do this whenever you want to connect to your local Cerebellum build. Make sure to restart your local server.

Make sure to build Cerebellum to access your changes. You'll need to do this anytime you make changes.

npm run build

When you're done, unlink the local Cerebellum version:

npm unlink @cerebruminc/cerebellum

NOTE: If you prefer to work with npm link, sometimes you will need to deal with nasty constraints and problems with dependency resolution, symlink interoperability between file systems, etc. We recommend work with yacl

NOTE: There is a huge gotcha here. Running npm unlink @cerebruminc/cerebellum will uninstall Cerebellum, so you will need to re-install it before running your app again.

Linking with Next.js

To work with Next.js, you will need to alias react, react-dom, and styled-components to prevent conflicting versions:

// next.config.js
const nextConfig = {
  webpack: (config, options) => {
    config.resolve.alias = {
      ...(config.resolve.alias || {}),
      react: path.resolve(__dirname, "node_modules/react"),
      "react-dom": path.resolve(__dirname, "node_modules/react-dom"),
      "styled-components": path.resolve(__dirname, "node_modules/styled-components"),
    };
    return config;
  },
  // Remaining config
}

Troubleshooting npm link

  • Make sure the link is working. You can check it like this:
# run
ls -l node_modules/@cerebruminc 

# Linked to local build
total 0
lrwxr-xr-x@ 1 davebascom  staff  19 May 13 12:11 cerebellum -> ../../../cerebellum

# Using node_modules (not linked)
total 0
drwxr-xr-x  7 davebascom  staff  224 May 13 12:06 cerebellum
  • Make sure you are not re-installing node_modules when you restart your server. This unlinks any symlinks.
# Do not run this - it will re-install node_modules and unlink Cerebellum
npm run go

# Start the server directly
npm run dev:https
  • You may need to clear out node_modules in both Cerebellum and the consuming app.

  • If you get a compile error after unlinking, make sure Cerebellum is installed. When you run npm unlink @cerebruminc/cerebellum, it will uninstall the package.

Testing the production build

Whenever you open a pull request, a production build is created and uploaded to the @cerebruminc/cerebellum npm package. The name of this beta package is added as a comment to he pull request, allowing you to test it in your own project:

Example temporary release

Install this version in your package.json. Just make sure to omit the caret: | Stable | Experimental | | --- | --- | | "@cerebruminc/cerebellum": "v15.14.0", | "@cerebruminc/cerebellum": "15.14.0-beta.dangerous.c472cfa", |

Codemods

There are some codemods written in jscodeshift that you can run to update your existing Cerebellum integration. More information can be found in the codemods readme.