Snyk is one of the most popular developer security tools for a reason. It's well-integrated with GitHub, it catches vulnerable dependencies reliably, and the free tier is genuinely useful. If you're not using it (or something like it), you should start.
This post isn't about why Snyk is bad — it's about what Snyk doesn't cover, and when you need to add another layer.
What Snyk does well
- SCA (Software Composition Analysis): Scans your
package.json,Pipfile,Cargo.toml, etc. against known CVE databases - License compliance: Flags dependencies with incompatible licenses
- Fix PRs: Auto-opens PRs to upgrade vulnerable dependencies
- Container scanning: Scans your Docker images for vulnerable OS packages
- IaC scanning: Checks Terraform and CloudFormation for misconfigurations
Snyk is best-in-class for the supply chain layer — what's in your dependencies.
What Snyk doesn't cover
Your code, not just your dependencies
Snyk SCA doesn't analyse your application code for vulnerabilities you wrote. SQL injection, XSS, insecure deserialization, path traversal — these aren't CVEs in a dependency, they're bugs in your code. Snyk Code (their SAST product) covers some of this, but at a higher price tier and with the limitations of pattern-based static analysis.
Runtime behaviour
A vulnerability that only manifests in a running application — a timing attack on your authentication endpoint, an SSRF via a URL parameter, a business logic flaw in your payment flow — won't be caught by scanning source code. You need dynamic testing against a running instance.
Secret scanning with history
Snyk doesn't scan your git history for committed secrets. If someone committed an AWS key six months ago and "deleted" it in the next commit, it's still in the history. Git history scanning catches this; Snyk doesn't.
Infrastructure live testing
Snyk IaC scans your Terraform files, but it doesn't actually probe your deployed infrastructure for what's reachable from the internet, what ports are open, or what a real attacker would find if they started from your domain name.
How BattleTest complements Snyk
If you're using Snyk for dependency scanning, keep it — it's good at that job. BattleTest handles the layers Snyk doesn't:
- Semantic code analysis for vulnerabilities in your application logic (injection, auth flaws, SSRF)
- Secret scanning across your git history on every PR
- Live infrastructure probing against your running application
- AI-driven PR review that understands context across files, not just the changed lines
Pricing comparison
| Snyk Team | BattleTest Startup | |
|---|---|---|
| Dependency CVE scanning | Yes | Yes |
| SAST / code analysis | Add-on | Yes (AI-native) |
| Secret scanning | Partial | Yes (git history) |
| Dynamic/live testing | No | Yes |
| PR review integration | Yes | Yes |
| Price | $25/dev/mo | $60/mo flat |
For a 3-person team, BattleTest costs $60/mo vs $75/mo for Snyk Team — and covers more attack surface. Snyk has a free tier that's worth using alongside BattleTest for dependency scanning breadth.