# ESLint vs SpotBugs

**Leader by vioscaleAI score:** ESLint

| Attribute | ESLint | SpotBugs |
|---|---|---|
| **vioscaleAI score** | 76 (78% (high)) | 54.9 (48% (low)) |
| activity.commits_last_30d | 44 | 72 |
| adoption.dependent_repos | 1,569,244 | 2,768 |
| adoption.github_stars | 27,559 | 3,954 |
| adoption.package_downloads_weekly | 158,743,826 | - |
| content.faq | `[{"answer":"An open-source linter and fixer for JavaScript and JSX that runs locally in editors and CI pipelines. It uses AST analysis to catch problems and can automatically fix many issues, with full support for custom rules and extensibility. It is indexed under Code Quality Tools.","source":"https://eslint.org","question":"What is ESLint?","confidence":0.6},{"answer":"ESLint is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. Pricing changes often, so verify at source before relying on it.","source":"https://eslint.org","question":"Is ESLint free to use?","confidence":0.6},{"answer":"ESLint supports a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://eslint.org","question":"What platforms does ESLint support?","confidence":0.6},{"answer":"Yes. ESLint can be deployed self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://eslint.org","question":"Can ESLint be self-hosted?","confidence":0.6},{"answer":"Yes. ESLint is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/eslint/eslint","question":"Is ESLint open source?","confidence":0.99}]` | `[{"answer":"An open-source utility that examines Java source code to identify potential programming issues without executing it. It integrates with build tools and IDEs through plugins and supports community-contributed or custom analysis rules. It is indexed under Code Quality Tools.","source":"https://spotbugs.github.io/","question":"What is SpotBugs?","confidence":0.6},{"answer":"SpotBugs is open source, so it can be self-hosted and used at no licence cost. It is released under the LGPL-2.1 licence. Pricing changes often, so verify at source before relying on it.","source":"https://spotbugs.github.io/","question":"Is SpotBugs free to use?","confidence":0.6},{"answer":"SpotBugs supports a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://spotbugs.github.io/","question":"What platforms does SpotBugs support?","confidence":0.6},{"answer":"Yes. SpotBugs can be deployed on-premise and self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://spotbugs.github.io/","question":"Can SpotBugs be self-hosted?","confidence":0.6},{"answer":"We have confirmed 6 integrations for SpotBugs, including Maven, Gradle, Eclipse, Ant, fb-contrib and find-sec-bugs. This is what we could verify from public sources, so the vendor may support others we have not indexed.","source":"https://spotbugs.github.io/","question":"What does SpotBugs integrate with?","confidence":0.6},{"answer":"Yes. SpotBugs is published under the LGPL-2.1 licence, a copyleft licence, so check its terms before embedding it in a closed-source product. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/spotbugs/spotbugs","question":"Is SpotBugs open source?","confidence":0.95}]` |
| deployment.options | `{"self_hosted":true}` | `{"on_prem":true,"self_hosted":true}` |
| description.long | 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. | SpotBugs performs static analysis on Java code to identify potential bugs and code quality issues. |
| features.capabilities | `{"autofix":true,"function":"linter_formatter","ci_gating":true,"deployment":"cli_local","open_source":"oss","config_model":"config_file","custom_rules":true,"impl_language":"JavaScript","pricing_model":"free","language_scope":"single_language","editor_integration":true}` | `{"autofix":false,"function":"static_analyzer","ci_gating":true,"deployment":"cli_local","open_source":"oss","config_model":"rule_packs","custom_rules":true,"impl_language":"Java","pricing_model":"free","language_scope":"single_language","editor_integration":true}` |
| integrations.count | 2 | 3 |
| integrations.list | `[{"name":"eslint-plugin-react"},{"name":"eslint-plugin-unicorn"}]` | `[{"name":"Maven"},{"name":"Gradle"},{"name":"Eclipse"},{"name":"Ant"},{"name":"fb-contrib"},{"name":"find-sec-bugs"},{"name":"VS Code","native":true}]` |
| language.primary | JavaScript | Java |
| license.spdx | MIT | LGPL-2.1 |
| platform.support | `{"cli":true}` | `{"cli":true}` |
| pricing | `{"type":"open_source","plans":[{"free":true,"name":"Open Source","features":["Find issues in JavaScript code","Automatically fix problems","Custom parsers","Custom rules","Text editor integration","CI pipeline integration"],"description":"Free open source linter","contactSales":false}],"summary":"Free open source","freeTier":true,"sourceUrl":"https://eslint.org","retrievedAt":"2026-08-05T14:08:29.561Z"}` | `{"type":"open_source","sourceUrl":"https://spotbugs.github.io/","retrievedAt":"2026-08-14T08:33:37.010Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | open_source |
| pricing.price_level | free | free |
| release.cadence_days | 13 | 27 |
| release.history | `[{"url":"https://github.com/eslint/eslint/releases/tag/v10.12.0","date":"2026-10-02T20:07:11Z","type":"stable","version":"v10.12.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.11.0","date":"2026-09-18T20:13:06Z","type":"stable","version":"v10.11.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.10.0","date":"2026-09-04T14:30:17Z","type":"stable","version":"v10.10.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.9.1","date":"2026-08-24T18:18:59Z","type":"stable","version":"v10.9.1"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.9.0","date":"2026-08-21T13:05:50Z","type":"stable","version":"v10.9.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.8.1","date":"2026-08-07T20:16:24Z","type":"stable","version":"v10.8.1"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.8.0","date":"2026-07-24T20:15:28Z","type":"stable","version":"v10.8.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.7.0","date":"2026-07-10T21:22:56Z","type":"stable","version":"v10.7.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v9.39.5","date":"2026-07-10T20:41:58Z","type":"stable","version":"v9.39.5"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.6.0","date":"2026-06-26T20:09:26Z","type":"stable","version":"v10.6.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.5.0","date":"2026-06-12T17:54:47Z","type":"stable","version":"v10.5.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.4.1","date":"2026-05-29T20:32:39Z","type":"stable","version":"v10.4.1"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.4.0","date":"2026-05-15T14:11:22Z","type":"stable","version":"v10.4.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.3.0","date":"2026-05-01T15:39:48Z","type":"stable","version":"v10.3.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.2.1","date":"2026-04-17T20:17:51Z","type":"stable","version":"v10.2.1"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.2.0","date":"2026-04-03T20:36:28Z","type":"stable","version":"v10.2.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.1.0","date":"2026-03-20T15:31:47Z","type":"stable","version":"v10.1.0"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.0.3","date":"2026-03-06T22:53:26Z","type":"stable","version":"v10.0.3"},{"url":"https://github.com/eslint/eslint/releases/tag/v9.39.4","date":"2026-03-06T21:46:54Z","type":"stable","version":"v9.39.4"},{"url":"https://github.com/eslint/eslint/releases/tag/v10.0.2","date":"2026-02-23T21:43:46Z","type":"stable","version":"v10.0.2"}]` | `[{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.10.5","date":"2026-10-12T03:43:33Z","type":"stable","version":"4.10.5"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.10.4","date":"2026-08-20T03:22:34Z","type":"stable","version":"4.10.4"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.10.3","date":"2026-07-12T23:54:13Z","type":"stable","version":"4.10.3"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.10.2","date":"2026-06-09T20:24:17Z","type":"stable","version":"4.10.2"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.10.1","date":"2026-06-08T13:19:51Z","type":"stable","version":"4.10.1"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.10.0","date":"2026-06-08T01:28:41Z","type":"stable","version":"4.10.0"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.8","date":"2025-10-18T16:45:29Z","type":"stable","version":"4.9.8"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.7","date":"2025-10-14T22:32:35Z","type":"stable","version":"4.9.7"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.6","date":"2025-09-17T02:07:29Z","type":"stable","version":"4.9.6"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.5","date":"2025-09-15T01:58:47Z","type":"stable","version":"4.9.5"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.4","date":"2025-08-10T00:26:10Z","type":"stable","version":"4.9.4"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.3","date":"2025-03-15T19:18:36Z","type":"stable","version":"4.9.3"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.2","date":"2025-03-01T20:12:52Z","type":"stable","version":"4.9.2"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.1","date":"2025-02-05T16:59:04Z","type":"stable","version":"4.9.1"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.9.0","date":"2025-01-16T05:16:00Z","type":"stable","version":"4.9.0"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.8.6","date":"2024-06-18T02:46:58Z","type":"stable","version":"4.8.6"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.8.5","date":"2024-05-03T23:22:14Z","type":"stable","version":"4.8.5"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.8.4","date":"2024-04-23T13:33:59Z","type":"stable","version":"4.8.4"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.8.3","date":"2023-12-12T10:47:36Z","type":"stable","version":"4.8.3"},{"url":"https://github.com/spotbugs/spotbugs/releases/tag/4.8.2","date":"2023-11-29T04:06:02Z","type":"stable","version":"4.8.2"}]` |
| reliability.status_page | - | yes |
| security.scorecard | 6.6 | 4.5 |
| security.vulnerabilities | `{"count":2,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=eslint&per_page=100","last_12m":1,"max_severity":"MODERATE"}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=maven&package_name=com.github.spotbugs%3Aspotbugs-annotations&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Code Quality Tools)

| Capability | ESLint | SpotBugs |
|---|:--:|:--:|
| **Core** |  |  |
| Function | Linter + formatter | Static analyzer |
| Language scope | Single-language | Single-language |
| Implementation language | JavaScript | Java |
| **Capability** |  |  |
| Autofix | ✓ | ✗ |
| **Config** |  |  |
| Config model | Config file | Rule packs |
| **Extensibility** |  |  |
| Custom rules | ✓ | ✓ |
| **Deployment** |  |  |
| Deployment | CLI-local | CLI-local |
| **Delivery** |  |  |
| Editor integration | ✓ | ✓ |
| CI / VCS gating | ✓ | ✓ |
| **Insight** |  |  |
| Code metrics | - | - |
| **Performance** |  |  |
| Incremental / monorepo aware | - | - |
| **Licensing** |  |  |
| Open-source | OSS | OSS |
| **Commercial** |  |  |
| Pricing model | Free | Free |

*Source: vioscaleAI. Generated 2026-10-16T19:03:51.869Z. "-" = undocumented, not absent.*
