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

callpad-sdk

v0.1.0

Published

A Turborepo monorepo containing the CallPad Web SDK and related packages.

Readme

CallPad Web SDK

A Turborepo monorepo containing the CallPad Web SDK and related packages.

Project Structure

This monorepo includes the following packages:

Packages

  • packages/sdk - CallPad SDK (vg-callpad-x07df) - Production-ready headless SDK for CallPad audio/video calls
  • examples/demo - Demo application showcasing CallPad SDK features

Tools & Configuration

  • Turborepo for build orchestration and monorepo management
  • pnpm as the package manager
  • TypeScript for type checking
  • Biome for code linting and formatting
  • Changesets for version management and publishing

Getting Started

Prerequisites

  • Node.js ≥18
  • pnpm ≥9.0.0

Installation

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run type checking
pnpm check-types

# Run linting
pnpm lint

Development

# Start development mode
pnpm dev

# Start development for SDK only
pnpm dev --filter=vg-callpad-x07df

# Start demo application
pnpm dev --filter=callpad-demo

Building

# Build all packages
pnpm build

# Build SDK only
pnpm build --filter=vg-callpad-x07df

# Build with type checking
pnpm build && pnpm check-types

Publishing Packages

This project uses Changesets for version management and publishing. The main publishable package is the CallPad SDK (vg-callpad-x07df).

Prerequisites for Publishing

  1. NPM Authentication: Ensure you have npm access and authentication configured

    npm login
    # or set NPM_TOKEN in your .env file
  2. Environment Setup: Create a .env file in the root with your npm token:

    NPM_TOKEN=your_npm_token_here

Publishing Workflow

1. Create a Changeset

When you make changes that should be included in the next release, create a changeset:

# Create a new changeset (interactive)
pnpm changeset

This will:

  • Prompt you to select which packages to include
  • Ask for the type of change (major, minor, patch)
  • Request a summary of the changes

2. Version Packages

When you're ready to release, update package versions based on changesets:

# Process changesets and bump versions
pnpm version

This will:

  • Update package.json versions according to changesets
  • Update CHANGELOG.md files
  • Remove processed changeset files

3. Publish to npm

Publish the updated packages:

# Build, type-check, and publish to npm
pnpm publish

# Or test the publishing process first
pnpm publish:dry

This command:

  • Builds only the SDK package (--filter=vg-callpad-x07df)
  • Runs type checking to ensure code quality
  • Publishes to npm registry with proper authentication

Changeset Types

  • Patch (1.0.0 → 1.0.1): Bug fixes, small updates
  • Minor (1.0.0 → 1.1.0): New features, backward-compatible changes
  • Major (1.0.0 → 2.0.0): Breaking changes

Example Publishing Flow

# 1. Make your changes to the SDK
# 2. Create a changeset
pnpm changeset
# Select packages: vg-callpad-x07df
# Change type: patch/minor/major
# Summary: "Add new useCallQuality hook"

# 3. Commit your changes
git add .
git commit -m "feat: add useCallQuality hook"

# 4. When ready to release, process changesets
pnpm version

# 5. Publish to npm
pnpm publish

# 6. Push the version changes
git push && git push --tags

CI/CD Publishing

The Azure pipeline (.azure-pipelines/publish.yml) automatically publishes when:

  • Changes are pushed to the main branch
  • The NPM_TOKEN environment variable is configured in Azure DevOps

Remote Caching

[!TIP] Vercel Remote Cache is free for all plans. Get started today at vercel.com.

Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.

By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:

cd my-turborepo

# With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended)
turbo login

# Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager
npx turbo login
yarn exec turbo login
pnpm exec turbo login

This will authenticate the Turborepo CLI with your Vercel account.

Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo:

# With [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation) installed (recommended)
turbo link

# Without [global `turbo`](https://turborepo.com/docs/getting-started/installation#global-installation), use your package manager
npx turbo link
yarn exec turbo link
pnpm exec turbo link

Useful Links

Learn more about the power of Turborepo: