Interactive visualization of our technology landscape and strategic choices, inspired by Thoughtworks Technology Radar.
π Live Demo: https://techradar.bazaar-engineering.com/
- Manual Mode: Curated strategic technology selections
- AI Mode: Comprehensive AI-discovered technologies from GitHub repositories
- Toggle instantly between modes with one click
- Modern glassmorphism design with dark/light themes
- Real-time search and filtering by quadrant
- Bidirectional highlighting between radar and list
- Click any technology for detailed information
- SVG export for presentations
- Keyboard shortcuts (T: theme, E: export)
Visit https://techradar.bazaar-engineering.com/ in your browser.
# Serve locally
python3 -m http.server 8000
# Open http://localhost:8000- Adopt - Proven and recommended for production use
- Trial - Worth pursuing in select projects
- Assess - Worth exploring and evaluating
- Hold - Proceed with caution, consider alternatives
- Techniques - Practices, methodologies, processes
- Tools - Development tools, testing frameworks, DevOps tools
- Platforms - Infrastructure, cloud services, databases
- Languages & Frameworks - Programming languages and frameworks
Edit data.json:
{
"name": "Kotlin",
"quadrant": 3,
"ring": 0,
"description": "Proven and recommended for Android and JVM development."
}Field reference:
quadrant: 0=Techniques, 1=Tools, 2=Platforms, 3=Languagesring: 0=Adopt, 1=Trial, 2=Assess, 3=Hold
- Find the technology in
data.json - Change the
ringvalue - Update the
descriptionto explain why - Commit and push
- Be specific about why a technology is in that ring
- Keep descriptions concise (1-3 sentences)
- Focus on strategic context, not just features
- Update quarterly or when major decisions are made
The AI mode automatically scans GitHub repositories and generates a comprehensive technology radar.
cd data-etl
# Install dependencies
pip3 install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env and add GITHUB_TOKEN and OPENAI_API_KEY
# Edit config/config.yaml with your organization name
# Run scanner
cd src
python main.py --limit 100 # Start with 100 repos for testing- Scans all repositories in your GitHub organization
- Detects technologies from files, languages, and dependencies
- Uses AI to classify by domain (mobile, backend, infrastructure, etc.)
- Analyzes usage patterns and temporal trends
- Automatically classifies into Adopt/Trial/Assess/Hold rings
- Generates two files:
data.ai.json- Sanitized (safe for public GitHub Pages)data.ai.full.json- Full metadata (internal use, gitignored)
The dual-file system protects internal data:
| File | Public Safe? | Commit to GitHub? |
|---|---|---|
data.json |
β Yes | β Yes |
data.ai.json |
β Yes (sanitized) | β Yes |
data.ai.full.json |
β No (has repo names, usage stats) | β No (gitignored) |
For detailed ETL documentation, see data-etl/README.md
The toggle switch is in the top-right header. Click to switch between:
- Manual: Strategic, curated view from
data.json - AI: Comprehensive, auto-discovered view from
data.ai.json
Data reloads instantly when toggled.
βββ index.html # Main page
βββ styles.css # Styling and themes
βββ radar.js # Interactive radar logic
βββ data.json # Manual curated data
βββ data.ai.json # AI-generated (public, sanitized)
βββ data-etl/ # AI scanner (see data-etl/README.md)
- Push to GitHub
- Go to Settings β Pages
- Select
mainbranch β Save - Access at
https://username.github.io/repo-name
- Add CNAME record in your DNS pointing to
username.github.io - Create
CNAMEfile in repo with your domain - Enable HTTPS in GitHub Pages settings
Radar not loading:
- Use a local server (not
file://) - Hard refresh:
Cmd+Shift+R(Mac) orCtrl+Shift+R(Windows)
Toggle not switching data:
- Clear browser cache with hard refresh
- Check both
data.jsonanddata.ai.jsonexist
Invalid JSON:
- Validate at jsonlint.com
- Common: missing commas or comma after last entry
AI scanner failing:
- Verify tokens in
.env - Start with
--limit 50for testing - Check
data-etl/README.mdfor detailed troubleshooting
- Edit
data.json - Commit:
"Add Kotlin to Adopt ring" - Open pull request
- Fork repository
- Create feature branch
- Submit pull request
- Design inspired by Thoughtworks Technology Radar
- Built with Vanilla JavaScript, CSS3, SVG
- AI-powered by OpenAI GPT-4o-mini
- Scans GitHub repos using PyGithub
Made for engineering teams who care about their technology stack β€οΈ