Sectors
Cured Meats Artisanal cured meat products showcasing unique regional flavor profiles and traditional preservation techniques. These producers combine time-honored curing and smoking methods with local spice blends, creating distinctive charcuterie that expresses regional culinary heritage.
0 Brands
Share
Tradition as Moat Regional curing techniques create products that can't be easily replicated, offering natural competitive protection. Charcuterie markets are expanding globally as consumers seek authentic, artisanal alternatives to industrial meat products.
Explore Brands by Location Interactive map showing brand locations across emerging markets. View regional clusters.
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 Halal Heritage Brand Legacy Dynasty Premium Positioning Regional Icon Second Generation Vertically Integrated Growth signals are documented in Brandmine's Intelligence Layer reports.
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 = 'cured-meats-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)
*/}}Related Insights πΏπ¦
March 26, 2026
15 min read
Three reform waves, three founder cohorts, converging succession pressure. South Africa's post-apartheid founders are ageing out with almost no succession infrastructure.
March 25, 2026
13 min read
A generation of founders forged by five crises in thirty years is entering the succession window. One buyer already holds four Argentine brands.