Skip to main content

linux-genealogy Overview

linux-genealogy is a local-first website and dataset modeling the family tree of Linux distributions — which distro forked from which, when, and how — rendered as an interactive D3 force-directed graph and published as a section of aptlantis.net.

Who it's for

Both the operator (as a maintained reference dataset) and site visitors researching distro lineage — the page embeds JSON-LD structured metadata and proper title/description tags, so it's built to be a citable reference, not just an internal tool.

The core concept

Source scrapes (Wikipedia "List of Linux distributions", Wikidata)

▼ compile-graph.py
data/linux-genealogy/linux-genealogy-graph.json ──▶ js/linux-genealogy-graph-data.js


linux-genealogy.html (D3 force-directed graph, JSON-LD metadata)

+ linux-genealogy-expanded.jsonl (flattened JSONL export)
+ linux-distros-reference.md (generated markdown reference catalog)

The source material is refreshingly literal: the repo contains raw scraped Wikipedia and Wikidata markdown dumps (List of Linux distributions - Wikipedia - 20260522_205959.md, Wikidata List of Linux distributions - ... .md) alongside compile-graph.py, which turns that scraped material into the graph JSON the D3 visualization actually renders. This is genuinely the same graph visualizer referenced by aptlantis_net's feature set (src/features/linux-geneology/) — the dataset and generation scripts here are the source of truth that project consumes.

Why this shape

A force-directed graph is a natural fit for genealogy data — it lets fork relationships and clustering (distro "families") emerge visually rather than needing a hand-laid-out tree. Keeping the raw scraped source markdown in the repo (rather than only the processed JSON) means the provenance chain from "what Wikipedia said" to "what node exists in the graph" is auditable, which matters for a reference dataset that other people might cite.