spb/fabri-ka Public
Agrégateur de produits québécois — www.fabri-ka.com
HTML 57.9%
Python 18.6%
TypeScript 15.6%
CSS 7.8%
1{"directory_name": "Gaspésie Gourmande", "url": "https://gaspesiegourmande.com/", "region": "Gaspésie", "type": "food", "alive": true, "listing_url": "https://gaspesiegourmande.com/producteurs-transformateurs", "sitemap": "https://gaspesiegourmande.com/sitemap.xml", "entity_url_pattern": "/producteurs-transformateurs?id=NNN and /complices?id=NNN (query-string ids, custom CMS, not WordPress)", "estimated_count": 180, "notes": "Custom (non-WP) CMS; sitemap.xml returns 500 <url> entries mixing static pages, recipes, and producteur/complice profile links keyed by numeric id query param. Org self-reports ~180 member businesses (producteurs-transformateurs) plus separate 'complices' (retail/restaurant partners). Also publishes a downloadable PDF 'Grand Répertoire' (gaspesiegourmande.com/uploads/GG-Gamme-Repertoire-*.pdf) listing all member products - good fallback harvest source. Harvest: enumerate id= values on /producteurs-transformateurs and /complices, or parse the PDF."}2{"directory_name": "Saveurs du Bas-Saint-Laurent", "url": "https://saveursbsl.com/", "region": "Bas-Saint-Laurent", "type": "food", "alive": true, "listing_url": "https://saveursbsl.com/decouvrir/membres/ and https://saveursbsl.com/professionnels/repertoire/", "sitemap": "https://saveursbsl.com/wp-sitemap.xml", "entity_url_pattern": "/product/[slug]/ (WooCommerce product pages, 3140 entries across wp-sitemap-posts-product-1.xml + product-2.xml); also /membre-ca/[slug]/ (16 entries, staff bios not producers) and /partenaire/[slug]/ (32 entries, partners)", "estimated_count": 3140, "notes": "WordPress + WooCommerce site run by Table de concertation agroalimentaire du BSL. The real harvest value is the product catalog: 3140 individual product pages (confirmed via curl count of <loc> tags), each product page names its producer, so this is effectively a producer census disguised as a shop. The 'membre-ca' custom post type (16 items) is staff/personnel, not producer members - do not confuse with a producer list despite plausible naming."}3{"directory_name": "Zone Boréale", "url": "https://zoneboreale.com/", "region": "Saguenay-Lac-Saint-Jean", "type": "food", "alive": true, "listing_url": "https://zoneboreale.com/repertoire/", "sitemap": "https://zoneboreale.com/sitemap.xml -> https://zoneboreale.com/entreprises-sitemap.xml", "entity_url_pattern": "/entreprises/[slug]/", "estimated_count": 510, "notes": "Clean WordPress site, dedicated entreprises-sitemap.xml confirmed via curl with 510 <url> entries, all under /entreprises/[slug]/. Covers producers, processors, merchants, restaurants and agritourism businesses across SLSJ region (broader than pure food producers, but easy static crawl - highest-yield sitemap found in this sweep). Also has entreprises-category-sitemap.xml and entreprises-sector-sitemap.xml for faceted filtering."}4{"directory_name": "Créateurs de saveurs Cantons-de-l'Est", "url": "https://createursdesaveurs.com/", "region": "Estrie / Cantons-de-l'Est", "type": "food", "alive": true, "listing_url": "https://createursdesaveurs.com/repertoire-des-createurs/", "sitemap": "https://createursdesaveurs.com/sitemap.xml -> createurs-sitemap.xml", "entity_url_pattern": "/createurs/[slug]/", "estimated_count": 303, "notes": "Managed by CIBLE (Conseil de l'industrie bioalimentaire de l'Estrie). Confirmed 303 <url> entries in createurs-sitemap.xml via curl (org press describes 160+ core producer/processor members but the directory also includes markets, retailers, and IGA outlets that carry the brand, explaining the higher sitemap count). Clean WordPress static sitemap, straightforward crawl."}5{"directory_name": "Goûtez Lanaudière", "url": "https://www.goutezlanaudiere.ca/", "region": "Lanaudière", "type": "food", "alive": true, "listing_url": "https://www.goutezlanaudiere.ca/liste-membres/ and https://www.goutezlanaudiere.ca/detaillants/", "sitemap": "https://www.goutezlanaudiere.ca/sitemap_index.xml (no dedicated member/producer sitemap - only post/page/blogue/category)", "entity_url_pattern": null, "estimated_count": 150, "notes": "Run by Conseil de développement bioalimentaire de Lanaudière (CDBL) since 2008. The liste-membres and detaillants pages render as empty/placeholder ('0 résultats trouvés') on a static fetch - member cards are loaded client-side via JS/AJAX, so no crawlable URLs exist in the sitemap. Needs a headless browser (Playwright) to harvest. Estimated ~150 producers/processors per org descriptions. Fallback: downloadable PDF répertoire at /wp-content/uploads/2022/09/98674-CDBL_repertoir22-24_HR-formatsimple.pdf."}6{"directory_name": "Mauricie Gourmande", "url": "https://mauriciegourmande.com/", "region": "Mauricie", "type": "food", "alive": false, "listing_url": null, "sitemap": null, "entity_url_pattern": null, "estimated_count": 50, "notes": "DEAD as of this check: mauriciegourmande.com now returns a WP Engine 'Site Not Configured' 404 on every path including the homepage. The campaign (4th edition, ~50 agrotourism/gourmet businesses) appears to have been folded back into the main Tourisme Mauricie site (tourismemauricie.com), e.g. blog post tourismemauricie.com/blogue/toute-nouvelle-mauricie-gourmande (also 404'd on this check, may be a redirect artifact). Needs re-scouting to find current canonical directory URL, possibly under tourismemauricie.com."}7{"directory_name": "Goûtez AT (Abitibi-Témiscamingue)", "url": "https://goutezat.com/", "region": "Abitibi-Témiscamingue", "type": "food", "alive": true, "listing_url": "https://goutezat.com/repertoire/", "sitemap": "https://goutezat.com/sitemap_index.xml -> product-sitemap1..5.xml, emplacement-sitemap.xml", "entity_url_pattern": "/produit/[slug]/ (WooCommerce product pages, ~1000 across 5 sitemap files of ~200 each) and /marches-publics/[slug]/ (17 public-market location pages)", "estimated_count": 1000, "notes": "WordPress/WooCommerce online boutique model similar to Saveurs BSL: individual product pages (not producer profile pages) are the harvestable entity, each naming its producer. product-sitemap1.xml alone confirmed 200 entries via curl; site has product-sitemap1 through 5 (~1000 products total). Complements seasonal online store + public market directory."}8{"directory_name": "Le Goût de la Côte-Nord", "url": "https://legoutdelacotenord.ca/", "region": "Côte-Nord", "type": "food", "alive": true, "listing_url": "https://legoutdelacotenord.ca/artisans", "sitemap": "https://legoutdelacotenord.ca/sitemap_index.xml -> artisan-sitemap.xml", "entity_url_pattern": "/artisan/[slug]/", "estimated_count": 46, "notes": "Relaunched by the Table bioalimentaire Côte-Nord (TBCN). artisan-sitemap.xml confirmed 46 <url> entries via curl, clean WordPress static sitemap under /artisan/[slug]/. Also has a companion e-commerce boutique at boutique.legoutdelacotenord.ca (not checked for a separate sitemap)."}9{"directory_name": "Route des Saveurs de Charlevoix (Tourisme Charlevoix)", "url": "https://www.tourisme-charlevoix.com/quoi-faire/routes-et-circuits/route-des-saveurs/", "region": "Charlevoix", "type": "mixed", "alive": true, "listing_url": "https://www.tourisme-charlevoix.com/fr/route-des-saveurs", "sitemap": "https://www.tourisme-charlevoix.com/sitemap.xml", "entity_url_pattern": "/fr/entreprises/[slug]", "estimated_count": 80, "notes": "Association touristique de Charlevoix (ATR) manages the Route des Saveurs brand (80+ members per press: 35 restaurateurs, 31 producers, 20 processors), but there is no Route-des-Saveurs-specific URL segment - all Charlevoix tourism businesses (food and non-food alike, e.g. golf, cruises, kennels) share the single /fr/entreprises/[slug] pattern. Confirmed via curl: sitemap.xml has 1126 total <loc> entries, 520 of which are under /fr/entreprises/. Food/agritourism members must be filtered out via category taxonomy pages like /fr/thematiques/agrotourisme/producteurs-alcools-locaux and /fr/thematiques/agrotourisme/fromageries-laiteries which are also present as distinct sitemap URLs."}10{"directory_name": "Laurentides j'en mange", "url": "https://laurentidesjenmange.ca/", "region": "Laurentides", "type": "food", "alive": true, "listing_url": "https://laurentidesjenmange.ca/saveurs-dici", "sitemap": "https://laurentidesjenmange.ca/sitemap_index.xml -> member-sitemap.xml", "entity_url_pattern": "/membre/[slug]", "estimated_count": 85, "notes": "Run by Table de concertation agroalimentaire des Laurentides (TCAL). member-sitemap.xml confirmed 85 <url> entries via curl under /membre/[slug]. Clean WordPress static sitemap; also has selling_location-sitemap.xml and marche-sitemap.xml for markets/points of sale, and ville-sitemap.xml/type_de_membre-sitemap.xml taxonomy sitemaps useful for faceting by MRC/town and business type."}11{"directory_name": "La Montérégie, le Garde-Manger du Québec", "url": "https://gardemangerduquebec.ca/", "region": "Montérégie", "type": "food", "alive": true, "listing_url": "https://gardemangerduquebec.ca/membres-complices/", "sitemap": "https://gardemangerduquebec.ca/sitemap_index.xml (no dedicated membres-complices sitemap - only post/page/product/portfolio sitemaps)", "entity_url_pattern": "/membres-complices/[slug]/ (paginated listing, individual pages not present in any sitemap file)", "estimated_count": 150, "notes": "This appears to be the current incarnation of the older 'Au cœur de la Montérégie' / tourismecoeurmonteregie.ca brand - that legacy domain (tourismecoeurmonteregie.ca) returned HTTP 522 (Cloudflare origin timeout) on every path during this check and looks dead/migrated. gardemangerduquebec.ca robots.txt explicitly disallows several /monteregie-vf/ and 'Guide-gourmand-Monteregie' PDF paths, confirming this is the successor site (a Tastet-produced 'Guide gourmand Montéregie' PDF exists as a fallback source). The /membres-complices/ listing paginates (page 1, 2, ...) with individual member profile pages, but none of those profile URLs are exposed in any Yoast sitemap file - needs direct pagination crawl of the listing page rather than sitemap harvest. WordPress/WooCommerce (has product-sitemap.xml with only 2 shop-infrastructure URLs, not member products)."}12{"directory_name": "Arrêts Gourmands (Chaudière-Appalaches)", "url": "https://arretsgourmands.ca/", "region": "Chaudière-Appalaches", "type": "food", "alive": true, "listing_url": "https://arretsgourmands.ca/arrets-gourmands", "sitemap": "https://arretsgourmands.ca/sitemap.xml", "entity_url_pattern": "/arrets-gourmands/[slug]", "estimated_count": 184, "notes": "Successor branding to the older 'Créateurs de saveurs / Goûtez Chaudière-Appalaches' names found in search results - current live site is arretsgourmands.ca. Single flat sitemap.xml (not an index) with 839 total <loc> entries confirmed via curl; 184 of them are under /arrets-gourmands/[slug] (producers, cheese shops, farms, bakeries, restaurants). Remainder of sitemap is blog content, circuits, and legal pages."}13{"directory_name": "Goûtez-y! (Centre-du-Québec)", "url": "https://goutezy.com/", "region": "Centre-du-Québec", "type": "food", "alive": true, "listing_url": "https://goutezy.com/repertoire/", "sitemap": "https://goutezy.com/sitemap_index.xml -> entreprise-sitemap.xml", "entity_url_pattern": "/entreprise/[slug]/", "estimated_count": 140, "notes": "Centre-du-Québec regional agri-food identifier ('Goûtez-y!'). entreprise-sitemap.xml confirmed 140 <url> entries via curl under /entreprise/[slug]/. Also has entreprise_categorie_production-sitemap.xml, entreprise_categorie_transformat-sitemap.xml, marchand-sitemap.xml, certification-sitemap.xml taxonomy sitemaps for faceting."}14{"directory_name": "Croquez Outaouais", "url": "https://www.croquezoutaouais.com/", "region": "Outaouais", "type": "food", "alive": true, "listing_url": "https://www.croquezoutaouais.com/incontournables/les-marches-publics-de-loutaouais/ and https://www.croquezoutaouais.com/carte-interactive/", "sitemap": "https://www.croquezoutaouais.com/sitemap_index.xml -> entreprises-sitemap.xml", "entity_url_pattern": "/entreprises/[slug]/ (also mirrored under /en/entreprises/[slug]/ for English)", "estimated_count": 165, "notes": "Run by Table agroalimentaire de l'Outaouais (est. 1997). entreprises-sitemap.xml confirmed 165 <url> entries via curl (bilingual site so some slugs may duplicate across /en/ and root). Clean WordPress static sitemap; also has marche-sitemap.xml and categorie-entreprises-sitemap.xml."}15{"directory_name": "Conseil des métiers d'art du Québec (CMAQ) - répertoire des artisans", "url": "https://www.metiersdart.ca/", "region": "Province-wide", "type": "artisan", "alive": true, "listing_url": "https://www.metiersdart.ca/repertoire_artisan.php", "sitemap": "https://www.metiersdart.ca/sitemap.xml (2282 <loc> entries total, but individual artisan fiches are NOT enumerated in the sitemap - it's a server-side search form)", "entity_url_pattern": "no static per-artisan slug found; repertoire_artisan.php uses query params/section= filters (?section=boutique, ?section=mtl, ?section=maestria, ?section=qc) and presents results via search, not individual crawlable detail-page URLs visible from the sitemap", "estimated_count": 1500, "notes": "This is the largest and most important province-wide artisan directory found in this sweep - the CMAQ répertoire shows dropdown filters (craft type, material, region) suggesting on the order of 1500+ member artisans, but it is a search-driven directory (likely AJAX/PHP form POST), not a static crawlable list. Needs a headless browser or reverse-engineering of the search endpoint/API to harvest individual artisan records; the sitemap.xml (2282 URLs) mostly covers news/pages/prix content, not artisan profiles."}16{"directory_name": "Boutique Métiers d'art du Québec (online store)", "url": "https://www.boutiquesmetiersdart.ca/", "region": "Province-wide (physical stores in Québec City, Place Royale)", "type": "artisan", "alive": true, "listing_url": "https://www.boutiquesmetiersdart.ca/ (ARTISAN.E.S section)", "sitemap": "not checked (site rate-limited curl with HTTP 429; confirmed alive via browser-based fetch instead)", "entity_url_pattern": "/collections/[artisan-slug]", "estimated_count": 80, "notes": "Shopify-style online store exclusively for CMAQ-member artisans (100+ per marketing copy). Confirmed via browser fetch: dedicated per-artisan collection pages like /collections/alain-mailhot and /collections/anne-marie-chagnon, roughly 80+ distinct creators visible, organized by material (wood, ceramic, leather, metal, textile, glass, stone) and category. Site returned HTTP 429 to a plain curl request (bot/rate-limit protection) - use a browser-like fetch or throttled requests, and consider Shopify's own /products.json or /collections.json endpoints for structured harvest instead of scraping HTML."}17{"directory_name": "Fabrique 1840 (Simons)", "url": "https://www.simons.com/en/fabrique-1840--8737", "region": "Province-wide (Québec-majority, some pan-Canadian)", "type": "artisan", "alive": true, "listing_url": "https://www.simons.com/en/fabrique-1840/makers-a-z--8737-brands", "sitemap": null, "entity_url_pattern": "unknown - could not verify; brand collection pages likely at /en/fabrique-1840/[brand-slug] based on Simons site structure", "estimated_count": 50, "notes": "Simons' curated marketplace for ~50+ mostly-Québec independent designers/makers, launched 2018. Homepage and 'Brands A-Z' listing page both confirmed to exist via web search (title 'Brands A-Z | Fabrique 1840 | Simons'), but both simons.com and simons.ca returned HTTP 403 to every fetch attempt (curl and WebFetch) in this check - the site has anti-bot protection. Could not verify sitemap or exact per-brand URL pattern; needs a real browser session (e.g. Playwright with a realistic UA/cookies) to harvest the maker list."}18{"directory_name": "PME d'ici (formerly Créations d'ici) - national artisan/business annuaire", "url": "https://pmedici.ca/ (redirected from creationsdici.ca)", "region": "Province-wide", "type": "mixed", "alive": true, "listing_url": "https://creationsdici.ca/recherche/artisan (redirects to pmedici.ca equivalent)", "sitemap": "https://creationsdici.ca/sitemap.xml redirects/serves only 16 <loc> entries (mostly static partner pages) - individual artisan/business fiches are NOT in the sitemap", "entity_url_pattern": "/[city]/artisan/[id]-[slug] e.g. /quebec/artisan/561-resselfy, /joliette/artisan/289-bois-de-malu", "estimated_count": 150, "notes": "Self-described as 'le plus grand annuaire du Québec' (general Quebec business directory, not food/artisan-specific), with a dedicated /recherche/artisan search page listing per-city artisan fiches. Domain creationsdici.ca now 301-redirects entirely to pmedici.ca (rebrand). Sitemap.xml is essentially empty of entity pages (16 URLs, static content only) - the /[city]/artisan/[id]-[slug] listings appear to be generated dynamically per search/city and are not indexed in the sitemap; harvesting requires iterating the search UI by city/region rather than a static sitemap crawl. Lower priority than the food-specific regional directories above since it mixes non-artisan businesses too."}19{"directory_name": "Panier Québécois (corporate gifting service)", "url": "https://panierquebecois.ca/", "region": "Province-wide", "type": "mixed", "alive": true, "listing_url": null, "sitemap": "https://panierquebecois.ca/index.php/sitemap_index.xml (only post/page/category/author sitemaps, no product or vendor sitemap)", "entity_url_pattern": null, "estimated_count": 0, "notes": "Alive but NOT a public producer/artisan directory - it is a B2B corporate-gifting service that claims to work with 150+ Quebec producers/artisans internally to assemble custom gift boxes, but does not publish a browsable vendor list on the site. Low harvest value; excluded from priority list, included here only to document that this candidate was checked and ruled out."}20