Markets
Tunisia A Mediterranean country at the junction of Arab, African, and European trade networks, with a 23-year founder cohort created during the Ben Ali reform era now approaching succession simultaneously across six sectors.
0 Brands
Share
A Mediterranean country at the junction of Arab, African, and European trade networks, with a 23-year founder cohort created during the Ben Ali reform era now approaching succession simultaneously across six sectors.
Explore Brands by Location Interactive map showing brand locations across the Global South. 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 Sector
Clear
All Sectors Artisan Ceramics Artisan Crafts Artisan Foods Baby Care Beauty Personal Care Beauty Retail Beauty Services Beer Boutique Hospitality Color Cosmetics Confectionery Consumer Electronics Cured Meats Dairy Products Department Stores Dried Fruits & Nuts Electric Vehicles Fashion & Accessories Fermented Dairy Flexible Workspace Fragrances Furniture & Home Decor Gourmet Foods Grocery & Specialty Retail Halal Foods Herbal & Traditional Medicine Honey & Bee Products Hotels & Resorts Jewelry & Watches Kitchen Appliances Leather Goods Mineral Waters Natural Beauty Natural Foods Natural Supplements Olive Oil & Agriculture Packaged Beverages Packaged Snacks Pharmacy & Health Retail Private Education Processed Foods Professional Services Restaurants Skincare Spa Services Specialty Cheeses Spices & Condiments Spirits Sporting Goods Tea & Coffee Heritage Textiles & Fabrics Wellness Services Wine 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
website: feature.properties.website || '',
tier: feature.properties.contentTier || '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 = 'tunisia-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 πΉπ³
May 26, 2026
12 min read
Tunisia created AfricInvest β Africa's most active PE fund. It has never documented its own founder generation's succession situation.
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