Sectors
Beauty Retail Multi-brand beauty retailers curating cosmetics, skincare, fragrance, and wellness products across physical and digital channels. These destination retailers combine editorial curation with expert service to build destination shopping experiences.
4 Brands
Share
Curated Discovery Beauty retailers serve as discovery platforms for emerging brands, giving local consumers access to diverse product ranges while building loyalty through knowledgeable staff and personalized recommendations.
Explore Brands by Location Interactive map showing brand locations across emerging markets. Use proximity search, view regional clusters, and explore nearby brands.
Interactive map is temporarily unavailable in your region. We're working on a China-compatible solution.
Tier
Clear
All Brands Resilient Profiled Listed Market
Clear
All Markets Abkhazia Argentina Armenia Azerbaijan Bahrain Bangladesh Brazil Cambodia Canada Chile China Colombia Côte d'Ivoire Cuba Egypt Ethiopia Georgia Ghana India Indonesia Iran Jordan Kazakhstan Kenya Kyrgyzstan Laos Lebanon Malaysia Mexico Mongolia Morocco Mozambique Myanmar Nepal Nigeria North Korea Pakistan Palestine Peru Philippines Russia Saudi Arabia Senegal Serbia Singapore South Africa Sri Lanka Taiwan Tanzania Thailand Tunisia Turkey United Arab Emirates Uzbekistan Vietnam Attribute
Clear
All Attributes Artisanal Excellence Award Winning Crisis-Tested Emerging Voice Founder-Led Founder-Owned Heritage Brand Legacy Dynasty Premium Positioning Regional Icon Second Generation Vertically Integrated Signals
PREMIUM
Export Ready Scale Ready Succession Ready
Unlock exclusive premium access to filter by Growth Signals
Resilient Brands Russia's #1 beauty retailer: ₽155.5B revenue on 38 stores. Second-place L'Etoile has 890. The difference is a 700-person in-house tech team.
Yekaterinburg, Sverdlovsk 🇷🇺 russia Russia uae United Arab Emirates
beauty-retail Beauty Retail
founder-owned Founder-Owned crisis-tested Crisis-Tested regional-icon Regional Icon award-winning Award Winning Yekaterinburg Sverdlovsk Russia
LVMH wrote off €210M and walked away. The manager it left behind bought the chain for nothing — then delivered the first profit in 23 years.
russia Russia
beauty-retail Beauty Retail
founder-owned Founder-Owned premium-positioning Premium Positioning crisis-tested Crisis-Tested Moscow Russia
Profiled Brands Built Mongolia's beauty retail rails — 50+ stores, 264 brands — then took Asia's longest-running Yves Rocher franchise from its largest rival.
mongolia Mongolia
beauty-retail Beauty Retail natural-beauty Natural Beauty color-cosmetics Color Cosmetics
founder-owned Founder-Owned crisis-tested Crisis-Tested regional-icon Regional Icon premium-positioning Premium Positioning legacy-dynasty Legacy Dynasty second-generation Second Generation Ulaanbaatar Mongolia
Near-bankrupt in 2009, founder dead in 2013, Western brands gone in 2022 — L'Etoile rebuilt each time. Now 1,600 stores across six countries.
russia Russia kazakhstan Kazakhstan uzbekistan Uzbekistan uae United Arab Emirates
beauty-retail Beauty Retail
founder-owned Founder-Owned heritage-brand Heritage Brand premium-positioning Premium Positioning crisis-tested Crisis-Tested second-generation Second Generation Moscow Russia
website: feature.properties.website || '',
tier: feature.properties.arcStatus || 'basic'
}));
this.loading = false;
// Update hero brand count
const heroCount = document.getElementById('hero-brand-count');
if (heroCount) {
const brandWord = this.brands.length === 1 ? 'brand' : 'Brands';
heroCount.innerHTML = this.brands.length + ' ' + brandWord;
}
console.log('Loaded ' + this.brands.length + ' brands for ' + taxonomyType + ': ' + termSlug);
} catch (error) {
console.error('Error loading brand data:', error);
this.brands = [];
this.loading = false;
}
// Initialize filters from URL parameters
const params = new URLSearchParams(window.location.search);
if (params.has('search')) this.search = params.get('search');
if (params.has('country')) this.country = params.get('country');
if (params.has('tier')) this.brandTier = params.get('tier');
if (params.has('website')) this.hasWebsite = params.get('website') === 'true';
// Watch for filter changes and update URL (debounced for search)
let searchTimeout;
this.$watch('search', () => {
clearTimeout(searchTimeout);
searchTimeout = setTimeout(() => this.updateURL(), 300);
});
this.$watch('country', () => this.updateURL());
this.$watch('brandTier', () => this.updateURL());
this.$watch('hasWebsite', () => this.updateURL());
},
updateURL() {
const params = new URLSearchParams();
if (this.search) params.set('search', this.search);
if (this.country) params.set('country', this.country);
if (this.brandTier) params.set('tier', this.brandTier);
if (this.hasWebsite) params.set('website', 'true');
const newURL = params.toString()
? window.location.pathname + '?' + params.toString()
: window.location.pathname;
window.history.pushState({}, '', newURL);
},
get activeFilterCount() {
let count = 0;
if (this.search) count++;
if (this.country) count++;
if (this.brandTier) count++;
if (this.hasWebsite) count++;
return count;
},
get filteredBrands() {
return this.brands.filter(brand => {
const matchesSearch = !this.search || brand.name.toLowerCase().includes(this.search.toLowerCase());
const matchesCountry = !this.country || brand.countryCode === this.country;
const matchesTier = !this.brandTier || brand.tier === this.brandTier;
const matchesWebsite = !this.hasWebsite || brand.website;
return matchesSearch && matchesCountry && matchesTier && matchesWebsite;
});
},
get sortedBrands() {
return [...this.filteredBrands].sort((a, b) => {
let aVal, bVal;
if (this.sortBy === 'founded') {
aVal = a.founded || 0;
bVal = b.founded || 0;
} else if (this.sortBy === 'tier') {
const tierOrder = { 'complete': 3, 'partial': 2, 'basic': 1 };
aVal = tierOrder[a.tier] || 0;
bVal = tierOrder[b.tier] || 0;
} else if (this.sortBy === 'country') {
aVal = a.country || '';
bVal = b.country || '';
} else if (this.sortBy === 'city') {
aVal = a.city || '';
bVal = b.city || '';
} else {
aVal = a.name || '';
bVal = b.name || '';
}
if (this.sortDirection === 'asc') {
return aVal > bVal ? 1 : aVal < bVal ? -1 : 0;
} else {
return aVal < bVal ? 1 : aVal > bVal ? -1 : 0;
}
});
},
get visibleCount() {
return this.filteredBrands.length;
},
get uniqueCountries() {
return [...new Set(this.brands.map(b => b.countryCode).filter(c => c))].sort();
},
getCountryName(code) {
const countryNames = {
'ru': 'Russia',
'cn': 'China',
'mn': 'Mongolia',
'et': 'Ethiopia',
'in': 'India'
};
return countryNames[code] || code.toUpperCase();
},
clearAllFilters() {
this.search = '';
this.country = '';
this.brandTier = '';
this.hasWebsite = false;
},
removeFilter(filterName) {
if (filterName === 'search') this.search = '';
else if (filterName === 'country') this.country = '';
else if (filterName === 'tier') this.brandTier = '';
else if (filterName === 'website') this.hasWebsite = false;
},
sortTable(column) {
if (this.sortBy === column) {
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
} else {
this.sortBy = column;
this.sortDirection = (column === 'founded') ? 'desc' : 'asc';
}
},
downloadCSV() {
const headers = ['Brand', 'City', 'Country', 'Founded', 'Website', 'Tier'];
let csv = headers.join(',') + '\n';
this.sortedBrands.forEach(brand => {
const rowData = [
this.escapeCSV(brand.name),
this.escapeCSV(brand.city || '—'),
this.escapeCSV(brand.country || '—'),
this.escapeCSV(brand.founded ? String(brand.founded) : '—'),
this.escapeCSV(brand.website || '—'),
this.escapeCSV(brand.tier)
];
csv += rowData.join(',') + '\n';
});
const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement('a');
const url = URL.createObjectURL(blob);
const today = new Date().toISOString().split('T')[0];
let filename = 'beauty-retail-directory-' + today;
if (this.activeFilterCount > 0) {
filename += '-filtered';
}
filename += '.csv';
link.setAttribute('href', url);
link.setAttribute('download', filename);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
},
escapeCSV(str) {
if (!str) return '';
const comma = String.fromCharCode(44);
const quote = String.fromCharCode(34);
const newline = String.fromCharCode(10);
if (str.includes(comma) || str.includes(quote) || str.includes(newline)) {
return quote + str.replace(new RegExp(quote, 'g'), quote + quote) + quote;
}
return str;
}
}" class="directory-table-container">
Search:
Country:
Tier:
With Website
Clear all
Loading...
Country
All countries
Brand Tier
All Brands Resilient Profiled Listed
With Website
Brand
City
Country
Year
Website Tier
Loading... No brands found matching your criteria. Visit
— Resilient
Profiled
Listed
End of Directory Listing (Hub-only feature)
*/}}
Coming Soon
Premium Feature: CSV Export CSV export is available to our premium members! This feature allows you to export your filtered search results for offline analysis, presentations, or integration with your own tools. Premium membership includes unlimited CSV exports across all directories.
Close