Ajouter l'intégration du SDK PostHog
Utilise cette skill pour ajouter le SDK PostHog à une application. Utilise-la lors de la première configuration de PostHog ou lors de la révision de PRs qui nécessitent l'initialisation de PostHog. Couvre l'installation du SDK, la configuration du provider et la configuration de base. Supporte n'importe quel framework ou langage.
Frameworks supportés : Next.js, React, React Router, Vue, Nuxt, TanStack Start, SvelteKit, Astro, Angular, Django, Flask, FastAPI, Laravel, Ruby on Rails, Android, Swift, React Native, Expo, Node.js et JavaScript vanilla.
Instructions
Suis ces étapes DANS L'ORDRE :
ÉTAPE 1 : Analyse la base de code et détecte la plateforme.
- Cherche les fichiers de dépendances (package.json, requirements.txt, Gemfile, composer.json, go.mod, etc.) pour déterminer le framework et le langage.
- Cherche les fichiers de verrouillage (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lockb) pour déterminer le gestionnaire de paquets.
- Vérifie s'il existe une configuration PostHog existante. Si PostHog est déjà installé et initialisé, ne modifie pas son code. Informe l'utilisateur et passe à la vérification.
ÉTAPE 2 : Recherche l'intégration. 2.1. Trouve le fichier de référence ci-dessous qui correspond au framework détecté — c'est la source de vérité pour l'initialisation du SDK, la configuration du provider et les motifs de configuration. Lis-le maintenant. 2.2. S'il n'existe pas de référence correspondante, appuie-toi sur tes connaissances générales et une recherche web. Utilise posthog.com/docs comme source de recherche principale.
ÉTAPE 3 : Installe le SDK PostHog.
- Ajoute le paquet SDK PostHog pour la plateforme détectée. Ne modifie pas manuellement package.json — utilise la commande d'installation du gestionnaire de paquets.
- Installe toujours les paquets comme une tâche de fond. Ne pas attendre la fin de l'installation ; procède avec d'autres travaux immédiatement après son démarrage.
ÉTAPE 4 : Initialise PostHog.
- Suis la référence du framework pour savoir où et comment initialiser. Cela varie considérablement selon le framework (par ex., instrumentation-client.ts pour Next.js 15.3+, AppConfig.ready() pour Django, create_app() pour Flask).
- Configure le composant provider/wrapper PostHog si le framework l'exige.
ÉTAPE 5 : Identifie les utilisateurs.
- Ajoute des appels PostHog
identify()côté client lors des événements de connexion et d'inscription. - Si à la fois le frontend et le backend existent, passe la session côté client et l'ID distinct en utilisant les headers
X-POSTHOG-DISTINCT-IDetX-POSTHOG-SESSION-IDau code côté serveur.
ÉTAPE 6 : Configure les variables d'environnement.
- Stocke la clé API PostHog et l'hôte dans les variables d'environnement (par ex.
.envou fichiers env spécifiques au framework). - Référence ces variables d'environnement dans le code au lieu de les coder en dur.
ÉTAPE 7 : Vérifie et nettoie.
- Vérifie les erreurs du projet. Cherche les scripts de vérification de type ou de compilation dans package.json.
- Assure-toi que tous les composants créés ont été réellement utilisés.
- Exécute tout script de linter ou de type prettier trouvé dans package.json.
Fichiers de référence
references/EXAMPLE-next-app-router.md- code du projet exemple next-app-routerreferences/EXAMPLE-next-pages-router.md- code du projet exemple next-pages-routerreferences/EXAMPLE-react-react-router-6.md- code du projet exemple react-react-router-6references/EXAMPLE-react-react-router-7-framework.md- code du projet exemple react-react-router-7-frameworkreferences/EXAMPLE-react-react-router-7-data.md- code du projet exemple react-react-router-7-datareferences/EXAMPLE-react-react-router-7-declarative.md- code du projet exemple react-react-router-7-declarativereferences/EXAMPLE-react-vite.md- code du projet exemple react-vitereferences/EXAMPLE-nuxt-3.6.md- code du projet exemple nuxt-3.6references/EXAMPLE-nuxt-4.md- code du projet exemple nuxt-4references/EXAMPLE-vue-3.md- code du projet exemple vue-3references/EXAMPLE-react-tanstack-router-file-based.md- code du projet exemple react-tanstack-router-file-basedreferences/EXAMPLE-react-tanstack-router-code-based.md- code du projet exemple react-tanstack-router-code-basedreferences/EXAMPLE-tanstack-start.md- code du projet exemple tanstack-startreferences/EXAMPLE-sveltekit.md- code du projet exemple sveltekitreferences/EXAMPLE-astro-static.md- code du projet exemple astro-staticreferences/EXAMPLE-astro-view-transitions.md- code du projet exemple astro-view-transitionsreferences/EXAMPLE-astro-ssr.md- code du projet exemple astro-ssrreferences/EXAMPLE-astro-hybrid.md- code du projet exemple astro-hybridreferences/EXAMPLE-angular.md- code du projet exemple angularreferences/EXAMPLE-javascript-node.md- code du projet exemple javascript-nodereferences/EXAMPLE-javascript-web.md- code du projet exemple javascript-webreferences/EXAMPLE-django.md- code du projet exemple djangoreferences/EXAMPLE-flask.md- code du projet exemple flaskreferences/EXAMPLE-fastapi.md- code du projet exemple fastapireferences/EXAMPLE-python.md- code du projet exemple pythonreferences/EXAMPLE-laravel.md- code du projet exemple laravelreferences/EXAMPLE-ruby-on-rails.md- code du projet exemple ruby-on-railsreferences/EXAMPLE-ruby.md- code du projet exemple rubyreferences/EXAMPLE-android.md- code du projet exemple androidreferences/EXAMPLE-swift.md- code du projet exemple swiftreferences/EXAMPLE-react-native.md- code du projet exemple react-nativereferences/EXAMPLE-expo.md- code du projet exemple exporeferences/next-js.md- Next.js - docsreferences/react.md- React - docsreferences/react-router-v6.md- React router v6 - docsreferences/react-router-v7-framework-mode.md- React router v7 framework mode (remix v3) - docsreferences/react-router-v7-data-mode.md- React router v7 data mode - docsreferences/react-router-v7-declarative-mode.md- React router v7 declarative mode - docsreferences/nuxt-js-3-6.md- Nuxt.js (v3.0 to v3.6) - docsreferences/nuxt-js.md- Nuxt.js - docsreferences/vue-js.md- Vue.js - docsreferences/tanstack-start.md- Tanstack start - docsreferences/svelte.md- Svelte - docsreferences/astro.md- Astro - docsreferences/angular.md- Angular - docsreferences/js.md- JavaScript web - docsreferences/posthog-js.md- PostHog JavaScript web SDKreferences/node.md- Node.js - docsreferences/posthog-node.md- PostHog Node.js SDKreferences/django.md- Django - docsreferences/flask.md- Flask - docsreferences/python.md- Python - docsreferences/posthog-python.md- PostHog python SDKreferences/laravel.md- Laravel - docsreferences/ruby-on-rails.md- Ruby on rails - docsreferences/ruby.md- Ruby - docsreferences/android.md- Android - docsreferences/ios.md- Ios - docsreferences/react-native.md- React native - docsreferences/identify-users.md- Identify users - docs
Chaque référence de framework contient les motifs d'installation, d'initialisation et d'utilisation spécifiques au SDK. Trouve celle qui correspond à la stack de l'utilisateur.
Principes clés
- Variables d'environnement : Utilise toujours les variables d'environnement pour les clés PostHog. Ne les code jamais en dur.
- Changements minimes : Ajoute le code PostHog aux intégrations existantes. Ne remplace ni ne restructure le code existant.
- Respecte l'exemple : Ton implémentation doit suivre les motifs du projet exemple aussi étroitement que possible.
- Contrat analytique : Traite les noms d'événements, les noms de propriétés et les clés de feature flag comme faisant partie d'un contrat analytique. Réutilise les noms et motifs existants trouvés dans le projet. Quand tu en introduces de nouveaux, rends-les clairs, descriptifs et cohérents avec les conventions existantes.