ESLint is a mature, widely-used static analysis tool for JavaScript and TypeScript. It operates as both a CLI tool and a programmatic library, parsing source code into an AST and applying a configurable set of lint rules to detect and fix code quality, style, and correctness issues. The architecture is modular: a core linter (`lib/linter/linter.js`) orchestrates parsing (via espree or custom parsers), rule execution, and fix application; a configuration system (`lib/config/`) resolves flat config files; and a CLI engine (`lib/cli.js`) handles command-line invocation, file globbing, and result formatting. Key entry points include `bin/eslint.js` (CLI), `lib/api.js` (public API exposing `ESLint`, `Linter`, `RuleTester`, `SourceCode`), and `lib/universal.js` (browser-compatible Linter). Data flows: source files are read, parsed into ASTs, traversed by rule visitors, and lint messages are collected, filtered, and formatted. External dependencies include espree (parser), eslint-scope (scope analysis), eslint-visitor-keys, and various community utilities. The codebase is self-hosting, using its own rules and config for development, and includes extensive test suites, fuzzing tools, and ecosystem regression testing.
eslint-plugin-vue is an ESLint plugin specifically designed for linting Vue.js single-file components (SFCs). It provides over 100 rules covering template syntax, script setup, Options API, Composition API, and Vue-specific best practices. The architecture follows standard ESLint plugin patterns with rule implementations in lib/rules/, shareable configurations in lib/configs/ (both legacy and Flat Config formats), and a processor for handling .vue files. Key entry points include the main plugin export (lib/index.ts), the processor (lib/processor.ts), and utility modules (lib/utils/) that provide AST traversal helpers, scope analysis, and component introspection. The plugin relies on peer dependencies eslint and vue-eslint-parser, with optional TypeScript support via @typescript-eslint/parser. It demonstrates strong craftsmanship through well-tested rules, comprehensive documentation, and active maintenance for both Vue 2 and Vue 3 ecosystems.
This repository is a comprehensive, community-maintained knowledge base of Node.js best practices — not a runnable application or data pipeline. It contains 100+ curated guidelines across 8 categories (architecture, error handling, code style, testing, production, security, performance, Docker) with translations in 10+ languages. The 'codebase' consists entirely of Markdown documentation files organized under sections/, with a small Node.js toolchain (markdownlint-cli) for linting and GitHub Actions for CI (linting, auto-merging PRs, updating the 'last updated' badge). There are no runtime entry points, APIs, or data flows. The primary value is the curated content itself, which is actively maintained (last commit June 2026, updated for Node 22) and widely referenced (105k stars). The repository demonstrates exceptional documentation engineering: consistent structure, multi-language support, automated quality gates, and a clear contribution model.
Electron React Boilerplate is a foundation for building scalable desktop applications using Electron, React, TypeScript, and Webpack. It provides a complete architecture with separate main and renderer processes, secure IPC communication via contextBridge, automated build and packaging workflows, and follows Electron security best practices. The boilerplate includes development features like hot reloading and debugging tools, as well as production capabilities such as auto-updating, code signing, and notarization support.
This repository provides a collection of shared configurations and tools for web development at Shopify. It is structured as a monorepo containing multiple npm packages, including ESLint and Stylelint plugins with custom rules, Babel presets, TypeScript configurations, Prettier settings, and utilities for image optimization. The project enforces consistent coding standards across Shopify's web applications and is used in their build and development pipelines. The architecture is modular, with each package providing a specific tool or configuration that can be extended by consumers.
The mdx-js/eslint-mdx repository provides ESLint integration for MDX (Markdown with JSX) files. It consists of two main packages: `eslint-mdx`, which serves as an ESLint parser capable of converting MDX syntax into an ESTree Abstract Syntax Tree (AST) that ESLint can process, and `eslint-plugin-mdx`, which offers a plugin containing processors, configurations, and rules to enable linting of both JavaScript/JSX code and Markdown content within MDX files via remark-lint integration. The architecture centers around a parser that transforms MDX into an ESTree AST, preserving the structure of both Markdown and JSX elements. This parser employs a sophisticated token restoration mechanism (located in `tokens.ts`) to ensure that the token stream matches the original source code, which is essential for ESLint rules that rely on token-level analysis (such as semicolon or quoting rules). The plugin complements this by providing a processor that integrates with remark-lint to lint Markdown content, allowing users to apply Markdown-specific linting rules alongside standard JavaScript linting. Additionally, the plugin includes configurations for code block linting, enabling ESLint rules to be applied to code snippets embedded within Markdown fenced code blocks. The project demonstrates strong engineering practices, including strict type coverage enforcement, comprehensive testing with 100% coverage thresholds, and active maintenance with up-to-date dependencies. It supports modern ESLint versions (8, 9, and 10) and Node.js versions (>=18), ensuring compatibility with contemporary toolchains. The separation of concerns between the parser and plugin, along with the isolation of complex logic like token restoration into dedicated modules, contributes to a clean and maintainable codebase that is well-suited for reuse in similar tooling scenarios.
This repository is a pnpm monorepo for @stylistic/eslint-plugin, a community-maintained ESLint plugin that provides formatting and stylistic rules for JavaScript, TypeScript, JSX, and related syntaxes. It ports formatting rules that were deprecated or removed from ESLint core and typescript-eslint, giving users a drop-in path to continue enforcing style conventions. The main deliverable is an npm library consumed through ESLint flat config; there is no server, database, or runtime application. The plugin exposes roughly a hundred rules, each with typed options, autofix support, parser-specific test coverage, and generated metadata and type declarations.
This is an ESLint plugin (`eslint-plugin-functional`) that enforces functional programming patterns in JavaScript and TypeScript code. It provides 20 actively maintained rules targeting immutability, functional parameters, no classes, no exceptions, no statements, and other FP principles. The plugin deeply integrates with TypeScript's type system via `@typescript-eslint/utils` and libraries like `is-immutable-type` for type-aware immutability checks. It offers multiple configuration presets (strict, recommended, lite, etc.) and supports ESLint 9 and 10 flat configs. The codebase is well-structured with a consistent rule factory (`createRule`), shared utilities (type guards, option overrides), and an extensive test suite using snapshot testing. It is actively maintained with frequent releases, a comprehensive CI pipeline, and semantic versioning.
Fork TS Checker Webpack Plugin is a mature, production-grade webpack plugin that offloads TypeScript type checking to a separate process to avoid blocking the webpack build. The architecture is centered around a plugin class that integrates with webpack's compilation lifecycle via tapable hooks. On each compilation, it collects file changes and spawns two types of workers (via child_process RPC): one for computing TypeScript issues (syntactic, semantic, declaration, global diagnostics) and another for computing file dependencies. Workers use a controlled TypeScript system with an in-memory file system (memfs) for artifacts and a passive file system that delegates writes to memory for read-only modes. The plugin supports incremental watching, project references (solution builder), tracing, and various output modes (write-dts, write-tsbuildinfo, write-references). Configuration is flexible via cosmiconfig and validated with JSON schema. The codebase is well-structured with clear separation of concerns: hooks, formatters, issue filtering, RPC infrastructure, and file system abstractions. It includes extensive unit and end-to-end tests covering various TypeScript versions and webpack configurations. The plugin is actively maintained with a robust CI/CD pipeline and semantic release.
This repository implements the official VS Code ESLint extension, which integrates ESLint into the editor via the Language Server Protocol (LSP). The extension is structured as a client-server architecture: the client (`client/`) handles VS Code activation, settings, and UI interactions, while the server (`server/`) runs the actual ESLint validation, computes diagnostics, code actions, and formatting. The shared module (`$shared/`) defines protocol messages and settings types used by both sides. The system dynamically loads the ESLint library from the user's workspace and supports both legacy ESLintrc and modern flat config formats. It provides real-time linting on type or save, auto-fix on save, formatting, rule customization, bulk suppression, and workspace-level task integration. The codebase is well-engineered with clean abstractions for settings resolution, module loading, error handling, and diff computation. It includes standalone reusable components such as an LCS diff algorithm, a linked map with LRU cache, and path normalization utilities.
This repository is the `eslint-plugin-react` package, a widely-used ESLint plugin that provides over 100 lint rules for React and JSX codebases. It is not a standalone application but a library consumed by ESLint to enforce best practices, prevent common errors, and maintain code style in React projects. The plugin supports both legacy `.eslintrc` and modern flat config (`eslint.config.js`) formats, and works with multiple parsers including babel-eslint and TypeScript-ESLint. The architecture is modular: each rule is a self-contained module in `lib/rules/`, sharing common utilities from `lib/util/` for component detection, AST traversal, version checking, and error reporting. The codebase is well-tested with a comprehensive test suite that runs across parser versions and ESLint versions. It is actively maintained with frequent releases and community contributions.
Flowbite is a production-grade UI component library built on top of Tailwind CSS. It provides a comprehensive set of interactive, accessible components (modals, dropdowns, tooltips, carousels, datepickers, etc.) that are initialized via HTML data attributes and backed by a lightweight JavaScript runtime. The library is distributed as an npm package with multiple entry points (ESM, CJS, UMD, Turbo, Phoenix) and includes a Tailwind CSS plugin that injects base styles for forms, tooltips, charts, and third-party integrations. The repository also hosts an extensive Hugo-based documentation site with live examples, framework integration guides (React, Vue, Angular, Laravel, Django, etc.), and a theming system with five pre-built themes (default, minimal, enterprise, playful, mono). The architecture follows a consistent component pattern: each component is a class with `init()`, `destroy()`, and static `init*()` methods that scan the DOM for data attributes. A global `Instances` singleton manages all component instances by ID, supporting override and random ID generation. The library uses Popper.js for positioning dropdowns, tooltips, and popovers, and relies on an external `flowbite-datepicker` for datepicker functionality. The Tailwind plugin (`plugin.js`) uses `plugin.withOptions` to conditionally add base styles and component classes, and the CSS theming system leverages CSS custom properties for colors, fonts, radii, and shadows with dark mode support. While the library is well-structured and actively maintained, its large surface area (30+ components) and extensive documentation create maintenance overhead. The integration guides for 20+ frameworks are prone to drift, and the inline SVG icons and hardcoded Tailwind classes in documentation examples require careful version alignment. The codebase demonstrates solid engineering practices with TypeScript, Webpack builds, and consistent patterns, making it a reliable choice for projects needing a Tailwind CSS component library with JavaScript interactivity.
This repository is a curated 'awesome list' for ESLint, not a software application or data pipeline. Its core is a single, extensively organized README.md that catalogs ESLint configurations, plugins, parsers, formatters, globals, tools, tutorials, and setup resources. The only functional code is a package.json declaring the `awesome-lint` dev dependency and a GitHub Actions workflow that runs this linter against the README on every push and pull request to ensure list quality and formatting consistency. The architecture is intentionally static—no runtime services, APIs, or data processing exist. The repo's production value is purely informational: it serves as the de facto community reference for discovering and choosing ESLint-related tooling. It is actively maintained with recent commits, high visibility, and a clear contribution guide. Technical drift is limited to outdated CI details (e.g., actions/checkout@v3) and a broad dev-dependency range, but the content itself stays current with the ESLint ecosystem. While not a codebase in the traditional sense, the curation quality, categorization, and maintenance discipline are strong, making it a reliable resource for developers evaluating ESLint tools.
Eslint Watch is a command-line tool that wraps ESLint to add file watching capabilities. It provides a CLI interface that forwards most options to ESLint while adding its own options like --watch, --changed, and --clear. The architecture is modular, with separate modules for option parsing, command handling, ESLint interaction, and file watching. The tool uses chokidar for file system events and keypress for keyboard input to trigger manual re-lints. It demonstrates solid engineering practices with a clear separation of concerns and a reusable option merging pattern.
This repository provides a minimal, opinionated starter template for building React applications with Vite. It includes a pre-configured setup with TypeScript, Tailwind CSS v4, Biome for linting and formatting, Lefthook for git hooks, Turbo for task orchestration, and Renovate for automated dependency updates. The actual application code is trivial: a single-page app shell with lazy-loaded routes for an index page and a 404 page, wrapped in React Router's BrowserRouter. The template prioritizes modern tooling and developer experience but does not implement any business logic, custom components, or complex architecture. It is intended to be cloned and used as a starting point for new React projects, rather than as a standalone application.
kyt is a deprecated monorepo CLI toolkit from The New York Times for scaffolding and developing JavaScript web applications. It encapsulates build tooling (Webpack 4, Babel 7), linting (ESLint 7), testing (Jest 27), and provides starter templates for React apps with client-only, server-only, or universal (isomorphic) rendering. The core package provides three primary commands: `kyt dev` (hot-reloading dev server), `kyt build` (production builds), and `kyt setup` (project scaffolding). Architecture: monorepo with Lerna + Yarn Workspaces; the CLI entry is `packages/kyt-core/src/index.js`; configuration is centralized in `kyt.config.js`, and runtime support (dynamic imports, SSR resolution) is provided by `packages/kyt-runtime`. The tool is no longer maintained and uses dependencies that are significantly behind modern versions (Webpack 4, React 17, Jest 27, ESLint 7). Its value lies in its clean composition of presets, configs, and custom ESLint rules that can be extracted and reused independently.