Spotless
github.com
What it is
Spotless formats source code and can check files for formatting violations or apply fixes. It supports languages and formats including Java, Kotlin, JavaScript, Python, SQL, YAML, and Markdown, with formatter options such as Google Java Format, ktlint, Prettier, ESLint, Black, and ScalaFmt. The project integrates with Gradle and Maven and links to an external SBT integration. Its README links to VS Code and IntelliJ integrations. Spotless lists automatic idempotency and encoding safeguards for Gradle, Maven, and SBT. Git-based features include ratcheting from a Git reference for Gradle and Maven, and Git-defined line endings for all three build tools. Some capabilities, including ratcheting and fast incremental formatting, are unavailable in SBT. The repository identifies the license as Apache-2.0. Spotless is available for Linux, macOS, and Windows. DiffPlug directs questions to its forum and lists a technical support contact; security disclosures can be sent to [email protected]. Its plan listing includes a free plan at free, billed free forever with no registration required, and also lists a free trial.
Spec sheet
- Purpose
- Spotless formats source code and can check files for formatting violations or apply fixes.Read 9 Oct 2026 · github.com
- Support
- DiffPlug directs questions to its forum and lists a technical support contact on its About page.Read 9 Oct 2026 · diffplug.com
- License
- The GitHub repository identifies its license as Apache-2.0.Read 9 Oct 2026 · github.com
- Build tools
- The project provides integrations for Gradle and Maven, and links to an external SBT integration.Read 9 Oct 2026 · github.com
- Editor integrations
- The README links Spotless integrations for VS Code and IntelliJ.Read 9 Oct 2026 · github.com
- Formatter integrations
- The feature matrix lists formatter steps including Google Java Format, ktlint, Prettier, ESLint, Black, and ScalaFmt.Read 9 Oct 2026 · github.com
- Formatting safeguards
- The feature matrix lists automatic idempotency and encoding safeguards for Gradle, Maven, and SBT.Read 9 Oct 2026 · github.com
- Git support
- The feature matrix lists ratcheting from a Git reference for Gradle and Maven, and Git-defined line endings for Gradle, Maven, and SBT.Read 9 Oct 2026 · github.com
- Languages
- Spotless lists support for languages and formats including Java, Kotlin, JavaScript, Python, SQL, YAML, and Markdown.Read 9 Oct 2026 · github.com
- Maker location
- DiffPlug says it is based in San Francisco, California.Read 9 Oct 2026 · diffplug.com
- Maturity of build-tool support
- The README feature matrix marks some capabilities as unavailable in SBT, including ratcheting and fast incremental formatting.Read 9 Oct 2026 · github.com
- Security contact
- The repository asks users to email [email protected] for security disclosures.Read 9 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Checks formatting and can apply fixes.
- Supports Gradle and Maven, with an SBT integration linked.
- Formatter options include Prettier, Black, and ktlint.
- Offers editor integrations for VS Code and IntelliJ.
Limits
- Some capabilities are unavailable in SBT.
- The SBT integration is external.
- The listed plan includes unrelated image and model viewing features.
Who it suits
Spotless suits developers and teams that want formatting checks or automatic fixes integrated into their build tools or editors. It can also fit projects using several supported languages or wanting to format changed lines.
Spotless in depth
Read the full write-up
Spotless is an open-source formatter that checks code for style violations and can apply fixes within build workflows. It is best suited to teams maintaining mixed-language repositories with Gradle or Maven. Its breadth is a strength, but SBT users give up some workflow capabilities.
Overview
Spotless brings formatting checks and fixes into project builds rather than limiting them to an editor. Its coverage across languages and formatter tools makes it a practical shared layer for repositories with several stacks. Teams working in one language may find a dedicated formatter a more focused fit.
The project is licensed under Apache-2.0 and supports Linux, macOS, and Windows. Its README links integrations for VS Code and IntelliJ, while DiffPlug directs questions to its forum and provides a technical support contact on its About page.
Key features
Language and formatter coverage
Spotless supports formats and languages including Java, Kotlin, JavaScript, Python, SQL, YAML, and Markdown. Formatter steps include Google Java Format, ktlint, Prettier, ESLint, Black, and ScalaFmt. That variety lets a team apply a consistent build-level formatting workflow across different parts of a repository; it does not make Spotless the most tailored choice for a project centered on a single language.
Build integrations and safeguards
Gradle and Maven have project integrations, and an external integration is available for SBT. The feature matrix includes automatic idempotency and encoding safeguards for all three. Git-defined line endings are also supported across them, while ratcheting from a Git reference is listed for Gradle and Maven. SBT lacks that capability and fast incremental formatting, which makes it a less complete fit for teams that depend on those workflows.
Changed-lines formatting, ignore files, and a library API extend the tool beyond basic whole-project checks. These options are useful for fitting formatting into existing repository workflows, though the matrix’s SBT gaps still matter when choosing a build integration.
Pricing
Spotless is free and open source, with no paid plans or usage caps described. There is no purchase decision between tiers: teams can adopt it without a software fee, but should weigh its build-tool feature differences against their workflow needs. A free trial is not a meaningful distinction for this open-source project.
Platforms
Spotless runs on Linux, macOS, and Windows. Its supported build systems include Gradle, Maven, SBT, and other build systems, although the documented capability gaps apply specifically to SBT. VS Code and IntelliJ integrations give editor users a path to work alongside the build-based checks.
Who it's for
Spotless is a strong fit for teams that want formatting checks and fixes shared across languages and enforced through Gradle or Maven. Its formatter range and Git-aware options are especially relevant to repositories with multiple languages or established change-based workflows. Teams whose SBT process requires ratcheting or fast incremental formatting should look elsewhere or account for those omissions.
Pros and cons
Broad formatter coverage: supports tools such as Prettier, Black, ktlint, and ScalaFmt, helping mixed-language repositories share a build-level approach.
Useful workflow safeguards: idempotency, encoding checks, and Git-defined line endings are available across Gradle, Maven, and SBT.
Uneven SBT support: ratcheting and fast incremental formatting are unavailable, unlike the corresponding Gradle and Maven capabilities.
Free and open source: Apache-2.0 licensing avoids a software fee, though teams still need to choose an integration suited to their build workflow.
Alternatives
For a Python-focused project, Black is a free Python code formatter and a narrower alternative. Prettier is another free open-source code formatter, with enterprise support and maintenance offered through Tidelift Subscription. For web projects, Biome offers a free open-source toolchain.
Teams focused on Haskell can consider free formatters Fourmolu or Ormolu. rustfmt is a free option with no paid plans stated, while Fantomas targets F# source code as a .NET tool under Apache 2.0. Accessibility Test Framework for Android is a free alternative for readers considering that tool.
Browse the Code Formatting Tools list for more options.
Verdict
Choose Spotless if your team wants a free, open-source way to apply formatting checks and fixes across languages within Gradle or Maven builds. Its range of formatters and build safeguards are the main reasons to choose it. Look elsewhere if your SBT workflow depends on ratcheting or fast incremental formatting, or if a focused single-language formatter better fits your project.
Verdict
Spotless provides code formatting across multiple languages and build environments, with differing feature coverage by build tool. Teams using SBT should account for the listed capability gaps.
Where Specifiction places it
- Code Formatting Tools#28 of 347.3