ÉconomieProgramme partenaire (agences et freelances seniors)

Programme partenaire (agences et freelances seniors)

Surface publique : /network/partners. Decision fondatrice : ADR 0014. Ce programme ne verse aucune commission. Il n'a donc ni ledger, ni table, ni cron, ni ligne de payout. C'est le fait le plus important de cette page…

Surface publique : /network/partners. Decision fondatrice : ADR 0014.

Ce programme ne verse aucune commission. Il n'a donc ni ledger, ni table, ni cron, ni ligne de payout. C'est le fait le plus important de cette page, et c'est aussi pourquoi elle est courte.

Les chiffres du parrainage ne sont PAS repris ici. Ils vivent dans affiliate.md, sous la garde pnpm docs:claims, et une page qui les recopierait creerait une seconde source de verite.


Ce que le programme echange

Ce que le partenaire recoitCe qui le porte dans le code
Une fiche publique dans l'annuaire agencies ou freelancersagency / freelancer dans listing-types.ts : services, location, hourlyRateCents, avis, offre speciale
Les demandes entrantes des marchands sur cette fichePOST /api/marketplace/leads, intent: hire | contact, Reply-To = le marchand, trace ListingEvent.CONTACT_CLICK
Un acces delegue dans l'organisation du clientOrganizationMember (owner / admin / member / viewer) + le namespace studio.*, distinct de agency.* (ADR 0013)
L'intelligence pour auditer un prospect avant de pitcherStore Graph + /intelligence/inspect
Ce que le partenaire NE recoit pasPourquoi c'est ecrit ici
Une part du revenuAucun ledger ne la porte, et en creer un rouvre un calcul de liability. Cf. ADR 0014, alternatives ecartees
Un palier d'acces anticipeAucun feature-flag par partenaire n'existe
Un Slack priveIl n'y a pas de Slack. La communaute est Discord
Une certification, un test techniqueLa revue est humaine : un admin lit les etudes de cas
Un creneau co-marketing reservableRien ne le planifie. Ca part d'une demande

Ces cinq lignes sont publiees sur /network/partners, dans une section « Ce que ce programme n'est pas ». Elles y sont parce qu'elles y ont ete vendues pendant des mois : une absence ecrite ne se remet pas silencieusement dans une roadmap.

Le parcours reel, de bout en bout

/network/partners  →  NetworkApplyForm (program: "agency")
                      3 champs + brief (min. 20 caracteres)
                          │
                          ▼
       POST /api/network/applications
       1. ligne NetworkApplication  ← la lead est sauve ICI, d'abord
       2. e-mail best-effort vers MARKETPLACE_ADMIN_EMAIL
       3. 502 seulement si AUCUN des deux n'a marche
                          │
                          ▼
       /admin/revenue/network-applications
       statut : pending → contacted → accepted | declined
                          │
                          ▼
       fiche publiee dans /marketplace/agencies ou /freelancers

Deux choses a savoir sur ce parcours, parce qu'elles ont deja coute :

  1. L'ordre d'ecriture est deliberé (growth-web/0211). La ligne part avant l'e-mail. Avant ca, une panne Resend ou un MARKETPLACE_ADMIN_EMAIL non pose (les deux valent "" par defaut) laissait tomber une lead commerciale en affichant un ecran de succes.
  2. Rien n'est automatique apres le formulaire. Il n'y a pas de relance, pas de SLA tenu par du code, pas de notification au candidat. La promesse publique est donc « revue manuelle, reponse par e-mail », et pas un delai. La page annoncait « deux semaines » quand la FAQ de la home annoncait « 2-3 jours ouvres » pour le meme formulaire.

La faiblesse assumee : l'annuaire demarre a une fiche

content/marketplace/agencies/ contient un fichier : boostecom-agency.json, ownedByBoostecom: true. Un candidat qui clique « Parcourir les agences » nous voit nous.

La FAQ publique le dit, sans chiffre (un compte se perimerait au premier partenaire accepte). C'est la limite reelle de l'offre : la valeur d'un annuaire croit avec son remplissage. Les quatre filtres que la page annoncait autrefois (region, verticale, langue, expertise technique) n'existent pas non plus, et AGENCY_FIELDS n'en porte aucun.

Suivi : backlog/growth-web/0631.

Ce qui empeche cette page de re-deriver

src/test/affiliate-terms-match-the-ledger.test.ts lit les six catalogues et refuse tout pourcentage ou toute duree absente de src/config/affiliate.ts. Le sous-arbre marketingPages.network.partners n'est pas exempte : il ne peut contenir aucun pourcentage. Les deux chiffres visibles sur la page sont interpoles depuis le code, parce qu'ils decrivent le parrainage, pas ce programme.

Reecrire « 20 % a vie » sur /network/partners fait donc echouer la suite dans les six langues, ce qui est exactement le garde-fou qui manquait quand la phrase y est arrivee.