Comparison

ESLint vs PHPStan

On the evidence we track, ESLint leads this comparison with a composite score of 76/100. Scores are only directly comparable because these tools share a category; the full breakdown and every source is below.

Machine formatsMarkdownJSONGraphQLMarkdown is open. JSON and GraphQL need a free key.
★ESLint76
PHPStan58
Score
vioscaleAI score
ESLint76 / 100high · 78%
PHPStan58 / 100medium · 54%
Pricing
Free tier
ESLint✓
PHPStan✓
Model
PHPStanfreemium
Price level
ESLintfree
PHPStanlow
Starting price
ESLint–
PHPStan€7
Transparent
ESLint–
PHPStan✓
Integrations
Count
ESLint2
PHPStan3
Adoption
Dependent repos
ESLint1,569,244
PHPStan2
Github stars
ESLint27,559
PHPStan14,128
Package downloads weekly
PHPStan–
Activity
Commits last 30d
ESLint44
PHPStan100
Release
Cadence days
ESLint13
PHPStan3
History
ESLint20 items
PHPStan20 items
License
Spdx
ESLintMIT
PHPStanMIT
Language
Primary
PHPStanPHP
Market
Availability
Content
Faq
ESLint5 items
PHPStan8 items

Capabilities

Feature-by-feature on the axes that matter for code quality tools. “-” means undocumented, not absent.

Core
Function
ESLintLinter + formatter
PHPStanStatic analyzer
Language scope
ESLintSingle-language
PHPStanSingle-language
Implementation language
ESLintJavaScript
PHPStanPHP
Capability
Autofix
ESLint✓
PHPStan✗
Config
Config model
ESLintConfig file
PHPStanConfig file
Extensibility
Custom rules
ESLint✓
PHPStan✓
Deployment
Deployment
ESLintCLI-local
PHPStanBoth
Delivery
Editor integration
ESLint✓
PHPStan✓
CI / VCS gating
ESLint✓
PHPStan✓
Insight
Code metrics
ESLint-
PHPStan-
Performance
Incremental / monorepo aware
ESLint-
PHPStan✓
Licensing
Open-source
ESLintOSS
PHPStanOSS
Commercial
Pricing model
ESLintFree
PHPStanFree

What each one is

The product in its own terms, so the numbers below have context.

ESLint

Leader

Open-source linter that uses abstract syntax tree analysis to detect JavaScript code issues and apply syntax-aware fixes, with extensive customization through custom rules and parsers.

Independently observed

PHPStan

PHPStan analyzes PHP code to detect bugs and errors before execution. It enhances code reliability by catching a wide range of issues early in development, similar to type checking in compiled languages.

Independently observed

Pricing

List pricing as published by each vendor, with the date we read it. Always verify at the source before you buy.

ESLint

Leader
Open sourceFree tier

Free open source

  • Open SourceFree
    • Find issues in JavaScript code
    • Automatically fix problems
    • Custom parsers
    • Custom rules
    • Text editor integration
    • +1 more
as of verify ↗

PHPStan

from €7/moHybridFree tier30-day trial

Free open-source, or 7 EUR/month (individual) / 70 EUR/month (team up to 25 members) for Pro features. 30-day free trial.

  • Open SourceFree
    • Static code analysis
    • Bug detection
    • Type checking
  • Individual Pro7 EUR/month
    • Web UI for browsing errors
    • Continuous analysis (watch mode)
    • Editor integration
  • Team Pro70 EUR/month (up to 25 members)
    • Web UI for browsing errors
    • Continuous analysis (watch mode)
    • Editor integration
as of verify ↗

Platform & deployment

Where each product runs and how it can be hosted. A dash means undocumented, not unsupported.

Platforms
Web
ESLint✗
PHPStan✓
CLI
ESLint✓
PHPStan✓
Deployment
Cloud / SaaS
ESLint✗
PHPStan✓
Self-hosted
ESLint✓
PHPStan✓

Integrations

What each product connects to. Counts come from the vendor's own integration directory where one exists.

ESLint

Leader
2 total
  • eslint-plugin-react
  • eslint-plugin-unicorn
Independently observed

PHPStan

3 total
  • Symfony
  • Laravel
  • Doctrine
Independently observed
Still deciding?

ESLint or PHPStan: which one depends on you

A composite score cannot know your constraints. Describe them and both get re-weighted against what you actually need, with the evidence behind every position.

Free to run, no account needed to start. How the evaluation works

Comparison generated from independently-sourced facts. Every value links to its source and retrieval date. See the method.