This document describes the JSON schema used for all roadmap data files in DevRoadmaps.
All roadmap files are located in the roadmaps/ directory. Each roadmap has its own JSON file (e.g., frontend.json, backend.json).
{
"title": "Roadmap Title",
"description": "Brief description of the roadmap",
"icon": "emoji",
"categories": ["fundamentals", "intermediate", "advanced", "tools"],
"nodes": [...]
}
| Field | Type | Required | Description |
|---|
title | string | Yes | Display name of the roadmap |
description | string | Yes | Short description shown on the card |
icon | string | Yes | Emoji icon for the roadmap |
categories | string[] | Yes | Ordered list of category names |
nodes | Node[] | Yes | Array of topic nodes |
{
"id": "unique-kebab-case-id",
"title": "Node Title",
"icon": "emoji",
"category": "fundamentals",
"description": "What this topic covers",
"difficulty": "Beginner",
"resources": [...],
"children": ["next-node-id"]
}
| Field | Type | Required | Description |
|---|
id | string | Yes | Unique kebab-case identifier |
title | string | Yes | Display name of the topic |
icon | string | Yes | Emoji icon |
category | string | Yes | Must match one of the root categories |
description | string | Yes | Brief explanation of the topic |
difficulty | string | Yes | "Beginner", "Intermediate", or "Advanced" |
resources | Resource[] | Yes | Array of 2-4 free learning resources |
children | string[] | No | IDs of child/next nodes |
{
"title": "Resource Title",
"url": "https://example.com",
"type": "docs",
"free": true
}
| Field | Type | Required | Description |
|---|
title | string | Yes | Name of the resource |
url | string | Yes | Valid HTTPS URL |
type | string | Yes | "docs", "video", "course", or "tool" |
free | boolean | Yes | Must be true (paid resources not accepted) |
| Category | Color | Description |
|---|
fundamentals | Purple | Core concepts and basics |
intermediate | Blue | Intermediate-level topics |
advanced | Pink | Advanced and specialized topics |
tools | Yellow | Tools, services, and platforms |
| Type | Icon | Description |
|---|
docs | ๐ | Documentation or written guide |
video | ๐ฅ | Video tutorial |
course | ๐ฏ | Full course |
tool | ๐ง | Tool or software |
- Create
roadmaps/your-roadmap.json following the schema above
- Add an entry to
roadmaps/index.json
- Update the roadmap table in
README.md
- Test by opening
index.html locally
- Submit a pull request
All roadmap JSON files are validated during CI. Ensure:
- Valid JSON syntax
- All required fields present
- Unique node IDs (no duplicates)
- Valid URLs for all resources
- Categories match the root
categories array