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

@baxsm/kickstart-cli

v0.1.1

Published

Scaffold a full-stack project. Next, Express, or Expo with your choice of database, auth, and payments.

Readme

kickstart-cli

Scaffold a full-stack project in seconds, in your own conventions. Like create-next-app, but for a whole stack matrix.

npm TypeScript Runtime Tests

Pick a framework, database, auth, and payments. kickstart generates a project wired up the way you'd wire it yourself, installs dependencies, and inits git. One command, nothing to hand-wire. Interactive by default, fully scriptable, and extensible with your own stacks.

The stack matrix

Every option is first-class: built, and every valid combination generates a project that installs and builds. A test suite enumerates all 78 valid combinations and builds a covering subset for real.

| Category | Options | | --- | --- | | Framework | Next.js · React Native + Expo · Express-only API | | Output shape | single app · monorepo (Express backend + Next frontend) | | Database | Postgres + Drizzle · MongoDB + Prisma · none | | Auth | Better Auth · Clerk · none | | Payments | Stripe · Stripe Connect · Polar · none |

Expo is mobile-only (no local database, no monorepo). kickstart only offers valid options in the prompts and rejects impossible combinations with a clear message.

Quick start

Run it with npx, no install needed:

npx @baxsm/kickstart-cli                              # interactive prompts
npx @baxsm/kickstart-cli my-app --preset saas --yes   # from a preset
npx @baxsm/kickstart-cli my-app --preset full --dry-run   # preview, write nothing

Or install it globally to get the kickstart command:

npm install -g @baxsm/kickstart-cli
kickstart my-app --preset saas --yes

Presets

| Preset | Stack | | --- | --- | | full | Next.js monorepo · Drizzle · Better Auth · Stripe | | saas | Next.js single app · Drizzle · Better Auth · Stripe | | api | Express API · Drizzle · Better Auth | | minimal | Next.js single app, nothing else |

Run modes

Every prompt has a matching flag, so anything you do interactively you can script.

kickstart                                   # interactive prompts
kickstart my-app --framework next --db drizzle --auth better-auth --yes
kickstart --config kickstart.json           # read answers from a file
kickstart my-app --preset full --dry-run    # preview the file tree

Consistent output

Whatever you pick, the generated project follows one set of conventions: kebab-case file names, a @/* path alias, strict TypeScript with noUncheckedIndexedAccess, type-safe env with t3-env, Zod at boundaries, a small project logger, and Biome for lint and format. Backends use a 3-layer structure (routes, controllers, services). The monorepo frontend talks to the backend through a type-safe fetcher.

Extend it with your own stacks

Stacks are fragments: a folder of template files plus a fragment.json manifest declaring dependencies, env keys, compatibility, and a set of declarative patch operations. Drop a fragment in your config dir and kickstart discovers it. User fragments can override the bundled ones, so you can customize an existing stack to your taste.

The manifest is sandboxed. Third-party fragments use only a fixed set of declarative operations (merge package.json, append env, insert at an anchor, merge a schema, replace a token). No arbitrary code runs; path traversal and malformed manifests are rejected at load time.

See TEMPLATES.md for the authoring guide.

How it's tested

  • Unit tests for the composition engine, config funnel, and every patch operation.
  • Snapshot tests for generated file trees.
  • A matrix test that generates all 78 valid configurations in memory with no errors.
  • An integration suite that scaffolds 24 representative projects, installs them, and builds them for real (Next.js next build, Express and Expo typecheck, monorepo builds both sub-apps).
  • CLI end-to-end tests that spawn the real binary and check every error path.
bun test              # unit + snapshot + matrix (fast)
KS_BUILD=1 bun test   # + real install-and-build across the matrix (slow)

Built with

TypeScript · Bun · @clack/prompts · Zod · Biome

Contributing

Clone the repo and run it from source:

bun install
bun run start          # interactive prompts
bun test               # unit + snapshot + matrix (fast)

Status

Published on npm as @baxsm/kickstart-cli. Runs on Node 18+ (also works under Bun).