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

@imola-solutions/setup

v0.4.0

Published

One-command turnkey setup for @imola-solutions/* packages. Creates a Supabase project (or connects to an existing one), applies SQL schemas, creates storage buckets, configures RLS, and writes .env + client code. Ready-to-go in one shot.

Readme

@imola-solutions/setup

One-command turnkey installer for @imola-solutions/*. Creates a Supabase project (or connects to your existing one), applies SQL migrations, creates storage buckets, configures RLS, and writes the .env + client code. You only pick — the CLI does everything else.

Usage

Run in your project root:

npx @imola-solutions/setup

What it does

  1. Detects your framework (Vite / Next.js / Create React App) from package.json
  2. Detects installed @imola-solutions/* packages (pre-selects them in the module picker)
  3. Asks you 3–5 questions:
    • Framework
    • Which modules (chat, calendar, documents, secure-messaging, workflow-builder, distribution-lists)
    • Supabase: create new or connect existing
    • If new: org, project name, DB password, region
    • If existing: pick from your project list
  4. Applies the schema:
    • Runs init.sql + rls.sql for each module you picked, against Supabase via the Management API
    • Creates required storage buckets (documents bucket for the documents module, etc.)
  5. Writes files in your project:
    • .env.local — with VITE_SUPABASE_URL + VITE_SUPABASE_ANON_KEY (or NEXT_PUBLIC_* on Next.js)
    • src/lib/imola-client.ts (or .js) — canonical Supabase client instance
    • Optional: src/examples/<module>.tsx — minimal wiring for each chosen module

What you need

For create new flow:

  • A Supabase account
  • A Personal Access Token from https://supabase.com/dashboard/account/tokens (starts with sbp_)
  • The CLI never stores it — used only for this session

For connect existing flow:

  • Same Personal Access Token (used to fetch keys + apply migrations)

After running

The CLI prints:

Install the modules if you haven't yet:
  npm install @imola-solutions/client @supabase/supabase-js \
              @imola-solutions/chat @imola-solutions/documents ...

Then use them from your app:
  import { client } from "./lib/imola-client";

That's it. In your components:

import { createChatService, ChatProvider, ChatLayout } from "@imola-solutions/chat";
import { client } from "./lib/imola-client";

const chatService = createChatService({
  apiClient: client,
  currentUser: { id: "USR-1", name: "Alice", avatar: "/a.png" },
});

export function App() {
  return (
    <ChatProvider chatService={chatService}>
      <ChatLayout ... />
    </ChatProvider>
  );
}

Safety

  • Idempotent — running the CLI twice against the same project is safe. Migrations use IF NOT EXISTS, RLS policies are dropped-then-recreated.
  • Never touches your code unless you consent to writing the example files.
  • Personal Access Token is never stored anywhere. It's used only for the API calls in this run.
  • Service role key is written to .env.local as a commented-out line so you can uncomment it if you need admin operations from a server.

Requirements

  • Node ≥ 18
  • A Supabase account
  • A package.json in your project (for framework/module detection)