← Back to home
Comparison · Analytics

tidyterra vs vellum

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

tidyterra vs vellum: at a glance

Featuretidyterravellum
SectorAnalyticsAnalytics
Velocity score0.05.0
Sparks · 30d00
Top themesgeospatial, terra, tidyverse, ggplot2r-graphics, rendering-engine, linting, accessibility
Last editorial update1h ago53m ago
WebsiteVisit →Visit →

What is tidyterra?

tidyterra finished wiring terra objects into the tidyverse, one verb family at a time.

tidyterra supplies tidyverse methods and ggplot2 geoms for terra's SpatRaster and SpatVector classes, so spatial objects can be manipulated with dplyr verbs and plotted without conversion. The 1.0.0 release in January 2026 set a hard ggplot2 4.0.0 floor and added broom-style generics — tidy(), glance() and required_pkgs() across SpatRaster, SpatVector, SpatGraticule and SpatExtent. The 1.1.0 and 1.2.0 releases since have filled in the remaining dplyr and tidyr verb surface for SpatVector.

Read the full tidyterra trajectory →

What is vellum?

vellum's bugs are now found by using it, not testing it — the downstream grammar is doing the QA.

The rendering engine shipped nine releases in the two weeks around the end of July, six of them on a single day. Almost every entry is a correctness fix in a capability that worked when drawn and failed when measured, or worked in isolation and failed in composition. The release notes are unusually forensic: each one states the mechanism, the observable symptom, and why the fix mirrors the draw path rather than reimplementing it.

Read the full vellum trajectory →

tidyterra vs vellum: editorial side-by-side

T
tidyterra
ANALYTICS
0.0

tidyterra finished wiring terra objects into the tidyverse, one verb family at a time.

◆ Current state

tidyterra supplies tidyverse methods and ggplot2 geoms for terra's SpatRaster and SpatVector classes, so spatial objects can be manipulated with dplyr verbs and plotted without conversion. The 1.0.0 release in January 2026 set a hard ggplot2 4.0.0 floor and added broom-style generics — tidy(), glance() and required_pkgs() across SpatRaster, SpatVector, SpatGraticule and SpatExtent. The 1.1.0 and 1.2.0 releases since have filled in the remaining dplyr and tidyr verb surface for SpatVector.

◆ Where it's heading

The package is converging on complete verb coverage rather than branching into new capability. 1.2.0 landed the grouping and nesting family — group_split, group_nest, nest_by, nest, nest_join, group_map, group_modify, reframe, cross_join, complete, expand — which is the last large gap between SpatVector and an ordinary data frame. Its cadence is set externally: releases track ggplot2 and dplyr version transitions, adopting arguments like .by as they stabilize upstream. The maintainer now states AI assistance explicitly for both documentation and generated methods.

◆ Prediction

With the verb surface close to complete, expect the next releases to track upstream ggplot2 and dplyr changes and to extend coverage to SpatRaster where methods currently exist only for SpatVector.

V
vellum
ANALYTICS
5.0

vellum's bugs are now found by using it, not testing it — the downstream grammar is doing the QA.

◆ Current state

The rendering engine shipped nine releases in the two weeks around the end of July, six of them on a single day. Almost every entry is a correctness fix in a capability that worked when drawn and failed when measured, or worked in isolation and failed in composition. The release notes are unusually forensic: each one states the mechanism, the observable symptom, and why the fix mirrors the draw path rather than reimplementing it.

◆ Where it's heading

The pivotal detail is stated outright in 0.6.3 — the first bug in the series found by using the engine from vellumplot rather than testing it in isolation. Every release since names the downstream as the source: the contrast rule's false positives, the lint rules that fired on all five sample plots, the keyed roundrect batch. A rendering engine with a real grammar built on top of it is now getting the integration coverage that unit tests structurally cannot provide, and the fixes are converging on one theme: the measurement path and the draw path must not drift.

◆ Prediction

Expect the release rate to fall as the vellumplot integration surface is exhausted, with remaining work concentrated in the lint rule set now that it is meant to gate builds rather than just inform.

Alternatives to tidyterra and vellum

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 tidyterra or vellum.

See all tidyterra alternatives → · See all vellum alternatives →

Recent activity from tidyterra and vellum

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

  1. 11d agovellumLinter grows to 20 rules and stops firing on every plot
  2. 13d agovellumAnimated SVGs no longer blink once and vanish or play in reverse
  3. 13d agovellumPick table now reports device pixels instead of two coordinate systems
  4. 14d agovellumContrast rule stops flagging every plot; gridlines become PDF artifacts
  5. 14d agovellumgrobwidth and grobheight now measure wrapped text, not the unwrapped line
  6. 14d agovellumKeyed roundrect becomes a real batch after downstream integration exposes it
  7. 1mo agotidyterraGrouping and nesting verbs arrive for SpatVector
  8. 5mo agotidyterra.by stabilizes across mutate, filter, slice and fill
  9. 6mo agotidyterra1.0.0 requires ggplot2 4.0 and adds broom-style generics
  10. 1y agotidyterraTest hotfix for CRAN
  11. 1y agotidyterramask_projection stops rasters wrapping around the globe
  12. 1y agotidyterraFactor levels combined across layers; scale limits truncate legends

Frequently asked questions

What is the difference between tidyterra and vellum?

They serve adjacent needs but don't currently overlap on shipped themes. vellum 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 tidyterra better than vellum?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. vellum 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 Analytics products to evaluate alongside.

What are the best alternatives to tidyterra?

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

What are the best alternatives to vellum?

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