Skip to content

Repository files navigation

Thoughtworks Technology Radar Volumes

CI Workflow Refresh Workflow Renovate enabled

Note

This repository is a personal project and is not officially affiliated with Thoughtworks

A CLI and complete collection of datasets for the popular Thoughtworks Technology Radar, including all archived volumes

Datasets

How to use

There are a few ways you can use to view the interactive technology radar

  1. My own hosted radar with enhancements - radar.setchy.io
  2. via my catalogue - setchy.io/radars
  3. Thoughtworks hosted radar - radar.thoughtworks.com
  4. self-hosted BYOR radar - thoughtworks/build-your-own-radar

Available data formats

The technology radar datasets are provided in three formats; CSV, JSON and a combined Google Sheets document.

Important

When using either the CSV or JSON data formats, please make sure to use the the GitHub RAW file URL (eg: Volume 34 CSV)

How are the datasets updated?

The CSV, JSON and Google Sheets datasets are automatically checked for any updates weekly. See the Data Pipeline section for how they are generated.

Note

Thoughtworks typically publish a new technology radar volume twice per year.

Data notes

  • Canonical ring naming: Thoughtworks renamed the "Hold" ring to "Caution" in Volume 34 (Apr 2026). Across all output formats (CSV, JSON, Google Sheets) the ring is reported using the canonical name caution, so the same ring is consistently named across the full dataset history.
  • Missing descriptions: Blips in Volumes 1-14 often have an empty description. This is not a data-processing gap — the source pages genuinely contain no description for those entries. Volumes 15+ always include descriptions.

Command Line Interface (CLI)

Getting Started

pnpm i && pnpm start help

The CLI runs directly on Node's native TypeScript support (Node 24+, no build step required). pnpm start is shorthand for node src/index.ts. Additional scripts:

  • pnpm build — compile to dist/ with tsc
  • pnpm typecheck — run tsc --noEmit without emitting
  • pnpm lint / pnpm lint:check — format/lint with Biome

Usage

Usage: tech-radar-volumes [options] [command]

A CLI tool to fetch and process ThoughtWorks Tech Radar data

Options:
  -V, --version     output the version number
  -h, --help        display help for command

Commands:
  fetch             group commands for fetching/ingesting data
  volumes [type]    generate publication volumes in specified format(s).
                    Inputs: requires `data/master.json`.
                    Output: generated volumes will be saved in `volumes/*`.
  search [options]  search master dataset for a keyword (defaults to name and
                    description)
  filter [options]  filter master dataset by volume, quadrant, ring or status
  stats [options]   show statistics for the master dataset
  validate [options] check the master dataset for data quality issues
  help [command]    display help for command

Examples:
  $ tech-radar-volumes
  $ tech-radar-volumes fetch links
  $ tech-radar-volumes fetch data
  $ tech-radar-volumes volumes csv
  $ tech-radar-volumes stats --by=quadrant -o json
  $ tech-radar-volumes search -k react
  $ tech-radar-volumes search -k "test cafe" -o json
  $ tech-radar-volumes filter -v 10 -q "languages-and-frameworks" -o csv
  $ tech-radar-volumes stats --by=volume -o table
  $ tech-radar-volumes help volumes
  $ tech-radar-volumes help

Subcommands

Note

Commands that operate on existing data (search, filter, stats, volumes) require a populated data/master.json file. Generate it with tech-radar-volumes fetch data.

volumes
Usage: tech-radar-volumes volumes [options] [type]

generate publication volumes in specified format(s).
Inputs: requires `data/master.json`.
Output: generated volumes will be saved in `volumes/*`.

Arguments:
  type        type of report to generate (choices: "all", "csv", "json",
              "google-sheets", default: "all")

Options:
  -h, --help  display help for command
fetch
Usage: tech-radar-volumes fetch [options] [command]

group commands for fetching/ingesting data

Options:
  -h, --help      display help for command

Commands:
  links           fetch blip page links from sitemap
  data            fetch detailed blip history and write data/master.json
  all             run links, data and generate volumes
  help [command]  display help for command
search
Usage: tech-radar-volumes search [options]

search master dataset for a keyword (defaults to name and description)

Options:
  -k, --keyword <keyword>  keyword to search for
  -f, --field <field>      specific field to search (name, quadrant, ring,
                           description)
  -v, --volume <volume>    filter by volume number or name
  -o, --output <format>    output format: text|json|jsonl|csv|table (default:
                           "text")
  -h, --help               display help for command
filter
Usage: tech-radar-volumes filter [options]

filter master dataset by volume, quadrant, ring or status

Options:
  -v, --volume <volume>      filter by volume number or name
  -q, --quadrant <quadrant>  filter by quadrant
  -r, --ring <ring>          filter by ring
  -s, --status <status>      filter by status (new|moved in|moved out|no change)
  -o, --output <format>      output format: text|json|jsonl|csv|table (default:
                             "text")
  -h, --help                 display help for command
stats
Usage: tech-radar-volumes stats [options]

show statistics for the master dataset

Options:
  -b, --by <group>       group stats by: volume|quadrant|ring|all (default:
                         "all")
  -o, --output <format>  output format: text|json|jsonl|csv|table (default:
                         "text")
  -h, --help             display help for command

Data Pipeline

The datasets are produced by a single TypeScript CLI that fetches the radar sitemap, scrapes each blip's timeline, and regenerates every volume from the combined dataset:

┌──────────────────────────────────────────────────────────────────────┐
│                         DATA PIPELINE OVERVIEW                       │
│                                                                      │
│                        thoughtworks.com/radar                        │
│                              │                                       │
│                              ▼   fetch sitemap                       │
│  ┌──────────────────┐  (regex + sort)  ┌──────────────────┐          │
│  │    Radar Sitemap │ ─────────────────▶│   search-links   │          │
│  │       .xml       │                   │      .json       │ ~1,938   │
│  └──────────────────┘                   └────────┬─────────┘  links  │
│                                                  │                  │
│                                                  ▼  per blip        │
│                                     ┌───────────────────────┐        │
│                                     │  extractBlipTimeline  │        │
│                                     │  fetch + parse        │        │
│                                     │  (cheerio DOM scrape) │        │
│                                     └───────────┬───────────┘        │
│                                                 ▼                   │
│                              ┌────────────────────────┐  ~3,309     │
│                              │     search-data.json   │   rows      │
│                              │  (combined master set) │  34 volumes │
│                              └───────────┬────────────┘             │
│                                          ▼                          │
│                      ┌───────────────────┼───────────────────┐      │
│                      ▼                   ▼                   ▼      │
│               ┌──────────────┐   ┌──────────────┐   ┌──────────────┐│
│               │  CSV × 34    │   │  JSON × 34   │   │Google Sheets ││
│               └──────────────┘   └──────────────┘   └──────────────┘│
│                                                                      │
│   Weekly GitHub Action → fetch all → lint → automated PR             │
└──────────────────────────────────────────────────────────────────────┘

About

CLI and complete collection of Thoughtworks Technology Radar datasets (JSON, CSV and Google Sheets)

Topics

Resources

Stars

19 stars

Watchers

2 watching

Forks

Sponsor this project

Used by

Contributors

Languages