03 · EloStore ecosystem
https://
Storefront network
elostore.pro and gtastore.pro
One codebase serves three storefronts: roubles, dollars and GTA. Each has its own currency, prices, payments, admin and SEO, and their data never mixes. Sitemaps list 112 URLs, the English keyword core holds 2,034 queries.
How the network grew
It started as one Russian shop. In one week of July it became a platform: language by domain, a storefront registry, a panel for each, the launch of elostore.pro and a third storefront, gtastore.pro.
Dates from the project's commits
elostore.ru
live
57 URLs in the sitemap · Yandex and Google
Panel
one for all data
elostore.pro
hidden from search
45 URLs in the sitemap · Google
Panel
one for all data
gtastore.pro
hidden from search
10 URLs in the sitemap · Google
Panel
one for all data
elostore.ru code
A panel for every storefront
The panel code is shared, but the domain picks the storefront, not a toggle someone will forget to flip one day. The menu is built from the registry: what a storefront lacks, its panel lacks too.
Sections and their sets are real, order rows are examples
Panel menu
- MainOverviewWaitlist
- SalesApplicationssharedOrdersDemo reviews
- EsportsTournamentsBroadcastTeammates
- MarketingGiveawaysBlogReviewsFunnel
- PeopleClientsUsersBoosterssharedPartners
- MessagesChatsSite chatOrder channelSupport
- MoneyFinancePayoutssharedPromo codesSurchargesshared
- SystemSecuritysharedAudit logsharedMonitoringshared
shared: one per brand: the booster team is shared
Orders
- #4821FACEIT 1,450 → 2,000 ELO4,190 ₽
- #4820Premier 12,000 → 15,0003,350 ₽
- #4818FACEIT level 7 → 105,870 ₽
- #4817Premier placement1,490 ₽
Orders from elostore.pro and gtastore.pro never show up here
SEO from absolute zero
Every storefront has its own keywords, landing pages and sitemap: 4,189 Russian queries and 2,034 English ones. After that a nightly pipeline pushes changes to search engines on its own.
Yandex Webmaster and Search Console data, review of 14.09.2026
4,189
queries
- буст cs2buy/cs2-boost
- буст эло фейситbuy/faceit-elo-boost
- калибровка premier cs2buy/premier-placement-boost
- сколько стоит буст фейситlearn/skolko-stoit-faceit-boost
- как поднять рейтинг в cs2learn/kak-podnyat-reyting-v-cs2
2,034
queries
- faceit boostbuy/faceit-boost
- faceit level 10 boostbuy/faceit-level-boost
- cs2 premier boostbuy/premier-boost
- faceit levels elolearn/faceit-levels
- is boosting safelearn/is-boosting-safe
1,588 commercial · 440 informational · 6 branded
The task
The Russian storefront was working, the next step was the western market in dollars and the neighbouring GTA market.
The task: not to copy the project but to teach one codebase to be several shops without mixing their data.
In one week of July a single shop became three: storefront and language by domain, a registry of differences, a panel of its own for each. After that every storefront got its own copy, its own keywords and its own sitemap.
Slice by layer
- Interfacethe pixel
- Two storefronts with different language and price display, a GTA 6 / CS2 store switcher
- Logicmoney and rules
- A storefront registry with feature flags, a separate price ladder for the west, payment providers per storefront
- Dataschema and migrations
- Orders, reviews and settings scoped by storefront, each admin sees only its own
- Serverdeploy and operations
- Storefront resolved by Host, the gtastore landing built by scripts with hashed assets
- Securitythe kernel
- Scope comes from the domain, not a UI toggle, Consent Mode v2 denied by default
Storefront registry

All storefront differences are declared in one registry instead of being scattered through the code as conditions.
- 01A storefront: domains, locale, currency, payment providers, analytics, feature flags: promo codes, giveaways, tournaments, blog, demos, skins
- 02The storefront is resolved by Host, each admin lives on its own subdomain and sees only its data
- 03Scope comes from the domain, not a toggle: someone will forget to flip a toggle one day and delete someone else's order
Pricing for the western market

The dollar storefront got its own economics rather than a currency conversion.
- 01A separate rate ladder: the western market has its own price level, converting would give away margin
- 02Dollar amounts are integers rounded up, otherwise cents get lost between invoice and order
- 03Payments per storefront: on .pro a card via lava.top or crypto via NOWPayments
gtastore.pro

A third storefront for GTA Online with a GTA 6 waitlist: a static landing, while sign-in, dashboard and booster applications run on the shared platform with their own admin.
- 01Plain HTML without a framework, built by scripts: hashed asset names, generated blog and documents
- 02JSON-LD Organization and WebSite, Consent Mode v2 denied by default: a western audience, the way it must be in the EEA
- 03A store switcher in the header links GTA and CS2
Result
The home page weighs about 95 KB of HTML.
Admin panels

Every storefront has its own panel on its own subdomain. The code is shared, the data and the menu are not.
- 01The domain decides the panel's storefront: the choice is not kept in a state someone can forget to switch
- 02The menu is built from the registry: 26 sections on the Russian storefront, 23 on the English one, 19 on GTA, a closed section does not open by direct link either
- 03Brand-wide sections are marked: applications, boosters, payouts, surcharges, security, audit log and monitoring
- 04An account lives on its storefront: the same email on .ru and .pro means two different accounts
Result
A new storefront is one registry entry, and the compiler shows where its behaviour is still undefined.
English, not a word-for-word copy

The English storefront was written for a western client rather than translated line by line.
- 01Titles, the first screen and FAQ questions are written separately for Google and a western audience
- 02Prices follow a ladder of the western market instead of converting roubles at the exchange rate
- 03Orders from .pro go only to English-speaking boosters, options without English-speaking people are off there
- 04Reviews appear in the author's language and translated into the storefront's language
- 05A browser checks live pages and catches any Russian line on the English storefront
Result
A third of the English sitemap was in Russian, 15 URLs of 42. Now Russian pages return 404 on .pro.
SEO from absolute zero

Every storefront has its own keywords, landing pages and sitemap, watched over by a nightly pipeline.
- 01The core: 4,189 Russian queries for Yandex and Google and 2,034 English ones for Google, each query mapped to a target page
- 02Markup for the product, price, rating from reviews, questions and breadcrumbs, the snippet price comes from the live grid
- 03Each domain has its own sitemap, edit dates from commits, hreflang only on pages with a pair
- 04Every night: an audit of live pages on three storefronts, IndexNow, a Webmaster recrawl, sitemaps to Search Console
- 05Paused sections leave the sitemap and return 404, so search never leads to something taken off sale
Result
Yandex impressions grew 13 times: from ~2 to ~27 thousand a week over July and August.
Stories from production
Incident 01 · open
Google zeroed out .pro impressions
From 23.08 elostore.pro impressions in Google dropped and stayed at zero from 29.08. Indexing, robots and canonicals were fine.
Incident 02 · open
Knowledge outside anyone's head
A second brand had to be launched by another team without reinventing the architecture or getting merged with the first one in search.
Stack
Next.js 15 · Host-based storefronts · NOWPayments · HTML · Python build · JSON-LD · IndexNow · Search Console · Playwright · Consent Mode v2 · GA4