How we put 3 million Telegram channels on one map
The map places 3 million public Telegram channels by what they are about. Here is every step from a channel’s profile to a dot on your screen, as of the 10 October 2026 version.
1. What do we read about each channel?
Only its public profile: title, topics, category and description. Topics carry 60% of the weight and the description 40%, because descriptions are often padded with contacts, ad prices and links. A channel without a description is placed by its topics alone. Posts, comments and subscriber lists are not read.
2. How does a profile become a position?
A multilingual language model turns each profile into a long list of numbers that describes its subject: a “meaning vector”. Profiles about the same thing get similar vectors even when they share no words or are written in different languages. These are the same vectors our semantic search uses.
3. How do hundreds of dimensions fit on a flat map?
A meaning vector has hundreds of dimensions, a screen has two. We flatten them with UMAP, a method that keeps each channel's close neighbours close. The 0.1% most extreme channels on each edge are trimmed so that a handful of odd profiles do not squeeze everyone else into a corner. The layout is computed once per version of the map.
4. Who writes the area labels?
Nobody, and no AI either. The map is cut by position into 25, 250 and 2,500 areas. Each area is named after the one or two topics that are most typical of it compared with the rest of the map. If 60% or more of its channels write in one language other than English, the language is added to the label, as in “recipes / cooking · ru”.
5. Why does the map open instantly?
The browser never downloads the whole map. Dots come in tiles of up to 4,096 channels, 8 bytes per dot, about 32 KB per tile. The first tile holds the largest channels; smaller ones load as you zoom into an area. Everything is drawn on the graphics card with WebGL 2, so panning and zooming stay smooth.
Are channel names sent to the browser?
No. Tiles carry only a position, a category, a language and a subscriber band. Which channel stands behind a dot is kept on our server. Names arrive one area at a time: channels with 1M+ subscribers are labelled as soon as you zoom in a little, and from zoom level 4 we send the 20 largest channels in view. That keeps the map light and means the catalog cannot be copied in one file.
How should distances be read?
Close means similar. Far apart means different, but not “opposite”: flattening keeps neighbours, not long distances. The axes mean nothing either: there is no left–right politics or up–down popularity. Read the map by neighbourhoods, not by coordinates.
If the model is multilingual, why do languages cluster?
Because channels in one language talk about their own cities, celebrities, schools and news. The model puts “local news in Moscow” next to other Russian local news, not next to local news in Lagos. On this version 75.1% of Russian-language channels and 77.9% of Chinese-language channels sit in neighbourhoods dominated by their own language. Topics that travel well, like crypto, gaming or English learning, mix languages freely. See the language islands.
- Built from the 10 October 2026 snapshot of the TGScope catalog: 3 million public Telegram channels.
- 25 regions, 250 topics and 2,500 sub-topic labels; 257 tiles in total.
- A new layout is a new version. Positions from different versions are not comparable, so links to a place on the map stay valid until the next version.