← Back to home
Comparison · Infra & APIs

goodpractice vs Semgrep

A side-by-side editorial comparison of goodpractice and Semgrep — release velocity, themes, recent moves, and the top alternatives to consider.

Shared themes:static-analysis

goodpractice vs Semgrep: at a glance

FeaturegoodpracticeSemgrep
SectorInfra & APIsInfra & APIs
Velocity score0.05.0
Sparks · 30d00
Top themescode-quality, static-analysis, r-package, ropenscistatic-analysis, language-coverage, scan-performance, large-repo-scaling
Last editorial update1h ago7h ago
WebsiteVisit →Visit →

What is goodpractice?

The R package-quality checker returns from CRAN limbo with checks you can select by category.

goodpractice runs a battery of static checks over an R package — style, complexity, test coverage, documentation, DESCRIPTION hygiene — and reports what a reviewer would flag. The package was archived on CRAN, adopted by rOpenSci in 1.0.5, and version 1.1 is the first substantive release since: every check now belongs to one of 16 named groups, discoverable via all_check_groups() and selectable via checks_by_group(), with group-level exclusion through an option or environment variable and new default_checks() and tidyverse_checks() presets.

Read the full goodpractice trajectory →

What is Semgrep?

Semgrep keeps spending releases on parser breadth and large-repo throughput, not new surface.

Ten consecutive releases have gone into the engine rather than the product. The recurring shape is a parser refresh (Solidity, Ruby, Dart), a scan-performance change, and a batch of correctness fixes for Pro analysis. Nothing in this window changes what a team buys Semgrep for; it changes how reliably a scan finishes on a large repository.

Read the full Semgrep trajectory →

goodpractice vs Semgrep: editorial side-by-side

G
goodpractice
INFRA · APIS
0.0

The R package-quality checker returns from CRAN limbo with checks you can select by category.

◆ Current state

goodpractice runs a battery of static checks over an R package — style, complexity, test coverage, documentation, DESCRIPTION hygiene — and reports what a reviewer would flag. The package was archived on CRAN, adopted by rOpenSci in 1.0.5, and version 1.1 is the first substantive release since: every check now belongs to one of 16 named groups, discoverable via all_check_groups() and selectable via checks_by_group(), with group-level exclusion through an option or environment variable and new default_checks() and tidyverse_checks() presets.

◆ Where it's heading

The direction is from a monolithic verdict toward a configurable one. Previously the practical choices were run everything or name individual checks; grouping makes partial adoption tractable, which matters because the full battery is opinionated enough that teams either accept all of it or ignore the tool. The tidyverse_checks() preset makes that explicit — the package is acknowledging that its defaults encode one house style among several. Earlier releases pointed the same way with a configurable cyclomatic complexity limit and adjustable output length.

◆ Prediction

With grouping and presets in place, the natural next step is per-project persistent configuration so exclusions live in the repository rather than in an option or environment variable.

S
Semgrep
INFRA · APIS
5.0

Semgrep keeps spending releases on parser breadth and large-repo throughput, not new surface.

◆ Current state

Ten consecutive releases have gone into the engine rather than the product. The recurring shape is a parser refresh (Solidity, Ruby, Dart), a scan-performance change, and a batch of correctness fixes for Pro analysis. Nothing in this window changes what a team buys Semgrep for; it changes how reliably a scan finishes on a large repository.

◆ Where it's heading

The performance work is converging on one problem: very large monorepos. File targeting now batches path filtering across worker domains, rule parsing shards by bytes instead of worker count, and a new Pro memory policy lets a scan trade RAM for skipping on-disk caching. Running alongside it is a quieter thread of trust work, and the 1.173.0 fix for silently dropped targets belongs to it: a file whose path filtering failed appeared in neither the findings nor the skipped list, which is the kind of gap that undermines a scan report more than any missing rule.

◆ Prediction

Expect the parser-refresh-plus-throughput cadence to continue, with the memory policy and the dependency-path output likely graduating out of experimental once large-repo users report back on them.

Alternatives to goodpractice and Semgrep

Other Infra & APIs products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either goodpractice or Semgrep.

See all goodpractice alternatives → · See all Semgrep alternatives →

Recent activity from goodpractice and Semgrep

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 1d agoSemgrepSolidity parser refresh; batched targeting for very large repos
  2. 16d agoSemgrepOpenTofu files scanned as Terraform; Ruby parser updated
  3. 22d agoSemgrepBuild moves to a patched OCaml compiler to stop rare crashes
  4. 1mo agoSemgrepPro C/C++ scans skip statically-dead preprocessor branches
  5. 1mo agoSemgrepDart parser updated to a newer upstream version
  6. 1mo agoSemgrepExperimental flag exposes full paths for transitive dependency findings
  7. 2mo agogoodpracticeChecks organized into 16 selectable groups with presets
  8. 2y agogoodpracticerOpenSci takes over maintenance, package restored to CRAN
  9. 4y agogoodpracticeConfigurable cyclomatic complexity limit and output length
  10. 5y agogoodpracticePackage logo added

Frequently asked questions

What is the difference between goodpractice and Semgrep?

Both compete on the same themes — static-analysis — within Infra & APIs. Semgrep is currently shipping more aggressively (velocity 5.0 vs 0.0), with 0 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is goodpractice better than Semgrep?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. Semgrep is currently shipping more aggressively (velocity 5.0 vs 0.0), with 0 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.

What are the best alternatives to goodpractice?

Top goodpractice alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "goodpractice alternatives" section above for the current picks, or visit /alternatives/goodpractice for the full list with editorial commentary on each.

What are the best alternatives to Semgrep?

Top Semgrep alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "Semgrep alternatives" section above for the current picks, or visit /alternatives/semgrep for the full list with editorial commentary on each.