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

create-protobox

v1.0.1

Published

Create a new Protobox project - A React prototyping boilerplate with Vite, shadcn/ui, and Tailwind CSS

Downloads

7

Readme

create-protobox

Scaffold a new Protobox project with one command.

Protobox is a React prototyping boilerplate built with Vite, shadcn/ui (34 components), Tailwind CSS, React Router, and TypeScript. Perfect for rapid prototyping and experimentation.

Usage

Create a new Protobox project:

npm create protobox@latest my-app

Or with other package managers:

# pnpm
pnpm create protobox my-app

# yarn
yarn create protobox my-app

# bun
bunx create-protobox my-app

Then follow the prompts to set up your project:

cd my-app
pnpm install
pnpm dev

What's Included

Your new Protobox project comes with:

  • Vite - Lightning-fast build tooling and HMR
  • React 18 with TypeScript (strict mode)
  • React Router v6 - Pre-configured client-side routing
  • shadcn/ui - 34 pre-installed accessible components
  • Tailwind CSS - Utility-first styling with dark mode support
  • Framer Motion - Production-ready animations
  • React Icons & Lucide - Comprehensive icon libraries
  • Custom hooks - usePosition, useHotkeys, and more
  • @dnd-kit - Modern drag-and-drop functionality
  • @faker-js/faker - Mock data generation

Project Structure

my-app/
├── src/
│   ├── components/     # Custom components + shadcn/ui library
│   ├── pages/          # Route page components
│   ├── hooks/          # Custom React hooks
│   ├── lib/            # Utilities (cn function, etc.)
│   ├── styles/         # Global styles and easing curves
│   ├── App.tsx         # Router configuration
│   └── main.tsx        # Application entry point
├── public/             # Static assets
├── CLAUDE.md           # AI assistant instructions
└── package.json

Development Commands

pnpm dev      # Start dev server
pnpm build    # Build for production
pnpm preview  # Preview production build
pnpm lint     # Run ESLint
pnpm format   # Format with Prettier

Features

Component Library

34 shadcn/ui components ready to use: buttons, cards, dialogs, forms, navigation, data display, and more. Add more with:

npx shadcn-ui@latest add <component-name>

Dark Mode

Built-in dark mode support using Tailwind's class-based system:

<div className="bg-white dark:bg-zinc-900">
  Content
</div>

Custom Hooks

  • usePosition - Position elements relative to targets (tooltips, popovers)
  • useHotkeys - Keyboard shortcuts (from react-hotkeys-hook)
  • useToast - Toast notifications (shadcn)

Path Aliases

Clean imports with @/ alias:

import { cn } from '@/lib/utils'
import { Button } from '@/components/ui/button'

Learn More

Publishing (Maintainer Notes)

Prerequisites

  1. Ensure you have an npm account and are logged in:

    npm login
  2. Verify the package name is available:

    npm search create-protobox

Publishing Steps

  1. Update version in package.json (follow semver):

    npm version patch  # 1.0.0 -> 1.0.1
    npm version minor  # 1.0.0 -> 1.1.0
    npm version major  # 1.0.0 -> 2.0.0
  2. Publish to npm:

    npm publish
  3. Tag releases on GitHub:

    git tag v1.0.0
    git push origin v1.0.0

Testing Locally Before Publishing

  1. Link the package globally:

    cd create-protobox
    npm link
  2. Test in a different directory:

    cd ~/Desktop
    npm create protobox test-project
  3. Verify the generated project works:

    cd test-project
    pnpm install
    pnpm dev
  4. Unlink when done:

    npm unlink -g create-protobox

Automated Publishing with GitHub Actions

Create .github/workflows/publish.yml:

name: Publish to npm

on:
  release:
    types: [created]

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          registry-url: 'https://registry.npmjs.org'
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Updating the Template

When the Protobox template is updated:

  1. Users automatically get the latest template (giget pulls from GitHub)
  2. Only republish create-protobox if CLI logic changes
  3. Version the package to indicate CLI changes, not template changes

Notes

  • The package uses giget to download the template from github:toddmoy/protobox
  • No need to include template files in the npm package
  • Template is always fresh from the GitHub repository
  • Keep the package lightweight (only CLI logic)

License

MIT

Author

Todd Moy