Challenge
The Tashkent City Hokimiyat is the administration of Uzbekistan's capital. tashkent.uz is the official entry point for residents and visitors: decisions and news of the city and district administrations are published here, and public services and reference tools start here. The audience could not be broader, from students to pensioners, on any device and any connection.
City information was scattered. News lived on one resource, electronic services on a dozen departmental sites, and district administrations ran their pages each in their own way, with different layouts, navigation and tone. A resident who needed a utilities account number or a nursery place for a child started from a search engine, often without knowing the official name of the service: people search for proof of residence or where to pay for water. The Tashkent City Administration portal had to bring all of this into one window.
A government portal has no non-target audience. It serves a student with a new smartphone, a pensioner with a budget phone on a slow connection and a person with impaired vision. Accessibility was therefore an architectural requirement rather than a checklist item: large type, contrast schemes and sound semantics had to work in every template, not in a separate simplified version.
The editorial scale was unusual too. Tashkent speaks Uzbek in two scripts, Russian and English, which means four equal versions, each with its own URLs. Twelve districts mean twelve editorial teams, each needing its own feed, announcements and contacts under shared navigation. Separate sites would have to be updated twelve times, so the city needed one platform that staff can run without developers.
Load needed attention of its own. A city portal peaks on bad news: a water outage, heavy snow, closed streets. Those are exactly the hours when the site must open quickly and reliably, including on a phone and a slow mobile connection, because that is when people genuinely need it.
Solution
We assembled the portal as a single window on the city. At the top sits what people come for most often: news, reference tools and popular services. Below are the sections where they stay longer: events, the Salom Tashkent guide, opportunities for residents, open data and city projects. Navigation is the same at every level, district sections included, so anyone who has worked out the home page does not have to learn it again.
A district switcher in the header shows the news, administration details, press office and contacts of the chosen district. District editors run their feeds inside the shared system, and all four language versions are edited in one tabbed interface. Switching language keeps the visitor on the same page.
The front end runs on Next.js and renders pages on the server, while content is served by a Django REST Framework back end. All twelve district portals are the same application on their own subdomains. Images are resized to the screen and served as WebP, and on a phone the portal has its own order of blocks and large tap targets.
One window for public services
Popular services such as residence registration, nursery applications, tax clearance certificates and self-employed registration sit on the home page, and the rest form a catalogue with plain descriptions. To receive a service, the portal routes people to my.gov.uz, and the Reference section finds a utilities account, a mahalla or a postcode.
News, events and citizen requests
The “Tashkent speaks” feed combines city, district and utilities news, the latter pulled from the Xalq Nazorati service. “Tashkent shows” gathers video and photos, the events calendar sorts listings into 15 categories, and “Tashkent listens” leads to the virtual reception and reference phone numbers. The 1066 and 1055 hotlines appear at the top of the city and district home pages.
Twelve districts on one core
Every district got its own portal on a subdomain, chilonzor.tashkent.uz, yunusobod.tashkent.uz and ten more, yet all of them run on a shared application. A district keeps its own news, hokim, press office and contacts, while navigation and design are common, so a template update reaches all twelve at once.
City data on the home page
The home page draws on city systems instead of duplicating them: weather and PM2.5 levels from air.tashkent.uz, figures from 12 sections of the open data portal such as population, passenger numbers and air quality, and services of the Graphite geoportal, including a lift age map, NDVI and a road accident heat map.
Accessibility and four languages
The low-vision mode is a setting of the main portal rather than a separate version: font size, contrast and black-and-white colour schemes, and the option to hide images. Interface and content run in four versions, Russian, English, Latin-script Uzbek and Cyrillic-script Uzbek, and every version has its own URLs for search.
The Salom Tashkent city guide
Beyond administration, the portal answers what there is to see in the city: its history, the TV tower, Chorsu bazaar, Hotel Uzbekistan and other places marked on the map. The Opportunities section explains everyday procedures, from registering an inheritance to getting a work patent, and is built from the same cards as the rest of the portal.
Results
The project's key outcomes in numbers.
- 12District portals
Every district administration runs on one platform with shared navigation and its own news, leadership and contacts.
- 4Language versions
Russian, English, Latin-script Uzbek and Cyrillic-script Uzbek, each with its own page addresses.
- 60Days to launch
From the first prototype to the public release: two months of work by designers and front end and back end developers.
- WCAGAccessibility mode
Font size, colour schemes and hidden images are built into the main portal rather than split off into a separate version.
Project tech stack
The stack we used to build the solution for the client's task.
- Python
- Django
- Django REST Framework
- PostgreSQL
- Redis
- Docker
- Nginx
- Linux
- HTML5
- CSS3
- TypeScript
- React
- Next.js
- Sass
Ready to become the next case?
Tell us about your task — a manager will assemble the team, calculate the estimate and send a proposal within the first hour after the request. No obligations, no drip campaigns.


