Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESLint
  3. PutOut

PutOut

MITJavaScriptv42.4.6

A pluggable JavaScript linter and code transformer with built-in support for JS, TS, JSX, Markdown, YAML, TOML, JSON, and more.

Visit WebsiteGitHubGitHub
786 stars44 forks0 contributors

What is PutOut?

Putout is a pluggable JavaScript linter and code transformer that acts as a drop-in replacement for ESLint. It not only identifies code issues but also performs automated transformations to fix them, supporting a wide range of file types including JavaScript, TypeScript, JSX, Markdown, YAML, TOML, and JSON. It solves the problem of maintaining code quality through declarative, automated refactoring.

Target Audience

JavaScript and TypeScript developers looking to automate code quality improvements, enforce best practices, and modernize codebases across multiple file formats. It's especially useful for teams managing large codebases who need consistent, automated refactoring.

Value Proposition

Developers choose Putout over alternatives because it combines linting with powerful, automated code transformations. Unlike ESLint, it can make more drastic changes to code, such as converting CommonJS to ESM or fixing reference errors, all through a simple, plugin-based architecture.

Overview

🐊 Pluggable and configurable JavaScript Linter, code transformer and formatter with superpowers 💪: built-in support of js, jsx, ts, markdown, yaml, toml, json and ignore. Write declarative codemods in a simplest possible way 😏

Use Cases

Best For

  • Automated refactoring of large JavaScript/TypeScript codebases
  • Converting CommonJS modules to ES modules
  • Enforcing consistent code style across multiple file types (JS, TS, Markdown, YAML, etc.)
  • Writing declarative codemods for custom code transformations
  • Fixing syntax errors and code smells automatically
  • Integrating as a drop-in replacement for ESLint with enhanced transformation capabilities

Not Ideal For

  • Projects requiring only stylistic linting without automated code changes
  • Teams heavily invested in ESLint's vast plugin ecosystem without Putout equivalents
  • Environments with strict change control policies that prohibit automated refactoring
  • Developers unfamiliar with abstract syntax trees who need simple rule configuration

Pros & Cons

Pros

Multi-Format Support

Putout lints and transforms JavaScript, TypeScript, JSX, Markdown, YAML, TOML, JSON, and ignore files, as highlighted in the Key Features, making it versatile for diverse codebases.

Declarative Codemods

Transformations are written with minimal code, such as the 5-line remove-debugger plugin example, simplifying custom rule creation compared to competitors.

ESLint Drop-in Replacement

It supports ESLint configuration files (.eslintrc.json, eslint.config.js) for seamless integration, acting as a direct substitute with enhanced capabilities.

Built-in Advanced Transformations

Includes rules like converting CommonJS to ESM, removing unused variables, and fixing syntax errors, automating refactors that ESLint avoids due to runtime behavior concerns.

Cons

Risk of Over-Transformation

Putout makes drastic code changes that could introduce bugs if not reviewed, as the README admits by recommending committing code before using --fix and cautioning about trust issues.

Complex Plugin Development

Creating custom plugins requires understanding of abstract syntax trees and Putout's operator system, which is more involved than writing ESLint rules, limiting accessibility for beginners.

Limited External Ecosystem

While Putout has many built-in plugins, its external plugin community is smaller than ESLint's, reducing the availability of community-driven extensions for niche use cases.

Open Source Alternative To

PutOut is an open-source alternative to the following products:

ESLint
ESLint

ESLint is a static code analysis tool for identifying problematic patterns in JavaScript code, helping maintain code quality and consistency.

Frequently Asked Questions

Quick Stats

Stars786
Forks44
Contributors0
Open Issues0
Last commit1 day ago
CreatedSince 2018

Tags

#hacktoberfest#linter#codemod#plugin#codemods#transform#nodejs#typescript#code-quality#eslint-alternative#javascript#eslint#ast#static-analysis#jsx#babel

Built With

B
Babel
L
Lerna
N
Node.js

Links & Resources

Website

Included in

ESLint4.7k
Auto-fetched 7 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub