A collaborative, Markdown-first tech radar for tracking technology decisions and their evolution over time.
This tech radar helps teams track technology choices across four dimensions:
- Quadrants: Techniques, Platforms, Tools, Languages & Frameworks
- Rings: Adopt (recommended), Trial (promising), Assess (exploring), Hold (avoid)
- History: Every ring change is tracked with dates, rationale, and PRs
- Automation: Scripts for creating, updating, and importing blips
View the radar: Live Demo (replace with your GitHub Pages URL)
- Node.js 20+
- npm
# Clone the repository
git clone https://github.com/your-org/tech-radar.git
cd tech-radar
# Install dependencies
npm install
# Build the radar
npm run build
# Preview locally
npm run preview
# Open http://localhost:8080Use the interactive CLI:
npm run new-blipThis will:
- Prompt for blip details (name, quadrant, ring, etc.)
- Generate a Markdown file with proper front-matter
- Include a content template to fill in
Example output: radar/tools/playwright.md
When a technology moves to a different ring:
npm run update-status "blip-name"This will:
- Find the blip by name
- Prompt for new ring and rationale
- Auto-update the status (Moved In/Out)
- Append a history entry with today's date
Every blip can track its journey through the rings:
history:
- date: '2023-06-01'
ring: Assess
note: Initial evaluation
pr: '#123'
- date: '2024-01-15'
ring: Trial
note: Successful pilot
pr: '#456'
- date: '2024-09-15'
ring: Adopt
note: Production-ready
pr: '#789'This history:
- Powers the timeline on detail pages
- Generates the changelog page
- Provides audit trail for decisions
tech-radar/
βββ radar/ # All blips (Markdown files)
β βββ techniques/
β βββ platforms/
β βββ tools/
β βββ languages-and-frameworks/
βββ src/
β βββ schemas.ts # Zod schemas for validation
βββ tools/
β βββ generate.ts # Main build script
β βββ new-blip.ts # Create new blip
β βββ update-status.ts # Update blip ring/status
β βββ import-history.ts # Bulk import from CSV
β βββ validate.ts # Validate all blips
βββ radar.config.yml # Configuration (quadrants, rings, colors)
βββ package.json
βββ README.md
| Script | Description |
|---|---|
npm run build |
Generate static radar site in dist/ |
npm run preview |
Start local server on port 8080 |
npm run validate |
Validate all blip schemas |
npm run type-check |
TypeScript type checking |
npm run new-blip |
Interactive blip creator |
npm run update-status <name> |
Update blip ring/status |
npm run import-history <csv> |
Bulk import history |
Every blip must include:
---
name: Technology Name # Required
quadrant: Techniques # Required: Techniques | Platforms | Tools | Languages & Frameworks
ring: Adopt # Required: Adopt | Trial | Assess | Hold
status: New # Required: New | Moved In | Moved Out | No Change
summary: One-line description # Optional but recommended
tags: [tag1, tag2] # Optional
owners: [@team, @person] # Optional
since: '2024-01-15' # Optional (YYYY-MM-DD)
last_reviewed: '2024-09-01' # Optional (YYYY-MM-DD)
links: # Optional
- title: Official Docs
url: https://example.com
history: # Optional but recommended
- date: '2024-01-15'
ring: Assess
note: Initial evaluation
pr: '#123'
---See CONTRIBUTING.md for detailed guidelines.
- Create or update a blip file in
radar/ - Run
npm run validateto check schema - Run
npm run buildto test locally - Create a PR with rationale and evidence
- Get review from CODEOWNERS
- Merge β auto-deploys to GitHub Pages
Edit radar.config.yml:
rings:
- Adopt
- Trial
- Assess
- Hold
colors:
Adopt: "#5ba300"
Trial: "#009eb0"
Assess: "#c7ba00"
Hold: "#e09b96"Edit radar.config.yml and adjust CODEOWNERS:
quadrants:
- Techniques
- Platforms
- Tools
- Languages & Frameworks- Contributing Guide - How to add/update blips
- Automation Scripts - Detailed script documentation
- Thoughtworks BYOR - Original inspiration
- Zalando Tech Radar - Visualization library
Markdown Files β Zod Validation β Generator β Static Site
(radar/) (tools/generate.ts) (dist/)
dist/index.html- Main radar visualizationdist/tech/<slug>/index.html- Detail page per blipdist/changelog.html- Recent changesdist/data/entries.json- Data for Zalando radar.js
Uses Zalando's radar.js (MIT license):
- D3-based interactive visualization
- Quadrants and rings configurable
- Movement indicators (new, moved in/out)
On every push to main:
- GitHub Actions validates blips
- Builds the static site
- Deploys to GitHub Pages
Configure in Settings β Pages β Source: GitHub Actions
npm run build
# Deploy dist/ to your hosting provider- TypeScript - Type-safe tooling
- Zod - Runtime validation
- Markdown - Source of truth
- Zalando radar.js - Visualization
- GitHub Actions - CI/CD
- GitHub Pages - Hosting
MIT
- Thoughtworks Technology Radar - Original concept
- Zalando Tech Radar - Visualization library
- QIWI Tech Radar - Inspiration for automation