← Back to home
Comparison · Infra & APIs

Nautobot vs werf

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

Nautobot vs werf: at a glance

FeatureNautobotwerf
SectorInfra & APIsInfra & APIs
Velocity score5.05.0
Sparks · 30d00
Top themesnetwork source of truth, security advisories, breaking api changes, dual branchkubernetes, ci-cd, buildah, multi-branch-releases
Last editorial update2h ago5h ago
WebsiteVisit →Visit →

What is Nautobot?

A security advisory cycle forced Nautobot to break its REST API on both supported branches at once.

3.2.0 and 2.4.38 shipped the same day in late July carrying CVE fixes that the notes state introduce breaking changes, most often surfacing as unexpected TypeError, AttributeError or KeyError for REST and GraphQL clients. The central change, from advisory GHSA-h8rv-c7c8-cvmx, is that the REST API now enforces object-level view permissions when traversing to related objects via ?depth — beyond depth 1 a related object the caller cannot view is reduced to id, object_type, url and display instead of being serialised in full. 3.2.0 also makes job_kwargs required for create_schedule, enqueue_job, execute_job and run_job_for_testing, with a temporary fallback that warns. 3.1.8 closed an authorization bypass letting a user self-approve a workflow, and 2.4.37 fixed stored XSS in Relationship and Module Family fields.

Read the full Nautobot trajectory →

What is werf?

Werf is running a v3 rewrite and a v2 maintenance line side by side, on four release channels.

Werf publishes into parallel channels — alpha, beta, ea, stable, and dev — and the recent entries show two lines moving at once. The 2.75.x releases are maintenance: a host-cleanup fix that stopped it wiping other werf versions' git cache, buildah retries when a cached image id is missing, serialized concurrent base-image pulls. The v3 line is where features land, with 3.0.0 alphas, a 3.0.2 patch, and a 3.1.0 dev build carrying embedded kubeconform schemas, additional patch files, and a per-project meta-repo safeguard.

Read the full werf trajectory →

Nautobot vs werf: editorial side-by-side

N
Nautobot
INFRA · APIS
5.0

A security advisory cycle forced Nautobot to break its REST API on both supported branches at once.

◆ Current state

3.2.0 and 2.4.38 shipped the same day in late July carrying CVE fixes that the notes state introduce breaking changes, most often surfacing as unexpected TypeError, AttributeError or KeyError for REST and GraphQL clients. The central change, from advisory GHSA-h8rv-c7c8-cvmx, is that the REST API now enforces object-level view permissions when traversing to related objects via ?depth — beyond depth 1 a related object the caller cannot view is reduced to id, object_type, url and display instead of being serialised in full. 3.2.0 also makes job_kwargs required for create_schedule, enqueue_job, execute_job and run_job_for_testing, with a temporary fallback that warns. 3.1.8 closed an authorization bypass letting a user self-approve a workflow, and 2.4.37 fixed stored XSS in Relationship and Module Family fields.

◆ Where it's heading

Nautobot is running two supported lines in parallel and treating them as equals: 3.2.2 and 2.4.39 both shipped on 3 August with the same many-to-many change-logging fix. The security work in this window is not incidental — the advisories cluster around authorization boundaries that the API had been permissive about, and closing them meant accepting a compatibility break rather than preserving behaviour. The documentation change acknowledging that managing a Git repository grants arbitrary code execution on the worker is the same instinct applied to expectations rather than code.

◆ Prediction

The job_kwargs fallback is explicitly temporary and warns when used, so its removal in a later release is the stated next step. Expect the paired 2.4.z and 3.x releases to continue landing together.

W
werf
INFRA · APIS
5.0

Werf is running a v3 rewrite and a v2 maintenance line side by side, on four release channels.

◆ Current state

Werf publishes into parallel channels — alpha, beta, ea, stable, and dev — and the recent entries show two lines moving at once. The 2.75.x releases are maintenance: a host-cleanup fix that stopped it wiping other werf versions' git cache, buildah retries when a cached image id is missing, serialized concurrent base-image pulls. The v3 line is where features land, with 3.0.0 alphas, a 3.0.2 patch, and a 3.1.0 dev build carrying embedded kubeconform schemas, additional patch files, and a per-project meta-repo safeguard.

◆ Where it's heading

The v3 work is a deploy-engine change more than a version bump: nelm is being pulled in and bumped, values-schema validation is becoming optional to stop service values breaking values.schema.json, and a meta-repo migration path is being built. Meanwhile the build layer is being hardened against concurrency — serialized pulls, retry on missing cached ids, Dockerfile COPY semantics fixed for --parents and --exclude in staged builds. The two lines share build fixes, with the same commits appearing in both 2.75.4 and 3.1.0.

◆ Prediction

Expect the v3 line to keep absorbing build fixes from 2.75.x while nelm and the meta-repo migration stabilise ahead of a wider v3 push. The 2.75.x channel looks like it will stay on bug fixes only.

Alternatives to Nautobot and werf

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 Nautobot or werf.

See all Nautobot alternatives → · See all werf alternatives →

Recent activity from Nautobot and werf

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

  1. 1d agowerfSignature note appended to the latest release artifacts
  2. 1d agowerf2.75.3: host cleanup stops wiping other werf versions' git cache
  3. 1d agowerf2.75.4 alpha: buildah pull retries and serialized base-image pulls
  4. 1d agowerf3.1.0 dev: embedded kubeconform schemas and meta-repo safeguards
  5. 3d agoNautobotCable termination filter and GraphQL OpenTelemetry corrections
  6. 4d agoNautobotMany-to-many change logging and GitRepository sync permissions
  7. 8d agowerf3.0.2: build-log progress indices follow real start order
  8. 8d agowerf3.0.0-alpha.2: deploy flags restored, staged Dockerfile COPY fixes
  9. 9d agoNautobotPublic API constants and a widened cryptography range
  10. 11d agoNautobotREST API permission enforcement on related objects; job_kwargs required
  11. 11d agoNautobotSecurity-driven breaking API changes on the 2.4 branch
  12. 14d agoNautobotDependency updates mitigating CVEs

Frequently asked questions

What is the difference between Nautobot and werf?

They serve adjacent needs but don't currently overlap on shipped themes. Nautobot and werf are shipping at a similar cadence (velocity 5.0 vs 5.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is Nautobot better than werf?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. Nautobot and werf are shipping at a similar cadence (velocity 5.0 vs 5.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.

What are the best alternatives to Nautobot?

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

What are the best alternatives to werf?

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