← Back to home
Comparison · Analytics

OpenCTI vs vellumwidget

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

OpenCTI vs vellumwidget: at a glance

FeatureOpenCTIvellumwidget
SectorAnalyticsAnalytics
Velocity score6.36.3
Sparks · 30d01
Top themesthreat-intelligence, stix, data-model, ingestionr-graphics, interactive-widgets, declarative-interaction, shiny
Last editorial update16h ago2d ago
WebsiteVisit →Visit →

What is OpenCTI?

OpenCTI spends a release unblocking queues and hardening upserts

7.260817.0 is a fix release. The most consequential item is malformed STIX messages nacking forever and blocking worker queues indefinitely — a stall in the ingestion path rather than a display bug. Alongside it: upsert clearing an existing createdBy when incoming confidence is higher, draft upserts crashing on existing attack patterns, OTP handling in the stream middleware, and case template relation authorization. Score fields were added to threat actor groups, intrusion sets and malware.

Read the full OpenCTI trajectory →

What is vellumwidget?

vellumwidget is dissolving its own API: interaction now lives in the plot spec, not the widget call.

vellumwidget compiles a vellum scene or a vellumplot plot into a self-contained client-side htmlwidget with hover, select, brush, lasso, pan/zoom and export, and no server round-trip. The two-way Shiny story is complete: interactions surface as reactive inputs keyed by output id, and vellumwidget_proxy() drives an already-rendered widget from the server without re-rendering it. The last two releases are fidelity work rather than new surface, calibrating hit-testing from the rendered positions of marks and rendering the raster base image at 2x for HiDPI screens.

Read the full vellumwidget trajectory →

OpenCTI vs vellumwidget: editorial side-by-side

O
OpenCTI
ANALYTICS
6.3

OpenCTI spends a release unblocking queues and hardening upserts

◆ Current state

7.260817.0 is a fix release. The most consequential item is malformed STIX messages nacking forever and blocking worker queues indefinitely — a stall in the ingestion path rather than a display bug. Alongside it: upsert clearing an existing createdBy when incoming confidence is higher, draft upserts crashing on existing attack patterns, OTP handling in the stream middleware, and case template relation authorization. Score fields were added to threat actor groups, intrusion sets and malware.

◆ Where it's heading

The platform's feature energy went into the connector catalog and integrations rework in July, and the releases since have been consolidating: mass operations on relation times, shareable saved searches, and now a pass over ingestion robustness. Adding score to more entity types continues the slow enrichment of the data model that runs underneath the feature work.

◆ Prediction

Given score arriving on three entity types in one release, expect it to keep spreading across the data model, and the queue-blocking class of bug to draw more worker-side hardening.

V
vellumwidget
ANALYTICS
6.3

vellumwidget is dissolving its own API: interaction now lives in the plot spec, not the widget call.

◆ Current state

vellumwidget compiles a vellum scene or a vellumplot plot into a self-contained client-side htmlwidget with hover, select, brush, lasso, pan/zoom and export, and no server round-trip. The two-way Shiny story is complete: interactions surface as reactive inputs keyed by output id, and vellumwidget_proxy() drives an already-rendered widget from the server without re-rendering it. The last two releases are fidelity work rather than new surface, calibrating hit-testing from the rendered positions of marks and rendering the raster base image at 2x for HiDPI screens.

◆ Where it's heading

The direction is declarative. 0.7.0 removed the interaction-intent arguments from as_widget() outright, dropping the signature from roughly 36 arguments to 24 and moving highlight, filter and cross-filter into vellumplot's spec via select_point(), condition() and filter_by(). Each release since has enacted more of that compiled spec on the frozen scene, from conditional encodings to single-view filters to cross-view cross-filtering, leaving the widget as an interpreter of the plot rather than a configuration surface of its own. The bug fixes track the same theme the engine's do: measured geometry and rendered geometry must not drift.

◆ Prediction

The notes name the remaining hold-outs explicitly, saying hover_mode, crosshair, legend_click, select_mode and the tooltip-appearance arguments remain only until their spec equivalents land, so the next releases most likely move those into vellumplot and shrink as_widget() further. The scale binds flagged as following the filter work are the other stated next step.

Alternatives to OpenCTI and vellumwidget

Other Analytics 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 OpenCTI or vellumwidget.

See all OpenCTI alternatives → · See all vellumwidget alternatives →

Recent activity from OpenCTI and vellumwidget

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

  1. 1d agoOpenCTIMalformed STIX no longer blocks worker queues indefinitely
  2. 4d agoOpenCTILTS branch gets the security backport: access-scoped streams, dependency sweep
  3. 7d agoOpenCTIMass operations can now edit relation start and stop times
  4. 11d agoOpenCTISaved searches and dashboard filters become shareable and reusable
  5. 15d agoOpenCTIData sanity operations can be stopped mid-run
  6. 17d agovellumwidget2x raster base image for HiDPI, and exact element hit-testing
  7. 20d agoOpenCTIIntegrations experience reworked around the new catalog, plus draft approval workflows
  8. 23d agovellumwidgetInteraction moves into the plot spec; as_widget() sheds a third of its arguments
  9. 1mo agovellumwidgetAxis-aware zoom re-ticks the axes instead of scaling the whole scene
  10. 1mo agovellumwidgetSelectable native SVG text, and crisp canvas redraw when zooming raster
  11. 1mo agovellumwidgetServer-side proxy drives a rendered widget without re-rendering it
  12. 1mo agovellumwidgetShiny input read-back, and keyboard plus screen-reader access by default

Frequently asked questions

What is the difference between OpenCTI and vellumwidget?

They serve adjacent needs but don't currently overlap on shipped themes. OpenCTI and vellumwidget are shipping at a similar cadence (velocity 6.3 vs 6.3, 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 OpenCTI better than vellumwidget?

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

What are the best alternatives to OpenCTI?

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

What are the best alternatives to vellumwidget?

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