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

personal-style-guide

v0.6.0

Published

A shared configuration for ESLint, Prettier, and Stylelint to ensure consistent and clean code across your projects.

Readme

SemVer Status Build Status

💡 Motivation

Consistency in code style is key to maintaining scalable and maintainable projects. While many tools like ESLint, Prettier, and Stylelint exist, configuring them repeatedly across projects can be tedious and error-prone. This package centralizes the configuration for these tools, saving time and ensuring a unified development experience across all Didor projects.

This style guide also promotes best practices.

🚀Getting Started

Prerequisites

ESLint, Prettier, Stylelint, Typescript are a peer dependency, so you need to install at the root of your project:

npm install --save-dev eslint prettier stylelint typescript

Installation

To install the package, run:

npm install --save-dev personal-style-guide

ESLint

Plugins Integrated

How to Use

You need to extend one or both of the following configurations.

  • personal-style-guide/eslint/browser for browser projects.
  • personal-style-guide/eslint/node for Node projects.

Create or update eslint.config.js in your project root and extend the configurations you need:

import eslintNode from "personal-style-guide/eslint/node";

export default [...eslintNode];

Prettier

How to Use

To use the shared Prettier config, create or update .prettierrc.config.js in your project root:

export { default } from "personal-style-guide/prettier/index.js";

If you need to extend the configuration, you can do so:

import prettierConfig from "personal-style-guide/prettier/index.js";

export default {
  ...prettierConfig,
  ...
};

Why We Don't Use Prettier with ESLint or Stylelint

To improve IDE performance and avoid redundant processing, we separate the responsibilities of Prettier and linters (ESLint/Stylelint):

  • ESLint and Stylelint: Focus only on code validation and enforcing rules.
  • Prettier: Handles code formatting exclusively.

By not integrating Prettier directly into ESLint or Stylelint:

  1. Faster IDE Performance: Linters don’t need to process formatting errors, reducing overhead.
  2. Avoid Duplicated Tasks: Prevent running the file through both a linter and Prettier simultaneously.

Stylelint

Plugins Integrated

How to Use

Create or update stylelint.config.js in your project root:

module.exports = {
  extends: ["personal-style-guide/stylelint"],
};

TypeScript

How to Use

This style guide provides multiple TypeScript configs. These configurations are based on the environment you are working on, so you need to extend one of the following configurations:

  • personal-style-guide/typescript/node.
  • personal-style-guide/typescript/browser.

Ensure you have a tsconfig.json in your project root. You can extend the provided configuration if necessary:

{
  "extends": "personal-style-guide/typescript/node"
}

Markdown

⚠️ Note: This configuration is designed for markdownlint. Install the Markdownlint extension in your editor (e.g., VS Code) for optimal use.

How to Use

To lint Markdown files, extend the provided configuration by creating or updating a .markdownlint.json file in your project root:

{
  "extends": "personal-style-guide/markdown"
}


## 📑 Scripts

Add the following scripts to your `package.json` to lint and format your code:

```json
{
  "scripts": {
    "lint:js": "eslint 'src/**/*.{js,ts,vue}'",
    "lint:css": "stylelint 'src/**/*.{scss,css}'",
    "format": "prettier --write 'src/**/*.{js,ts,vue,scss,css}'"
  }
}

🔄 Updating

To check for outdated dependencies, run:

npx npm-check-updates

This lists all outdated dependencies. It's important to read the release notes for each dependency to understand the changes.

Update dependencies running the interactive mode. It's recommended to update them one by one to avoid breaking changes.:

npx npm-check-updates --interactive

🗺️ Roadmap

  • [ ] Add configurations for testing frameworks (e.g., Jest, Vitest).
  • [ ] Add configurations for Vue and Nuxt projects.
  • [ ] Improve the ESLint configuration to group by file type.
  • [ ] Add @eslint/json and @eslint/markdown configurations to the ESLint setup.

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/my-feature).
  3. Make your changes and write tests.
  4. Commit your changes using a conventional commit message.
  5. Push your branch and open a Pull Request.

📜 License

This template is licensed under the MIT License, which allows you to use, modify, and distribute the code freely, as long as the original license is included.

For more details, see the LICENSE file included in this repository.

🌟 Star Support

Your ⭐️ helps others discover this template and motivates continued development and improvements.

Special thanks to the open-source community for inspiring and supporting this template.