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 🙏

© 2025 – Pkg Stats / Ryan Hefner

launchts

v1.0.5

Published

Fast, interactive CLI to scaffold TypeScript projects

Readme

launchts

npm version npm downloads License: MIT CI

Fast, interactive CLI to scaffold production-ready TypeScript projects.

Inspired by Vite's developer experience, launchts gets you from zero to coding in seconds with optional tooling, sensible defaults, and zero configuration.


Quick Start

# Interactive mode (recommended)
npx launchts my-app

# Skip all prompts with sensible defaults
npx launchts my-app --default

# Enable everything instantly
npx launchts my-app --yes

That's it! Your TypeScript project is ready. Run cd my-app && npm run dev to start coding.


Features

  • Zero Config — Start coding immediately with TypeScript configured
  • Interactive Prompts — Choose what you need (ESLint, Prettier, Husky, nodemon)
  • Smart Detection — Auto-detects your package manager (npm/yarn/pnpm)
  • Optional Tooling — Add linting, formatting, and git hooks on demand
  • Git Ready — Optional git initialization with first commit
  • Battle Tested — Comprehensive test suite with 39 passing tests

Usage

Interactive Mode

Simply run the command and answer the prompts:

npx launchts my-project

You'll be asked about:

  • ESLint — TypeScript linting with recommended rules
  • Prettier — Code formatting with opinionated defaults
  • Husky — Pre-commit hooks with lint-staged
  • nodemon — Auto-reload dev script with ts-node
  • Git — Initialize repository with .gitignore
  • Install — Run npm install automatically

Quick Modes

Use sensible defaults (Prettier only, git + install):

npx launchts my-app --default
# or
npx launchts my-app -d

Enable everything (all tools: ESLint + Prettier + Husky + nodemon + git + install):

npx launchts my-app --yes
# or
npx launchts my-app -y

Custom Configuration

Mix and match options for your perfect setup:

# Minimal: just TypeScript
npx launchts my-app --no-git --no-install

# Linting only
npx launchts my-app --eslint --prettier

# Full stack with specific package manager
npx launchts my-app --eslint --prettier --husky --nodemon --pm pnpm

# Git without initial commit
npx launchts my-app --git --no-commit

CLI Options

Flags

| Flag | Alias | Description | Default | | -------------- | ----- | -------------------------------------------------------------------- | ----------- | | --yes | -y | Enable all tools (ESLint + Prettier + Husky + nodemon), skip prompts | false | | --default | -d | Use sensible defaults (Prettier only), skip prompts | false | | --eslint | | Add ESLint with TypeScript config | interactive | | --prettier | | Add Prettier code formatter | interactive | | --husky | | Add Husky pre-commit hooks | interactive | | --nodemon | | Add nodemon dev script | interactive | | --git | | Initialize git repository | true* | | --no-git | | Skip git initialization | | | --install | | Install dependencies | true* | | --no-install | | Skip dependency installation | | | --no-commit | | Skip initial git commit (when git enabled) | false | | --pm <name> | | Package manager: npm, yarn, or pnpm | auto-detect | | --verbose | | Show detailed command output | false |

* In interactive mode, you'll be asked. In non-interactive mode (--yes/--default), defaults to true.

Package Manager

The CLI auto-detects your package manager based on:

  1. The npm_config_user_agent environment variable
  2. Lockfiles in the current directory (pnpm-lock.yaml, yarn.lock, package-lock.json)
  3. Falls back to npm

Override detection:

npx launchts my-app --pm yarn
npx launchts my-app --pm pnpm

What You Get

Base Project Structure

Every project includes:

my-app/
├── src/
│   └── index.ts          # Entry point with "Hello TypeScript"
├── package.json          # With scripts and metadata
├── tsconfig.json         # Sensible TypeScript config (ESNext, strict)
└── .gitignore            # (if --git) Ignores node_modules, dist, .env

Scripts included:

  • npm run build — Compile TypeScript to dist/
  • npm start — Run compiled code from dist/index.js

With ESLint (--eslint)

Adds TypeScript linting with best practices:

my-app/
├── eslint.config.js      # Modern flat config with TypeScript support
└── package.json          # + eslint dependencies

Additional scripts:

  • npm run lint — Check for linting errors

Packages:

  • eslint
  • @eslint/js
  • typescript-eslint (unified package)
  • globals
  • eslint-config-prettier (if Prettier also enabled)

With Prettier (--prettier)

Adds code formatting with opinionated defaults:

my-app/
├── .prettierrc           # Config: semi, singleQuote, trailingComma
└── package.json          # + prettier dependency

Additional scripts:

  • npm run format — Format all files

Configuration:

{
  "semi": true,
  "singleQuote": true,
  "trailingComma": "all",
  "printWidth": 80
}

With Husky (--husky)

Adds Git hooks for quality control:

my-app/
├── .husky/
│   └── pre-commit        # Runs lint-staged before commits
└── package.json          # + husky, lint-staged config

Additional scripts:

  • npm run prepare — Install Git hooks

Behavior:

  • Automatically runs eslint --fix and prettier --write on staged .ts files
  • Formats staged .json files with Prettier

With nodemon (--nodemon)

Adds development auto-reload:

Additional scripts:

  • npm run dev — Watch src/ and auto-restart on changes

Packages:

  • nodemon
  • ts-node

Requirements

  • Node.js 18.0.0 or higher
  • npm 7+ (or yarn 1.22+, pnpm 7+)

Examples

Minimal TypeScript Project

npx launchts my-app --no-git --no-install
cd my-app
npm install
npm run build
npm start

Full Stack with Code Quality

npx launchts my-api --eslint --prettier --husky --nodemon
cd my-api
npm run dev  # Start coding with auto-reload

Quick Prototype

npx launchts prototype -y
cd prototype
npm run dev

Monorepo Package

cd my-monorepo/packages
npx launchts new-package --no-git --pm pnpm

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.


License

MIT © Jonas


Issues & Support


Made with ❤️ for the TypeScript community