IT.
All writing

bazito: rent price guides for 11 countries, computed from live listings

Ilya Trapeznikov Published

bazito.app now has a guides section. Until now the site had no page of ordinary prose: everything was arithmetic over the listings corpus. That is right for a catalogue, but people arrive with a question before they arrive with a filter. “How much is a flat in Tbilisi” is a question, not a database query.

The guides answer such questions with numbers. One rule: every number in a text maps to a field of a snapshot of the feed, and the snapshot date is stated in the article. The snapshot of September 2, 2026 held 28,958 listings, 28,283 of them with a known place.

The guides section on bazito: a list of articles, each with a headline, a summary carrying its listing count, and a date
All twelve cards carry the same snapshot date, and the listing count a piece rests on is stated in its headline.

What is inside

Rent by city, with the median, the spread and breakdowns by bedrooms, property type and district:

  • Da Nang and Nha Trang: 2,423 and 1,077 listings, medians around $840 and $614.
  • Tbilisi and Batumi: 2,144 and 786 listings, medians $1,000 and $750.
  • Yerevan: 1,702 rental listings and 1,367 second-hand goods.
  • Phuket: a median of 65,000 THB with quartiles at $974 and $5,285, and why the spread is that wide.
  • Montenegro: Budva, Kotor, Podgorica.
  • Serbia: Belgrade has 287 rental listings and 6,813 second-hand ones, the largest goods section on the site.
  • Cyprus: Limassol at a median of 2,000 EUR, the most expensive rental section on the site.
  • Bali: renting a place and buying a second-hand scooter.

And four texts that are not about one place:

The Phuket guide page: an opening with the median and quartiles, then a table by property type with listing counts and medians in baht and dollars
Villas and flats on Phuket are two different markets: 193 listings at a median of 130,000 baht against 142 at 50,000. The overall median of 65,000 describes neither, and the guide says so.

How it is built

The section is produced by the same static generator as the catalogue: Markdown in RU and EN pairs, and an article is published only when both languages exist, otherwise the page would have no hreflang pair. Links from articles into the catalogue are validated at build time against the addresses that exist in that build: a link to nowhere stops the build and names the article.

A separate tool takes the numbers for the articles: it walks the page tree and writes each node’s aggregates to JSON, in the section’s currency and in dollars. The file sits next to the articles so a reviewer can see where a median came from. Before the build, texts pass a check: em dashes, the vocabulary of machine-written prose, length, presence of the snapshot date, share of Cyrillic in the English version.

The English guides are not translations of the Russian ones but second texts on the same numbers: an English-speaking reader compares cities in dollars, a Russian-speaking one asks about deposits and channels.

Catalogue and guides are refreshed on different schedules: catalogue pages daily, guides about once a month with an updated date. That way a number in an article does not turn into a lie within a week.

The project as a whole, with its architecture, decisions and figures, is on the bazito case page.