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 🙏

© 2024 – Pkg Stats / Ryan Hefner

anvy

v0.0.23

Published

Use one tool to add your shadcn-ui, aceternity-ui components. Extend and add your own component registry.

Downloads

487

Readme

shadxn

Getting Started

shadxn is an experimental CLI tool that builds upon the foundation of the shadcn-ui CLI. It is designed to enhance your development workflow by allowing the integration of components and dependencies into your project. This tool introduces the flexibility of selecting component registries, enabling developers to add custom registries for personalized or public sharing of components. We extend our deepest gratitude to the shadcn-ui project and its contributors for their foundational work that made shadxn possible.

Acknowledgment

This project builds on top of the original Shadcn UI CLI. We are deeply grateful to Shadcn and all contributors to the Shadcn UI project for their pioneering work and for laying the groundwork that shadxn now builds upon.

Features

  • Custom Registry Support: Initialize and manage custom registries to declare your own components.
  • Enhanced add Command: Add components from a selected registry, allowing for greater flexibility and customization.
  • Project Initialization: Initialize your project with default registries in components.js, preparing it for immediate development.
  • Compatibility: Extendable to various frameworks and libraries, shadxn is designed to fit into any development ecosystem.

Installation

shadxn can be installed using various package managers or run directly with npx for immediate usage without global installation. Choose the method that best fits your workflow:

Using npm

npm install -g shadxn

This command installs shadxn globally on your machine, making it accessible from anywhere in your terminal.

Using Yarn

yarn global add shadxn

Yarn users can also install shadxn globally, ensuring it's available from any terminal session.

Using pnpm

pnpm add -g shadxn

For those preferring pnpm for its efficient handling of node modules, this command will globally install shadxn.

Using Bun

bun add -g shadxn

If you're using Bun, a modern JavaScript runtime, this command will globally install shadxn on your system.

Using npx (No Installation Required)

For a quick, one-time use, you can run shadxn directly with npx without needing to install it globally:

npx shadxn [command]

This method is particularly useful for running the latest version of shadxn without affecting your global package setup.

Usage

Usage: shadxn [options] [command]

Options:
  -v, --version                  display the version number
  -h, --help                     display help for command

Commands:
  init [options]                 initialize your project and install dependencies, adds default registries
  add [options] [components...]  add components to your project from selected registries
  diff [options] [component]     check for component updates against the registry
  registry <action> [project]    manage the project's component registry
  help [command]                 display help for command

Commands in Detail

  • init: Sets up your project with essential dependencies and a default registry in components.js for components management.
  • add: Enhances the original add command to allow selection of a registry for component retrieval, streamlining the addition of components to your project.
  • registry: A new command to initialize and manage custom registries, supporting actions like init for registry setup and build for registry deployment.

Examples

# Initialize your project
npx shadxn init

# Add a component from a shadcn registry
npx shadxn add button

# Or create and use your custom registry
# 1. Create your custom registry
npx shadxn registry init
# Start adding your custom components and declare them within the registry/registry.tsx file
# 2. Build your custom registry
npx shadxn registry build

# 3. Run your local registry or deploy to Vercel
pnpm run dev

# 4. Activate your custom registry
npx shadxn registry activate my-registry

# 5. Add a component from your custom registry
npx shadxn add your-component -r my-registry

Documentation

For more detailed information and documentation, visit https://ui.shadcn.com/docs/cli.

License

shadxn is licensed under the MIT license.

Objective and Current State

The main objectives of shadxn are to:

  • Allow the addition of custom registries for tailored component management.
  • Provide an unopinionated tool that integrates into any workflow without restriction.
  • Enable the creation of custom registries for either internal use or public sharing.
  • Extend its utility across different frameworks and libraries, promoting versatility in development environments.

As an experimental project, shadxn is in active development, and contributions, feedback, and suggestions are welcome to enhance its capabilities and reach.