← All work

Darust

A public archive of every recorded spelling of Punjab's 13,393 village names

Visit the site ↗darust.com

Darust
Fig. 01 — Darust

Darust is a public archive of how Punjab's village names are written. The land record, the census, Punjabi Wikipedia and a 1930 encyclopaedia often spell the same village differently, and nobody has the authority to say which is right. So Darust records every form with its source and its date, side by side, for all 13,393 villages it publishes. It's our own project, volunteered by the studio: we researched, designed and built all of it, from the data pipeline to the bilingual Punjabi and English site.

01 — At a glance

ProjectDarust (ਦਰੁਸਤ): a PIXIPACE volunteer project, dedicated to Mahinder Singh
Scale23 districts, 181 tehsils, 13,393 villages, 41,536 recorded claims
RecordsPunjab land record (Jamabandi), Census of India 2011, Wikidata / Punjabi Wikipedia, and Bhai Kahn Singh Nabha's Mahan Kosh (1930)
What we builtData pipeline, matching engine, search, villages table, a page for every village, Mahan Kosh index
StackNode.js data pipeline, static HTML, CSS and JavaScript, Playwright test gates, Vercel

02 — The problem

Ask what the correct spelling of a Punjab village's name is and there's no answer. The census gives every village a stable code but writes names only in Roman letters. The state's land record is the only government source that writes them in Gurmukhi, and nothing independent exists to check it against. India has no names authority for Punjabi place names.

The Darust 'Why' page: the village name Bhamabaddi written by the land record, Punjabi Wikipedia and the village sign, lined up letter by letter in eight columns, with slots 2 and 6 highlighted where they differ.
Fig. 02 — One village, three ways of writing it. Lined up letter by letter, the disagreement is two cells.

Take Bhamabaddi, in Sangrur tehsil. Every register agrees it's census village 039778. The land record, Wikipedia and the sign at the edge of the village all spell it differently. Darust doesn't pick a winner. It shows the evidence, and the site says so plainly:

We record the disagreement. We do not close it.

03 — Every village, one table

The Darust villages table: Amritsar district opened to Ajnala tehsil, with columns for the land record, the 2011 census, Punjabi Wikipedia and the Mahan Kosh, each in its own colour, and headers in Punjabi over English.
Fig. 03 — District, tehsil, village. Each record keeps its own colour down the whole sheet.

The villages page works as one tree. Open a district, open a tehsil, and its villages appear in place, one row per village and one column per record. There are no forms to fill in before you see data.

  • Punjabi order. Villages are sorted in true Gurmukhi alphabetical order with a collator we wrote ourselves, because the browser's own Punjabi sorting isn't usable.
  • Light enough to browse. The site loads one tehsil file at a time, never more than 72 KB, instead of the whole state.
  • Plain words. Cells say "same as the land record" or "more than one census line could be it", not internal matching codes.
  • Filters that mean something. Show only villages with a note on the writing, a census line, a Wikipedia article or a Mahan Kosh entry.

04 — A page for every village

The Darust page for Khadoor Sahib: the name in large Gurmukhi, a note that four different Gurmukhi spellings are on record, and each record listed with its source, date, link method and a link to the original.
Fig. 04 — Khadoor Sahib. Four Gurmukhi spellings on record, each with its source and a link to check it.

Every village gets its own page, and every spelling on it comes with who wrote it, when, and a link to see the original. When two records are joined, the page says how the link was made and calls it what it is: "a proposed link, not an assertion that these are the same record."

The page also leaves room for what hasn't been collected yet. Signboards and residents each have a section, shown empty rather than hidden. The residents' section asks, in Punjabi, "how do you write this village's name?", and the reply comes pre-filled with the village's identifiers so it's filed against the right row.

05 — Careful with the data

Joining four records across 13,000 villages is where an archive like this goes wrong quietly, so we audited our own work rather than trusting the totals.

  • We removed our own wrong links. An audit found the first matcher had made at least 913 provably wrong links. We rebuilt it to match on each village's hadbast number, refuse ties and report contested cases instead of guessing. The result had zero illegitimate collisions and 1,140 honest abstentions.
  • Locked with tests. Every confirmed false match is kept as a fixture, and the matcher has to pass it before any change ships.
  • Search that finds every village. The land record writes one Gurmukhi letter, ੜ, in two different Unicode forms, which left 11% of villages unfindable by typing their own name. We fixed it in the search key, without touching the stored text, and checked all 13,393 villages.
  • No false alarms. On a site about spelling disagreements, a false one is the worst error it can make. We found 39 villages whose page claimed a disagreement that was really just a revenue-subdivision letter, and brought that number to zero.

06 — A record from 1930

The Darust Mahan Kosh page: a table of village entries showing each name as the Mahan Kosh prints it, where it placed the village in 1930, what happened there, the matching village in today's land record, and a link to the scanned page.
Fig. 05 — 477 Mahan Kosh entries, each with its 1930 location and a link to the printed page.

The fourth record is the oldest. Bhai Kahn Singh Nabha's Mahan Kosh, first published in 1930, gives an entry to a village when something happened there: a Guru stayed, a gurdwara stands, a battle was fought. We worked through the digital edition's 3,872 scanned pages and turned each village entry into a dated record.

  • Read off the page, twice. The OCR text was wrong on 303 of 499 headwords, so every name was copied from the scan instead. It was then read a second time, blind. The two readings agreed on 495, and the other four were settled by looking at the page.
  • Every link challenged. Each proposed match to a present-day village was put through two separate skeptic passes, one on geography and one on alternatives. Any link either of them refuted went to an adjudicator.
  • Published honestly. Of 477 entries, 380 are tied to one village, 51 could be more than one, and 46 aren't found in today's land record. The page says which is which, and why.

07 — Built for Punjabi readers

Three phone screens: the Darust search page, the villages list as stacked cards with Punjabi labels, and the Khadoor Sahib village page.
Fig. 06 — Search, villages and a village page on a phone, with Punjabi navigation.

Many visitors are Punjabi speakers looking up their own village on a phone, so the phone is where the site switches to Punjabi. Below 640px the navigation and labels are in Gurmukhi, and the table turns into one card per village. Search takes Gurmukhi or English and finds a village by the census spelling, the Wikipedia spelling or a Mahan Kosh form.

Changes are checked by automated browser tests. They run the pages at several widths, in light and dark themes, and on phone sizes with touch. They check text contrast against what's actually painted behind it, the Punjabi sort order, tap-target sizes, sideways scrolling and every internal link.

08 — Built to grow

Darust is dedicated to Mahinder Singh, whose grandson started it. He knows how his village's name is said, and nobody ever asked him. The database is shaped around claims, not name fields, so anything about a village can be recorded later without a rebuild. The signboard and residents' sections are already on every page, waiting to be filled. For us, it shows what the studio does when the data is large, the sources disagree and the details matter.

Filed underData archiveBilingual Punjabi/EnglishSearchHeritageStatic site
← Previous

Weighbridge

Next →

Stitch with Gaani