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

@octavius2929-personal/scaffold-generator

v0.11.0

Published

Opinionated project scaffolder CLI (React, TypeScript library, React component library, NestJS API)

Readme

@octavius2929-personal/scaffold-generator

Opinionated project scaffolder CLI. Generate production-shaped projects (React, Expo, TypeScript libraries, React component libraries, NestJS APIs) with DDD / hexagonal architecture baked in.

npm version npm downloads node license

🇪🇸 Versión en español

Quickstart

npx @octavius2929-personal/scaffold-generator

The CLI walks you through picking a template and answering a few prompts, then writes a ready-to-run project.

Templates

| Template | What you get | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | react | React SPA + Vite + TypeScript with DDD/hexagonal. Optional Tailwind, optional routing, optional bounded contexts. | | expo | Expo app + Expo Router + TypeScript with DDD/hexagonal. Development build via expo-dev-client, StyleSheet + tokens, AsyncStorage, jest-expo. Optional bounded contexts, optional i18n, Context or Zustand. | | library | TypeScript library with DDD/hexagonal, tsup (ESM + CJS), Vitest, Biome. | | react-library | React component library with styles in TS (vanilla-extract) and a theming system. | | nestjs | NestJS API + TypeScript, modular monolith with hexagonal per module: selectable persistence (in-memory · prisma-postgres · typeorm-postgres · typeorm-sqlite), JWT auth + RBAC, validation, RFC 7807 errors, Pino, Prometheus, health, Swagger, throttler, Docker, Vitest. |

Every template can optionally include a Claude Code setup (.claude/ + CLAUDE.md).

Why this?

  • Real architecture, not a hello-world. Every template ships with DDD / hexagonal structure (domain, application, infrastructure, presentation) wired correctly — not a flat src/ you have to reorganize later.
  • One coherent toolchain across stacks. Web, mobile, libraries, and APIs follow the same conventions (TypeScript strict, Biome, Vitest, conventional commits, CI/CD), so switching stacks doesn't mean relearning the setup.
  • Opinionated but optional. Prompts let you toggle the heavy pieces (bounded contexts, i18n, routing, persistence driver) so you only pay for what you use.
  • Non-interactive by design. Every prompt is reachable via flags, so the same generator works in your terminal and in CI.

Requirements

  • Node.js >= 22

Flags

| Flag | Default | Description | | --------------------- | -------- | ------------------------------------------------------- | | --template <id> | (prompt) | Skip template selection | | --target <dir> | cwd | Base directory where the project is created | | --yes / -y | off | Non-interactive mode: use defaults for anything missing | | --set <key>=<value> | — | (repeatable) answer for a prompt; requires --yes |

Non-interactive mode

# discover templates and their prompts (JSON)
npx @octavius2929-personal/scaffold-generator list --json

# generate without prompts (react)
npx @octavius2929-personal/scaffold-generator \
  --template react --target . --yes \
  --set projectName=my-app --set tailwind=true --set router=none \
  --set boundedContexts=false --set claudeSetup=true

# generate a NestJS API with Postgres + TypeORM
npx @octavius2929-personal/scaffold-generator \
  --template nestjs --target . --yes \
  --set projectName=my-api --set database=typeorm-postgres --set claudeSetup=true

# generate an Expo app (Expo Router + DDD) with i18n and Zustand
npx @octavius2929-personal/scaffold-generator \
  --template expo --target . --yes \
  --set projectName=my-app --set boundedContexts=false \
  --set i18n=true --set zustand=true --set claudeSetup=true

Architecture

DDD + Hexagonal (ports & adapters). See docs/superpowers/specs/2026-05-11-scaffold-generator-design.md.

Adding a template

  1. Create src/templates/<id>/template.json following the Zod schema in src/infrastructure/repositories/template-manifest.schema.ts.
  2. Create src/templates/<id>/files/ with the project content. Use {{key}} for placeholders.
  3. You don't touch anything else — the engine discovers it automatically.

See CONTRIBUTING.md for the full workflow.

License

MIT © Justin