Comment j'ai construit un système de parrainage complet en React Native en une journée
Hier, j'ai passé 8 heures à coder quelque chose qui n'a rien à voir avec le produit lui-même. Pas de nouvelle feature. Pas de bug fix. Pas d'optimisation. Un système de parrainage.
Je développe TAMSIV, un gestionnaire de tâches vocal pour Android. Dev solo, 660+ commits, 6 mois de travail. J'ai 12 testeurs alpha sur le Play Store et j'ai besoin que ce nombre grandisse — organiquement.
Le concept
Simple : chaque utilisateur a un code de parrainage unique. Tu le partages. Quand quelqu'un s'inscrit avec, les deux gagnent 1 mois Pro gratuit. Et ça se cumule — 10 parrainages = 10 mois gratuits, mis en file d'attente les uns après les autres.
Les 3 sources de capture
La partie la plus difficile n'est pas de générer les codes. C'est de les capturer de manière fiable.
1. Deep links via le site web
Quand quelqu'un visite tamsiv.com/invite/CODE, Next.js redirige vers le Play Store avec le code de parrainage intégré.
2. Android App Links (ouverture directe)
Si l'app est déjà installée, tamsiv://invite/CODE l'ouvre directement. Cela nécessite la configuration du AndroidManifest.xml avec les intent-filters appropriés et un fichier assetlinks.json sur le site pour la vérification.
3. Play Store Install Referrer
C'est la source la plus sous-estimée. Quand quelqu'un clique sur un lien Play Store avec un paramètre &referrer=CODE, Android stocke cette chaîne. Même si la personne installe l'app 3 jours plus tard, on peut toujours lire le code.
Rewards empilés
La plupart des systèmes de parrainage donnent une récompense unique. Je voulais que les rewards s'accumulent. Chaque parrainage ajoute 30 jours de Pro, mis en file d'attente après l'expiration du précédent.
Push notifications en 6 langues
Quand quelqu'un utilise ton code, tu reçois une notification push. Dans ta langue. Parce que TAMSIV parle 6 langues, le backend vérifie la préférence linguistique du parrain avant d'envoyer via FCM.
En chiffres
- 22 fichiers modifiés (backend, frontend, website, manifeste Android)
- 1 324 lignes ajoutées
- 1 journée de travail concentré
- 6 langues supportées
- 3 sources de capture pour une couverture maximale
Ce que j'ai appris
La vérification Android App Links est fragile. Le fichier assetlinks.json doit être servi exactement au bon endroit avec le SHA256 exact de ta clé de signature.
Le Play Store Install Referrer est sous-estimé. La plupart des tutoriels le passent, mais c'est le seul moyen de capturer les parrainages via des installations différées.
L'empilement des rewards ajoute de la complexité. Un simple "donne 1 mois gratuit" est facile. Mettre en file d'attente plusieurs récompenses demande de gérer les dates de début, de fin, et la relation avec RevenueCat.