Overview
Jahan — Persian for “world” — is a way to wander the
tree of life instead of studying a chart of it. You begin at the root,
“Life”, and move down through kingdoms, phyla, classes, orders,
families and genera until you reach a single species. Every node is a
card: a photo, a common name, a scientific name.
The whole thing is navigable from the keyboard, works in dozens of
languages, and is completely free. It's live at
jahan.life.
The ideas it's built on
Navigation, not a maze
Existing tools (OneZoom, Lifemap) lean on zoom-and-pan, which gets disorienting fast. Jahan takes the opposite bet, inspired by neal.fun's “Size of Life”: linear, predictable movement. Up goes to the parent, down into the children, left and right between siblings — the whole tree navigable from the keyboard.
“You are here” in the tree of life
The phylogeny view frames a species by its relatives — ancestors, siblings, and notable cousins. Tiger and lion are siblings; tiger and cheetah are cousins. It reads as a family tree rather than an abstract diagram.
Interestingness as a ranking
A clade can have hundreds of thousands of children. Rather than dump them all, Jahan scores each by iNaturalist observations, whether it has an image and a common name, and species rank — so the branches you see first are the ones worth seeing.
The orphaned-taxa problem
Real-world taxonomy is messy: hundreds of thousands of species hang directly off high-level ranks where they don't belong. The API filters and sorts by rank priority to keep the descent through the tree coherent.
Where the data comes from
There's no single database of all life, so Jahan builds one — merging
several open sources into one clean, deeply-linked tree of roughly
4.5 million nodes and 47 languages.
- Wikidata dumps
- The primary taxonomy backbone — scientific names, ranks, parent hierarchy, images, Wikipedia links, and cross-reference IDs (iNaturalist, GBIF, NCBI). Parsed from compressed JSON dumps with Node worker threads.
- NCBI Taxonomy
- The reference taxonomic hierarchy, merged in to give the tree a clean, authoritative spine.
- Wikipedia extracts
- Longer per-species synopses across many languages, parsed straight from Wikipedia dumps.
- iNaturalist
- Photos and — crucially — observation counts, which become a popularity signal for deciding which organisms are interesting enough to surface.
- Wikimedia Commons
- Imagery, resolved at build time from Commons file names to direct URLs at multiple sizes for fast, responsive loading.
How it's built
A two-tier data pipeline
The heavy, multi-source merge and enrichment runs offline in PostgreSQL. The result is flattened into a query-optimised SQLite table and shipped to Cloudflare D1 at the edge — so serving a node is a single fast query, not a pile of joins.
Blue-green data releases
New data is imported into a standby D1 database and then swapped live, giving zero-downtime releases of a dataset that spans millions of nodes.
3D on the edge
The navigator is a WebGL canvas (Three.js via Threlte) with a tweened camera panning between levels and custom raycasting for interaction — served from Cloudflare with Smart Placement so the Worker sits next to its database.
Pronunciation & languages
Scientific names are hard to say, so Jahan speaks them via Cloudflare Workers AI and Deepgram's Aura-2 voices, with common names and descriptions in dozens of languages and full RTL support.
Stack
SvelteKit 2Svelte 5TypeScriptThree.js / ThrelteTailwind CSSCloudflare PagesCloudflare D1 (SQLite)Workers AI · Deepgram TTSPostgreSQL (staging)Drizzle ORM
Take a walk through the tree of life.