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-vvv

v1.1.3

Published

Scaffold a Vercel + Vite + Vue 3 project

Readme

create-vvv

Vue.js Vite Vercel Tailwind CSS

Scaffold a modern Vue 3 project with Vite, Tailwind CSS v4, Pinia, and Vercel serverless API routes — in one command. No bash required, works on any platform.

Usage

npm create vvv@latest my-project
# or with a name prompt
npm create vvv@latest

You'll be walked through:

  1. Project name (or pass it as an argument)
  2. Vue Router — optional multi-page support
  3. DaisyUI — optional component library (Tailwind v4-compatible)
  4. Git init — initializes a repo with an initial commit

Non-interactive flags

npm create vvv@latest my-app --yes           # accept all defaults
npm create vvv@latest my-app --router        # pre-select Vue Router
npm create vvv@latest my-app --daisyui       # pre-select DaisyUI
npm create vvv@latest my-app --no-git        # skip git init
npm create vvv@latest my-app --skip-install  # skip npm install

Flags compose freely: --yes --router scaffolds with router and accepts defaults for everything else.

What you get

my-project/
├── api/
│   └── hello.js          # Example Vercel serverless function
├── public/
│   ├── favicon.svg
│   └── robots.txt
├── src/
│   ├── components/        # Your components go here
│   ├── composables/       # Your composables go here
│   ├── App.vue            # Root component
│   ├── App.test.js        # Example Vitest test
│   ├── main.js            # App entry (Vue + Pinia + @unhead/vue)
│   └── style.css          # @import "tailwindcss"
├── .env                   # Local env vars (gitignored)
├── .env.example           # Env var reference (committed)
├── .gitignore
├── eslint.config.js       # ESLint v9 flat config
├── index.html
├── package.json
├── vercel.json
└── vite.config.js         # Vite + @tailwindcss/vite + @ alias + vitest

With Vue Router selected, src/router.js and src/pages/ are added.

Local dev vs Vercel dev

npm run dev starts the Vite dev server with hot-module replacement. Use this for all local development.

⚠️ Note: vercel dev currently has compatibility issues with Vite 6 and will throw errors. API routes should be tested after deploying to Vercel, or by creating a separate local development server.

| Command | UI | API routes | Status | |---|---|---|---| | npm run dev | ✅ Yes | ❌ No | Recommended | | vercel dev | ⚠️ Issues | ⚠️ Issues | Not compatible with Vite 6 |

Stack

| Layer | Tech | |---|---| | Framework | Vue 3 + Composition API | | Build | Vite 6 | | Styling | Tailwind CSS v4 via @tailwindcss/vite | | State | Pinia | | Head / SEO | @unhead/vue | | API routes | Vercel serverless functions | | Linting | ESLint v9 flat config + eslint-plugin-vue | | Formatting | Prettier (config in package.json) | | Git hooks | Husky v9 (pre-commit: Prettier + stage changed files) | | Testing | Vitest + @vue/test-utils |

Environment variables

VITE_PUBLIC_MESSAGE=Hello from the frontend   # exposed to browser
VITE_API_BASE=/api                             # API base path
PRIVATE_BACKEND_SECRET=replace-this-secret    # server-only

Commands (in generated project)

npm run dev          # Vite dev server
npm run build        # Production build
npm run preview      # Preview production build
npm test             # Vitest
npm run lint         # ESLint
npm run format       # Prettier

Deploying to Vercel

Option 1: Vercel CLI (recommended)

# First time - link your project
vercel

# Deploy to production
vercel --prod

Option 2: GitHub Integration (automatic)

  1. Push your code to GitHub
  2. Import your repo at vercel.com/new
  3. Vercel auto-detects Vite and deploys
  4. Every push to main auto-deploys

Your API routes in api/ are automatically deployed as serverless functions. The vercel.json config handles routing.

Publishing (for package maintainers)

# Dry run — check what gets included
npm pack --dry-run

# Publish
npm publish --access public

Author

Peter Benoit

License

MIT