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

v0.1.0

Published

Pragmatic React/Next.js starter generator with curated, production-grade templates

Readme

create-stackit

Pragmatic React / Next.js starter generator. Answer a few questions and get a production-ready project with your exact stack — no manual wiring required.

Quick start

npm create stackit@latest
# or
npx create-stackit
# or pass a project name directly
npx create-stackit my-app

The CLI walks you through every choice interactively.


What gets generated

Each project is assembled from one of 16 curated templates covering every combination of the four axes below, then enriched by whichever add-ons you select.

| Axis | Options | |---|---| | Framework | Vite + React · Next.js | | Language | TypeScript · JavaScript | | State | Zustand · Redux Toolkit | | UI | shadcn/ui + Tailwind · Material UI |

Folder structure

| Style | Layout | |---|---| | Modular (default) | src/features/<name>/ — self-contained feature modules | | Atomic | src/components/atoms / molecules / organisms / templates |

Add-ons (toggle at prompt time)

| Add-on | What it injects | |---|---| | TanStack Query | QueryClient, useApiQuery, useApiMutation hooks | | Axios | Pre-configured api client with auth + error interceptors | | react-hook-form + zod | Form library wired with a zod resolver | | react-hot-toast | <AppToaster> component + API-error event bridge | | Vitest + RTL | Test scripts, jsdom environment, @testing-library deps | | ESLint + Prettier | Lint/format scripts, eslint-config-prettier | | Custom hooks | useDebounce, useThrottle, useToggle, usePrevious | | Auth boilerplate | Scaffold for JWT + refresh token flow |


CLI flags

Every prompt can be pre-answered with a flag — the CLI skips those questions and goes straight to the rest.

Usage: create-stackit [project-name] [options]

Arguments:
  project-name              name of the project directory

Options:
  -f, --framework <fw>      vite | next
  -l, --language <lang>     ts | js
  -s, --state <state>       zustand | redux
  -u, --ui <ui>             shadcn | mui
  --structure <s>           atomic | modular
  --pm <pm>                 npm | pnpm | yarn  (auto-detected if omitted)
  --skip-install            skip dependency installation
  --skip-git                skip git initialization
  -V, --version             output the version number
  -h, --help                display help

Examples

# Fully interactive
npx create-stackit

# Pre-fill name + framework, answer the rest interactively
npx create-stackit my-app --framework vite

# Fully non-interactive (no prompts at all)
npx create-stackit my-app \
  --framework next \
  --language ts \
  --state redux \
  --ui shadcn \
  --structure modular \
  --pm pnpm

# Skip heavy steps during development
npx create-stackit my-app --skip-install --skip-git

Package manager support

create-stackit detects whichever package manager you are already using (by checking lock files in the current directory) and uses it automatically. Pass --pm to override.

| Flag | Installs with | Runs scripts with | |---|---|---| | npm | npm install | npm run dev | | pnpm | pnpm install | pnpm dev | | yarn | yarn | yarn dev |


After generation

cd my-app

If you passed --skip-install, install dependencies first:

npm install      # npm
pnpm install     # pnpm
yarn             # yarn

Start the dev server:

npm run dev   # npm
pnpm dev      # pnpm
yarn dev      # yarn

Build for production:

npm run build   # npm
pnpm build      # pnpm
yarn build      # yarn

For Next.js projects — serve the production build:

npm run start   # npm
pnpm start      # pnpm
yarn start      # yarn

Requirements

  • Node.js >=18.18.0 (LTS 20.x recommended)
  • Git — optional, only needed when "Initialize a git repository?" is accepted

Template matrix

All 16 template keys follow the pattern {framework}-{lang}-{state}-{ui}:

vite-ts-zustand-shadcn    vite-ts-zustand-mui
vite-ts-redux-shadcn      vite-ts-redux-mui
vite-js-zustand-shadcn    vite-js-zustand-mui
vite-js-redux-shadcn      vite-js-redux-mui

next-ts-zustand-shadcn    next-ts-zustand-mui
next-ts-redux-shadcn      next-ts-redux-mui
next-js-zustand-shadcn    next-js-zustand-mui
next-js-redux-shadcn      next-js-redux-mui

Contributing

  1. Fork and clone the repo.
  2. npm install
  3. npm run test:local — scaffold a project into ./test-app and verify it.
  4. To add a new template, create templates/<key>/ and add the key to SUPPORTED_COMBOS in src/choices.js.

License

MIT