Skip to content

How We Organise Indian Rivers — Zones, Types & Hierarchy

Every river in Nadikosh has an address — a precise location inside a taxonomy that tells you exactly what it is and where it belongs.

This page explains that taxonomy: what the zones are, how rivers are classified, and how the hierarchy works.


India has thousands of named rivers. Without structure, a database of rivers is just a list.

A consistent taxonomy means:

  • Every river has exactly one zone and one type — no ambiguity
  • A reader can predict where to find any river before they search
  • The database can be queried cleanly (give me all rivers in Kaveri zone, type major-tributary)
  • Maps and components can group and colour rivers automatically

India’s rivers are grouped into 9 major river zones, each anchored by a primary river system that defines the geographic and hydrological character of that zone.

ZonePrimary RiverKey States
🔵 Ganga ZoneGangaUttarakhand, UP, Bihar, West Bengal
🔵 Yamuna ZoneYamunaHimachal, Haryana, Delhi, UP
🔵 Sindhu ZoneIndus (Indian reaches)J&K, Ladakh, Punjab, Himachal
🔵 Brahmaputra ZoneBrahmaputraArunachal, Assam, Meghalaya
🔵 Godavari ZoneGodavariMaharashtra, Telangana, AP
🔵 Narmada ZoneNarmadaMP, Maharashtra, Gujarat
🔵 Mahanadi ZoneMahanadiChhattisgarh, Odisha
🔵 Krishna ZoneKrishnaMaharashtra, Karnataka, AP
🔵 Kaveri ZoneKaveriKarnataka, Tamil Nadu, Kerala

Think of it like a postal address — country, state, city.

Here, the address is:

Zone → River → Tributary

For example:

  • Kaveri ZoneKaveri (main stem)Harangi (a tributary of Kaveri)
  • Mahanadi ZoneMahanadi (main stem)Seonath (a tributary of Mahanadi)

Every river in Nadikosh has exactly this kind of address. You always know which “family” a river belongs to.


Every river in the database has one of four types:

TypeMeaningExample
main-stemThe primary river of a zoneKaveri, Mahanadi, Ganga
major-tributaryA large, well-known tributary of the main stemRamganga (Ganga), Tungabhadra (Krishna)
minor-tributaryA smaller named tributarySeonath (Mahanadi)
independentDrains directly to the coast or sea — not a tributary of any river in the DBNetravati, Periyar, Mandovi

Zone + Type together give every river a precise identity. For example:

  • Seonath = zone: mahanadi + type: minor-tributary
  • Netravati = zone: kaveri + type: independent
  • Kaveri = zone: kaveri + type: main-stem


The zone-and-type taxonomy maps directly to the folder and URL structure of the site:

  • Directoryour-rivers/
    • index.mdx — landing page (this section)
    • what-this-section-will-become.mdx
    • how-rivers-are-organised.mdx
    • the-data-schema.mdx
    • folder-and-page-structure.mdx
    • database-driven-design.mdx
    • live-and-dynamic-data.mdx
    • how-to-build-the-poc.mdx
    • roadmap.mdx
    • Directorykaveri-zone/ — L1 Zone
      • index.mdx zone overview page — auto-generated
      • Directorykaveri/ — L2 main-stem
        • overview.mdx
        • health.mdx
        • hydrology.mdx
        • ecology.mdx
        • governance.mdx
        • cultural-hook.mdx
        • misc.mdx
      • Directorynetravati/ — L2 independent river in Kaveri zone
        • overview.mdx
        • health.mdx
    • Directorymahanadi-zone/ — L1 Zone
      • index.mdx
      • Directorymahanadi/ — L2 main-stem
        • overview.mdx
      • Directoryseonath/ — L3 minor-tributary
        • overview.mdx
    • Directoryganga-zone/ stub — coming soon
    • Directoryyamuna-zone/ stub — coming soon
    • Directorysindhu-zone/ stub — coming soon
    • Directorybrahmaputra-zone/ stub — coming soon
    • Directorygodavari-zone/ stub — coming soon
    • Directorynarmada-zone/ stub — coming soon
    • Directorykrishna-zone/ stub — coming soon

If you are a contributor adding a river to Nadikosh, follow these steps:

  1. Identify the zone
    Look at where the river drains. Does it ultimately flow into one of the 9 major rivers?
    If yes → assign that river’s zone.
    If no (drains independently to the sea) → assign the geographically nearest zone.

  2. Assign a type
    Is it the primary river of the zone? → main-stem
    Is it a large, well-known river that flows into the main stem? → major-tributary
    Is it a smaller named river flowing into any river in the zone? → minor-tributary
    Does it drain directly to the coast? → independent

  3. Check for conflicts
    Does your classification feel geographically wrong?
    Does the river straddle two zones?
    If yes → flag it with taxonomy_note in the frontmatter and raise it for review before publishing.

  4. Place the folder
    Create the river’s folder inside the correct zone folder.
    Name the folder using the river’s lowercase English name with hyphens.
    Example: kaveri-zone/netravati/

  5. Fill the schema
    Set zone, river_type, and all 15 required frontmatter fields.
    See The Data Schema for the full field list.


Continue reading: The Data Schema →