# Black vs PHPStan

**Leader by Vioscale score:** Black

| Attribute | Black | PHPStan |
|---|---|---|
| **Vioscale score** | 72.7 (78% (high)) | 52.6 (53% (medium)) |
| activity.commits_last_30d | 29 | 100 |
| adoption.dependent_repos | 105,588 | 0 |
| adoption.github_stars | 41,816 | 14,082 |
| adoption.package_downloads_weekly | 39,005,228 | - |
| deployment.options | `{"self_hosted":true}` | `{"self_hosted":true}` |
| description.long | An opinionated Python code formatter that automatically reformats code according to a standardized style. It produces minimal diffs for cleaner code review and reduces developer cognitive load by removing formatting decisions, allowing focus on code logic. | PHPStan is a static analysis tool for PHP that scans codebases to find bugs before they reach production. It offers both a free open-source version and a paid Pro tier with a web UI and continuous background analysis. |
| features.capabilities | `{"autofix":true,"metrics":false,"function":"formatter","ci_gating":true,"deployment":"both","incremental":false,"open_source":"oss","config_model":"zero_config","custom_rules":false,"impl_language":"Python","pricing_model":"free","language_scope":"single_language","editor_integration":true}` | `{"autofix":false,"function":"static_analyzer","ci_gating":true,"incremental":true,"open_source":"oss","config_model":"config_file","custom_rules":true,"impl_language":"PHP","pricing_model":"free","language_scope":"single_language","editor_integration":true}` |
| integrations.count | 8 | 3 |
| integrations.list | `[{"name":"Neovim"},{"name":"conform.nvim"},{"name":"ALE"},{"name":"SublimeText"},{"name":"Pre-commit"},{"name":"Jupyter Notebooks"},{"name":"blacken-docs"},{"name":"blackdoc"}]` | `[{"name":"Symfony"},{"name":"Laravel"},{"name":"Doctrine"}]` |
| language.primary | Python | PHP |
| license.spdx | MIT | MIT |
| market.availability | - | `{"hqCountry":"CZ","primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` |
| platform.support | `{"cli":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"open_source","summary":"Free and open source (MIT licensed)","freeTier":true,"sourceUrl":"https://black.readthedocs.io/en/stable/","retrievedAt":"2026-08-14T13:47:36.307Z"}` | `{"type":"hybrid","plans":[{"free":true,"name":"PHPStan (Free)","summary":"Free, open-source","features":["Bug detection","CLI interface","CI integration","Rule levels 0-10","Custom rules support"],"description":"Open-source version with CLI interface","contactSales":false},{"free":false,"name":"PHPStan Pro","summary":"Subscription required; exact pricing not disclosed","features":["Web UI instead of CLI","Auto-refresh","Continuous background analysis"],"description":"Premium package with web UI and continuous analysis","contactSales":false}],"summary":"Free open-source tier; Pro subscription available at undisclosed pricing","currency":"USD","freeTier":true,"sourceUrl":"https://phpstan.org/","retrievedAt":"2026-08-14T08:30:37.776Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | freemium |
| pricing.price_level | free | low |
| pricing.transparent | yes | no |
| release.cadence_days | 31 | 2 |
| release.history | `[{"url":"https://github.com/psf/black/releases/tag/26.5.1","date":"2026-05-18T16:52:38Z","type":"stable","version":"26.5.1"},{"url":"https://github.com/psf/black/releases/tag/26.5.0","date":"2026-05-16T17:56:23Z","type":"stable","version":"26.5.0"},{"url":"https://github.com/psf/black/releases/tag/26.3.1","date":"2026-03-12T03:35:15Z","type":"stable","version":"26.3.1"},{"url":"https://github.com/psf/black/releases/tag/26.3.0","date":"2026-03-06T17:41:48Z","type":"stable","version":"26.3.0"},{"url":"https://github.com/psf/black/releases/tag/26.1.0","date":"2026-01-18T04:49:25Z","type":"stable","version":"26.1.0"},{"url":"https://github.com/psf/black/releases/tag/26.1a1","date":"2025-12-08T01:46:21Z","type":"prerelease","version":"26.1a1"},{"url":"https://github.com/psf/black/releases/tag/25.12.0","date":"2025-12-08T01:40:32Z","type":"stable","version":"25.12.0"},{"url":"https://github.com/psf/black/releases/tag/25.11.0","date":"2025-11-10T01:53:31Z","type":"stable","version":"25.11.0"},{"url":"https://github.com/psf/black/releases/tag/25.9.0","date":"2025-09-19T00:27:15Z","type":"stable","version":"25.9.0"},{"url":"https://github.com/psf/black/releases/tag/25.1.0","date":"2025-01-29T04:15:11Z","type":"stable","version":"25.1.0"},{"url":"https://github.com/psf/black/releases/tag/24.10.0","date":"2024-10-07T19:20:06Z","type":"stable","version":"24.10.0"},{"url":"https://github.com/psf/black/releases/tag/24.8.0","date":"2024-08-02T17:42:53Z","type":"stable","version":"24.8.0"},{"url":"https://github.com/psf/black/releases/tag/24.4.2","date":"2024-04-26T00:31:27Z","type":"stable","version":"24.4.2"},{"url":"https://github.com/psf/black/releases/tag/24.4.1","date":"2024-04-24T15:17:30Z","type":"stable","version":"24.4.1"},{"url":"https://github.com/psf/black/releases/tag/24.4.0","date":"2024-04-12T20:13:48Z","type":"stable","version":"24.4.0"},{"url":"https://github.com/psf/black/releases/tag/24.3.0","date":"2024-03-15T19:35:14Z","type":"stable","version":"24.3.0"},{"url":"https://github.com/psf/black/releases/tag/24.2.0","date":"2024-02-12T20:20:40Z","type":"stable","version":"24.2.0"},{"url":"https://github.com/psf/black/releases/tag/24.1.1","date":"2024-01-28T05:28:09Z","type":"stable","version":"24.1.1"},{"url":"https://github.com/psf/black/releases/tag/24.1.0","date":"2024-01-26T05:11:50Z","type":"stable","version":"24.1.0"},{"url":"https://github.com/psf/black/releases/tag/23.12.1","date":"2023-12-22T23:05:40Z","type":"stable","version":"23.12.1"}]` | `[{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.9","date":"2026-08-22T07:39:37Z","type":"stable","version":"2.2.9"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.8","date":"2026-08-04T22:23:06Z","type":"stable","version":"2.2.8"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.7","date":"2026-07-29T17:40:47Z","type":"stable","version":"2.2.7"},{"url":"https://github.com/phpstan/phpstan/releases/tag/1.12.34","date":"2026-07-28T10:05:36Z","type":"stable","version":"1.12.34"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.6","date":"2026-07-26T21:24:15Z","type":"stable","version":"2.2.6"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.5","date":"2026-07-05T06:33:25Z","type":"stable","version":"2.2.5"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.4","date":"2026-07-03T07:01:31Z","type":"stable","version":"2.2.4"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.3","date":"2026-06-30T21:16:38Z","type":"stable","version":"2.2.3"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.2","date":"2026-06-05T09:01:35Z","type":"stable","version":"2.2.2"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.1","date":"2026-05-28T14:45:45Z","type":"stable","version":"2.2.1"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.2.0","date":"2026-05-28T08:41:56Z","type":"stable","version":"2.2.0"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.56","date":"2026-05-26T17:06:15Z","type":"stable","version":"2.1.56"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.55","date":"2026-05-18T11:59:05Z","type":"stable","version":"2.1.55"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.54","date":"2026-04-29T13:35:54Z","type":"stable","version":"2.1.54"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.53","date":"2026-04-28T16:16:29Z","type":"stable","version":"2.1.53"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.52","date":"2026-04-28T12:27:36Z","type":"stable","version":"2.1.52"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.51","date":"2026-04-21T18:23:04Z","type":"stable","version":"2.1.51"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.50","date":"2026-04-17T13:11:29Z","type":"stable","version":"2.1.50"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.49","date":"2026-04-16T21:12:00Z","type":"stable","version":"2.1.49"},{"url":"https://github.com/phpstan/phpstan/releases/tag/2.1.48","date":"2026-04-15T20:25:35Z","type":"stable","version":"2.1.48"}]` |
| security.disclosure_policy | yes | - |
| security.gdpr | - | yes |
| security.scorecard | 7.7 | 4.9 |
| security.vulnerabilities | `{"count":2,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=black&per_page=100","last_12m":1,"max_severity":"HIGH"}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=nixpkgs&package_name=php82Packages.phpstan&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Code Quality Tools)

| Capability | Black | PHPStan |
|---|:--:|:--:|
| **Core** |  |  |
| Function | Formatter | Static analyzer |
| Language scope | Single-language | Single-language |
| Implementation language | Python | PHP |
| **Capability** |  |  |
| Autofix | ✓ | ✗ |
| **Config** |  |  |
| Config model | Zero-config | Config file |
| **Extensibility** |  |  |
| Custom rules | ✗ | ✓ |
| **Deployment** |  |  |
| Deployment | Both | - |
| **Delivery** |  |  |
| Editor integration | ✓ | ✓ |
| CI / VCS gating | ✓ | ✓ |
| **Insight** |  |  |
| Code metrics | ✗ | - |
| **Performance** |  |  |
| Incremental / monorepo aware | ✗ | ✓ |
| **Licensing** |  |  |
| Open-source | OSS | OSS |
| **Commercial** |  |  |
| Pricing model | Free | Free |

*Source: Vioscale. Generated 2026-09-01T17:08:29.684Z. "-" = undocumented, not absent.*
