A SonarQube alternative that doesn't count your lines.

Qualor covers what most teams use SonarQube for: issues, coverage, duplication, complexity, quality gates on new code and merge request decoration. It's open source, self-hosted, and branch analysis is free.

Side by side

AspectSonarQubeQualor
Licence modelCommunity Build is free; commercial editions are priced by lines of code analysedMIT community edition; enterprise features by licence key, never priced by lines of code
Branch and merge request analysisIn the commercial editionsIn the free edition
Merge request decorationIn the commercial editionsGitLab and GitHub, in the free edition
Quality gates on new codeYesYes
Where the rules come fromSonarSource's own analyzers and rulesOpen-source analyzers: ESLint, PMD, SpotBugs, OpenGrep, Gitleaks, Trivy, or any SARIF tool
Coverage importYesLCOV, Cobertura, JaCoCo
HostingSelf-hosted server or SonarQube CloudSelf-hosted only: Docker Compose or Helm
Search engine and dependenciesServer, database and an embedded ElasticsearchOne container and PostgreSQL
LLM assistanceVendor-providedYour own model: OpenAI-compatible, Anthropic, Ollama or vLLM
MigrationNot applicablequalor import sonarqube: profiles, gates and issue statuses

Based on SonarSource's public documentation. Check their site for the current details of each edition.

Which one fits

Qualor fits when

  • You pay for a commercial SonarQube edition mainly for branch analysis, merge request decoration and gates.
  • Your codebase is large, or growing, and a licence priced by lines of code keeps getting more expensive.
  • You host your own GitLab or GitHub and want code quality on your own servers too.
  • You already trust ESLint, PMD, SpotBugs or Semgrep-style rules and want one gate over all of them.

SonarQube may fit better when

  • You rely on SonarSource's own rules for a specific language, rule by rule.
  • You need a language no open-source analyzer covers well.
  • You want a hosted service rather than running a server yourself.
Scattered dots gathered by fine lines into one clean circle

Switch without starting over

qualor import sonarqube reads your SonarQube server through its API and brings over quality profiles, quality gates and issue statuses. The false positives and won't-fix decisions your team made stay made, and the first Qualor analysis starts from where SonarQube left off.

qualor import sonarqube \
  --url https://sonar.example.com \
  --token $SONAR_TOKEN

Source and issues on GitHub.