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-pure-ts

v1.0.0

Published

Professional TypeScript scaffolding CLI with Biome, Vitest, and Husky support

Readme

⚡️ create-pure-ts

npm version License: MIT TypeScript Biome

The ultimate production-ready TypeScript scaffolder.
Zero bloat. Pinned dependencies. Modern defaults.


🚀 Why pure-ts?

Most starter templates are either outdated, too complex, or permissive. pure-ts is opinionated and designed for long-term stability.

  • 🔒 Deterministic: All dependency versions are hard-pinned (no ^ or ~). The build that works today will work in 2027.
  • 🧠 Smart: Automatically detects the latest stable Node.js LTS and Bleeding Edge versions.
  • ⚡️ Fast: Supports Biome (Rust-based toolchain) for instant linting & formatting.
  • 🛡 Strict: tsconfig.json set to strictest settings (NodeNext modules, verbatimModuleSyntax, noEmitOnError).
  • 🛠 Flexible: Choose your stack: Biome vs ESLint, Vitest, Zod, Husky.

📦 Usage

You don't need to install anything globally. Just run:

Using pnpm (Recommended)

pnpm create pure-ts

Using npx

npx pure-ts

Using bun

bun create pure-ts

🛠 Features & Stack

When you run the CLI, you get a fully configured project with:

| Category | Technology | Why? | | :--- | :--- | :--- | | Runtime | Node.js | Auto-detects latest LTS and Current versions via API. | | Language | TypeScript 5.7+ | Configured with NodeNext for modern ESM support. | | Linter | Biome (Default) | 35x faster than ESLint. Handles formatting & linting. | | Alt. Linter | ESLint 9 | Flat Config (eslint.config.js) + Prettier support. | | Tests | Vitest (Optional) | Native ESM support, faster than Jest. | | Validation | Zod (Optional) | Runtime schema validation boilerplate included. | | Git Hooks | Husky (Optional) | Pre-configured lint-staged for clean commits. |


📂 Generated Structure

Your project will look clean and professional immediately:

my-app/
├── .vscode/               # Recommended extensions settings
├── src/
│   ├── index.ts           # Entry point with Env validation example
│   └── index.spec.ts      # (If Vitest selected)
├── .gitignore
├── biome.json             # (Or eslint.config.js)
├── package.json           # Clean scripts, pinned versions
├── tsconfig.json          # Production-ready strict config
└── README.md

⚙️ Philosophy

1. No "Caret" Ranges (^)

We strictly pin dependencies (e.g., "typescript": "5.7.3" instead of "^5.7.3"). Reason: Supply chain security and build reproducibility. We believe a CI/CD pipeline should never break because a sub-dependency released a patch update.

2. NodeNext Modules

We force moduleResolution: "NodeNext". Reason: The ecosystem has moved to ESM. This ensures your code works correctly with modern libraries and Top-Level Await.

3. Biome First

We prioritize Biome over ESLint. Reason: It reduces dev-dependencies by 50% and speeds up CI pipelines significantly.


🤝 Contributing

Issues and Pull Requests are welcome!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request