vybekiit 0.7.3 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +16607 -7527
- package/dist/global-skills/aws-cdk/SKILL.md +2 -1
- package/dist/global-skills/aws-cloudformation/SKILL.md +2 -1
- package/dist/global-skills/aws-serverless/SKILL.md +45 -44
- package/dist/global-skills/aws-serverless/assets/powertools-handler.py +2 -1
- package/dist/global-skills/aws-serverless/references/api-gateway.md +50 -470
- package/dist/global-skills/aws-serverless/references/architecture.md +47 -186
- package/dist/global-skills/aws-serverless/references/concurrency.md +44 -158
- package/dist/global-skills/aws-serverless/references/deployment.md +1 -1
- package/dist/global-skills/aws-serverless/references/event-sources.md +72 -391
- package/dist/global-skills/aws-serverless/references/lambda.md +69 -428
- package/dist/global-skills/aws-serverless/references/orchestration.md +65 -384
- package/dist/global-skills/aws-serverless/references/production.md +78 -415
- package/dist/global-skills/aws-serverless/references/troubleshooting.md +92 -619
- package/dist/global-skills/claimable-postgres/SKILL.md +60 -49
- package/dist/global-skills/design-my-data/SKILL.md +2 -0
- package/dist/global-skills/eas-app-stores/SKILL.md +8 -0
- package/dist/global-skills/eas-app-stores/references/play-store.md +2 -0
- package/dist/global-skills/eas-hosting/SKILL.md +8 -0
- package/dist/global-skills/eas-observe/SKILL.md +30 -8
- package/dist/global-skills/eas-observe/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-observe/references/metrics.md +54 -3
- package/dist/global-skills/eas-observe/references/queries.md +78 -17
- package/dist/global-skills/eas-observe/references/setup.md +164 -5
- package/dist/global-skills/eas-observe/references/third-party.md +136 -0
- package/dist/global-skills/eas-simulator/SKILL.md +63 -11
- package/dist/global-skills/eas-simulator/references/controllers.md +21 -2
- package/dist/global-skills/eas-simulator/references/run-your-app.md +16 -11
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -5
- package/dist/global-skills/eas-update-insights/SKILL.md +8 -0
- package/dist/global-skills/eas-workflows/SKILL.md +15 -10
- package/dist/global-skills/eas-workflows/scripts/package.json +2 -7
- package/dist/global-skills/email-best-practices/.github/workflows/sync-skills.yml +30 -0
- package/dist/global-skills/email-best-practices/README.md +63 -0
- package/dist/global-skills/email-best-practices/references/accessibility.md +189 -0
- package/dist/global-skills/email-best-practices/references/compliance.md +125 -0
- package/dist/global-skills/email-best-practices/references/deliverability.md +121 -0
- package/dist/global-skills/email-best-practices/references/email-capture.md +129 -0
- package/dist/global-skills/email-best-practices/references/email-types.md +173 -0
- package/dist/global-skills/email-best-practices/references/list-management.md +157 -0
- package/dist/global-skills/email-best-practices/references/marketing-emails.md +115 -0
- package/dist/global-skills/email-best-practices/references/sending-reliability.md +155 -0
- package/dist/global-skills/email-best-practices/references/transactional-email-catalog.md +418 -0
- package/dist/global-skills/email-best-practices/references/transactional-emails.md +92 -0
- package/dist/global-skills/email-best-practices/references/webhooks-events.md +167 -0
- package/dist/global-skills/email-best-practices/tests/README.md +35 -0
- package/dist/global-skills/email-best-practices/tests/scenarios/01-spam-deliverability.md +46 -0
- package/dist/global-skills/email-best-practices/tests/scenarios/02-multi-region-compliance.md +48 -0
- package/dist/global-skills/email-best-practices/tests/scenarios/03-retry-idempotency.md +36 -0
- package/dist/global-skills/email-best-practices/tests/scenarios/04-webhook-bounce-handling.md +52 -0
- package/dist/global-skills/email-best-practices/tests/scenarios/05-new-saas-email-plan.md +51 -0
- package/dist/global-skills/expo-animation/LICENSE +21 -0
- package/dist/global-skills/expo-animation/RECIPES.md +385 -0
- package/dist/global-skills/expo-animation/SKILL.md +267 -0
- package/dist/global-skills/expo-animation/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-app-clip/SKILL.md +8 -0
- package/dist/global-skills/expo-brownfield/SKILL.md +8 -0
- package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +53 -4
- package/dist/global-skills/expo-data-fetching/SKILL.md +8 -0
- package/dist/global-skills/expo-design-system/SKILL.md +356 -0
- package/dist/global-skills/expo-design-system/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-design-system/references/audit.md +185 -0
- package/dist/global-skills/expo-dev-client/SKILL.md +8 -0
- package/dist/global-skills/expo-dom/SKILL.md +8 -0
- package/dist/global-skills/expo-examples/SKILL.md +8 -0
- package/dist/global-skills/expo-migrate-module/SKILL.md +113 -0
- package/dist/global-skills/expo-migrate-module/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-migrate-module/references/compatibility.md +73 -0
- package/dist/global-skills/expo-migrate-module/references/example.md +212 -0
- package/dist/global-skills/expo-migrate-module/references/migration-map.md +306 -0
- package/dist/global-skills/expo-module/SKILL.md +11 -1
- package/dist/global-skills/expo-native-ui/SKILL.md +8 -0
- package/dist/global-skills/expo-project-structure/SKILL.md +114 -0
- package/dist/global-skills/expo-project-structure/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-router/SKILL.md +8 -0
- package/dist/global-skills/expo-skill-feedback/SKILL.md +66 -33
- package/dist/global-skills/expo-skill-feedback/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-tailwind-setup/SKILL.md +8 -0
- package/dist/global-skills/expo-ui/SKILL.md +8 -0
- package/dist/global-skills/expo-upgrade/SKILL.md +15 -1
- package/dist/global-skills/expo-web-to-native/SKILL.md +8 -0
- package/dist/global-skills/extension-to-functions-codebase/SKILL.md +129 -0
- package/dist/global-skills/extension-to-functions-codebase/references/configuration-migration.md +161 -0
- package/dist/global-skills/extension-to-functions-codebase/references/destructuring-shim.md +122 -0
- package/dist/global-skills/extension-to-functions-codebase/references/signature-mapping.md +84 -0
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +61 -19
- package/dist/global-skills/firebase-ai-logic-basics/references/flutter_setup.md +6 -3
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +5 -1
- package/dist/global-skills/firebase-auth-basics/SKILL.md +4 -2
- package/dist/global-skills/firebase-basics/SKILL.md +5 -5
- package/dist/global-skills/firebase-crashlytics/SKILL.md +2 -0
- package/dist/global-skills/firebase-data-connect/SKILL.md +2 -0
- package/dist/global-skills/firebase-firestore/SKILL.md +3 -6
- package/dist/global-skills/firebase-hosting-basics/SKILL.md +4 -1
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +5 -1
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +4 -1
- package/dist/global-skills/harden/SKILL.md +2 -1
- package/dist/global-skills/instrument-feature-flags/SKILL.md +1 -0
- package/dist/global-skills/instrument-feature-flags/references/COMMANDMENTS.md +5 -0
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/android.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/api.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/django.md +38 -5
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +10 -4
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/flask.md +17 -5
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +7 -5
- package/dist/global-skills/instrument-feature-flags/references/go.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/ios.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/java.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +74 -8
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/php.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/python.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/react.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/rust.md +6 -4
- package/dist/global-skills/instrument-feature-flags/references/usage.md +41 -4
- package/dist/global-skills/instrument-feature-flags/references/web.md +7 -5
- package/dist/global-skills/instrument-product-analytics/SKILL.md +2 -1
- package/dist/global-skills/instrument-product-analytics/references/COMMANDMENTS.md +5 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +12 -14
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +25 -21
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-django.md +75 -55
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-fastapi.md +3 -6
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-flask.md +26 -16
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-nuxt-3-6.md +8 -5
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-nuxt-4.md +4 -4
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-framework.md +3 -3
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +8 -4
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-tanstack-start.md +20 -8
- package/dist/global-skills/instrument-product-analytics/references/android.md +46 -4
- package/dist/global-skills/instrument-product-analytics/references/angular.md +41 -5
- package/dist/global-skills/instrument-product-analytics/references/astro.md +41 -5
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +7 -4
- package/dist/global-skills/instrument-product-analytics/references/django.md +38 -5
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +10 -4
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +6 -4
- package/dist/global-skills/instrument-product-analytics/references/flask.md +17 -5
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +49 -4
- package/dist/global-skills/instrument-product-analytics/references/go.md +6 -4
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +38 -7
- package/dist/global-skills/instrument-product-analytics/references/ios.md +14 -4
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +6 -4
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +74 -8
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +39 -7
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +40 -4
- package/dist/global-skills/instrument-product-analytics/references/php.md +6 -4
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +21 -17
- package/dist/global-skills/instrument-product-analytics/references/python.md +15 -5
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +41 -7
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +18 -4
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +18 -4
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +18 -4
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +18 -4
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +6 -4
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +6 -4
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +42 -6
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +31 -7
- package/dist/global-skills/instrument-product-analytics/references/usage.md +41 -4
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +42 -6
- package/dist/global-skills/manifest.json +6 -1
- package/dist/global-skills/neon/SKILL.md +235 -121
- package/dist/global-skills/neon-ai-gateway/SKILL.md +95 -16
- package/dist/global-skills/neon-functions/SKILL.md +242 -152
- package/dist/global-skills/neon-functions/references/ai-sdk.md +9 -3
- package/dist/global-skills/neon-functions/references/mastra-studio.md +1 -1
- package/dist/global-skills/neon-functions/references/mcp.md +13 -4
- package/dist/global-skills/neon-functions/references/sentry.md +165 -52
- package/dist/global-skills/neon-functions/references/sse.md +23 -6
- package/dist/global-skills/neon-object-storage/SKILL.md +40 -16
- package/dist/global-skills/neon-postgres/SKILL.md +63 -262
- package/dist/global-skills/neon-postgres-branches/SKILL.md +61 -50
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +22 -3
- package/dist/global-skills/resend/SKILL.md +6 -6
- package/dist/global-skills/resend/references/automations.md +2 -2
- package/dist/global-skills/resend/references/broadcasts.md +11 -3
- package/dist/global-skills/resend/references/domains.md +25 -3
- package/dist/global-skills/resend/references/installation.md +7 -7
- package/dist/global-skills/setup-payments/SKILL.md +4 -5
- package/dist/global-skills/stripe-best-practices/SKILL.md +32 -7
- package/dist/global-skills/stripe-best-practices/references/billing.md +11 -1
- package/dist/global-skills/stripe-best-practices/references/payments.md +23 -2
- package/dist/global-skills/stripe-best-practices/references/security.md +21 -11
- package/dist/global-skills/stripe-best-practices/references/tax.md +116 -11
- package/dist/global-skills/supabase/CHANGELOG.md +25 -0
- package/dist/global-skills/supabase/SKILL.md +5 -1
- package/dist/global-skills/supabase-postgres-best-practices/CHANGELOG.md +30 -0
- package/dist/global-skills/supabase-postgres-best-practices/SKILL.md +1 -1
- package/dist/global-skills/use-kit-mcp/SKILL.md +5 -5
- package/dist/global-skills/use-railway/SKILL.md +4 -4
- package/dist/global-skills/use-railway/references/iac.md +206 -57
- package/dist/global-skills/use-railway/scripts/railway-api.sh +7 -2
- package/dist/global-skills/xcode-project-setup/SKILL.md +2 -0
- package/package.json +12 -9
- package/LICENSE.md +0 -47
- package/dist/global-skills/eas-workflows/scripts/validate.js +0 -84
- package/dist/global-skills/expo-skill-feedback/scripts/skill-feedback.cjs +0 -118
- package/dist/global-skills/neon-functions/references/hono-websockets.md +0 -145
package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# React Router V7 data mode - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# React Router V7 data mode - Docs
|
|
2
8
|
|
|
3
9
|
This guide walks you through setting up PostHog for React Router V7 in data mode. If you're using React Router in another mode, find the guide for that mode in the [React Router page](/docs/libraries/react-router.md). If you're using React with another framework, go to the [React integration guide](/docs/libraries/react.md).
|
|
@@ -36,6 +42,18 @@ This guide walks you through setting up PostHog for React Router V7 in data mode
|
|
|
36
42
|
bun add posthog-js @posthog/react
|
|
37
43
|
```
|
|
38
44
|
|
|
45
|
+
> **If your site sets a Content-Security-Policy**, it needs to allow PostHog. This applies to the snippet and to package installs alike: the SDK lazy-loads extra bundles (session replay, surveys) from PostHog's CDN, and sends events to the ingestion host. PostHog serves from subdomains of `posthog.com` that change over time, so allow the wildcard:
|
|
46
|
+
>
|
|
47
|
+
> PostHog AI
|
|
48
|
+
>
|
|
49
|
+
> ```
|
|
50
|
+
> script-src 'self' https://*.posthog.com;
|
|
51
|
+
> connect-src 'self' https://*.posthog.com;
|
|
52
|
+
> worker-src 'self' blob: data:;
|
|
53
|
+
> ```
|
|
54
|
+
>
|
|
55
|
+
> `script-src` covers the snippet and the lazy-loaded bundles, `connect-src` covers event ingestion and feature flags, and `worker-src` covers session replay. The [toolbar needs a few more](/docs/advanced/content-security-policy.md), or use a [reverse proxy](/docs/advanced/proxy.md) so everything is first-party. Failing to do so causes silent failures where `capture` and `identify` calls never send, so the integration looks complete while zero events arrive. Remember `connect-src` falls back to `default-src`, so `default-src 'self'` blocks event delivery even when the script itself is bundled.
|
|
56
|
+
|
|
39
57
|
2. 2
|
|
40
58
|
|
|
41
59
|
## Add your environment variables
|
|
@@ -355,10 +373,6 @@ This guide walks you through setting up PostHog for React Router V7 in data mode
|
|
|
355
373
|
- [PostHog AI](/docs/posthog-ai.md): After capturing events, use PostHog AI to help you understand your data and build insights.
|
|
356
374
|
- [Feature flags and experiments](/docs/libraries/react.md#feature-flags): Feature flag and experiment setup is the same as React. You can find more details in the React integration guide.
|
|
357
375
|
|
|
358
|
-
### Community questions
|
|
359
|
-
|
|
360
|
-
Ask a question
|
|
361
|
-
|
|
362
376
|
### Was this page useful?
|
|
363
377
|
|
|
364
378
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# React Router V7 declarative mode - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# React Router V7 declarative mode - Docs
|
|
2
8
|
|
|
3
9
|
This guide walks you through setting up PostHog for React Router V7 in declarative mode. If you're using React Router in another mode, find the guide for that mode in the [React Router page](/docs/libraries/react-router.md). If you're using React with another framework, go to the [React integration guide](/docs/libraries/react.md).
|
|
@@ -36,6 +42,18 @@ This guide walks you through setting up PostHog for React Router V7 in declarati
|
|
|
36
42
|
bun add posthog-js @posthog/react
|
|
37
43
|
```
|
|
38
44
|
|
|
45
|
+
> **If your site sets a Content-Security-Policy**, it needs to allow PostHog. This applies to the snippet and to package installs alike: the SDK lazy-loads extra bundles (session replay, surveys) from PostHog's CDN, and sends events to the ingestion host. PostHog serves from subdomains of `posthog.com` that change over time, so allow the wildcard:
|
|
46
|
+
>
|
|
47
|
+
> PostHog AI
|
|
48
|
+
>
|
|
49
|
+
> ```
|
|
50
|
+
> script-src 'self' https://*.posthog.com;
|
|
51
|
+
> connect-src 'self' https://*.posthog.com;
|
|
52
|
+
> worker-src 'self' blob: data:;
|
|
53
|
+
> ```
|
|
54
|
+
>
|
|
55
|
+
> `script-src` covers the snippet and the lazy-loaded bundles, `connect-src` covers event ingestion and feature flags, and `worker-src` covers session replay. The [toolbar needs a few more](/docs/advanced/content-security-policy.md), or use a [reverse proxy](/docs/advanced/proxy.md) so everything is first-party. Failing to do so causes silent failures where `capture` and `identify` calls never send, so the integration looks complete while zero events arrive. Remember `connect-src` falls back to `default-src`, so `default-src 'self'` blocks event delivery even when the script itself is bundled.
|
|
56
|
+
|
|
39
57
|
2. 2
|
|
40
58
|
|
|
41
59
|
## Add your environment variables
|
|
@@ -367,10 +385,6 @@ This guide walks you through setting up PostHog for React Router V7 in declarati
|
|
|
367
385
|
- [PostHog AI](/docs/posthog-ai.md): After capturing events, use PostHog AI to help you understand your data and build insights.
|
|
368
386
|
- [Feature flags and experiments](/docs/libraries/react.md#feature-flags): Feature flag and experiment setup is the same as React. You can find more details in the React integration guide.
|
|
369
387
|
|
|
370
|
-
### Community questions
|
|
371
|
-
|
|
372
|
-
Ask a question
|
|
373
|
-
|
|
374
388
|
### Was this page useful?
|
|
375
389
|
|
|
376
390
|
HelpfulCould be better
|
package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# React Router V7 framework mode (Remix V3) - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# React Router V7 framework mode (Remix V3) - Docs
|
|
2
8
|
|
|
3
9
|
This guide walks you through setting up PostHog for React Router V7 in framework mode. If you're using React Router in another mode, find the guide for that mode in the [React Router page](/docs/libraries/react-router.md). If you're using React with another framework, go to the [React integration guide](/docs/libraries/react.md).
|
|
@@ -36,6 +42,18 @@ This guide walks you through setting up PostHog for React Router V7 in framework
|
|
|
36
42
|
bun add posthog-js @posthog/react
|
|
37
43
|
```
|
|
38
44
|
|
|
45
|
+
> **If your site sets a Content-Security-Policy**, it needs to allow PostHog. This applies to the snippet and to package installs alike: the SDK lazy-loads extra bundles (session replay, surveys) from PostHog's CDN, and sends events to the ingestion host. PostHog serves from subdomains of `posthog.com` that change over time, so allow the wildcard:
|
|
46
|
+
>
|
|
47
|
+
> PostHog AI
|
|
48
|
+
>
|
|
49
|
+
> ```
|
|
50
|
+
> script-src 'self' https://*.posthog.com;
|
|
51
|
+
> connect-src 'self' https://*.posthog.com;
|
|
52
|
+
> worker-src 'self' blob: data:;
|
|
53
|
+
> ```
|
|
54
|
+
>
|
|
55
|
+
> `script-src` covers the snippet and the lazy-loaded bundles, `connect-src` covers event ingestion and feature flags, and `worker-src` covers session replay. The [toolbar needs a few more](/docs/advanced/content-security-policy.md), or use a [reverse proxy](/docs/advanced/proxy.md) so everything is first-party. Failing to do so causes silent failures where `capture` and `identify` calls never send, so the integration looks complete while zero events arrive. Remember `connect-src` falls back to `default-src`, so `default-src 'self'` blocks event delivery even when the script itself is bundled.
|
|
56
|
+
|
|
39
57
|
In framework mode, you'll also need to set `posthog-js` and `@posthog/react` as external packages in your `vite.config.ts` file to avoid SSR errors.
|
|
40
58
|
|
|
41
59
|
vite.config.ts
|
|
@@ -470,10 +488,6 @@ This guide walks you through setting up PostHog for React Router V7 in framework
|
|
|
470
488
|
- [PostHog AI](/docs/posthog-ai.md): After capturing events, use PostHog AI to help you understand your data and build insights.
|
|
471
489
|
- [Feature flags and experiments](/docs/libraries/react.md#feature-flags): Feature flag and experiment setup is the same as React. You can find more details in the React integration guide.
|
|
472
490
|
|
|
473
|
-
### Community questions
|
|
474
|
-
|
|
475
|
-
Ask a question
|
|
476
|
-
|
|
477
491
|
### Was this page useful?
|
|
478
492
|
|
|
479
493
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# Ruby on Rails - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# Ruby on Rails - Docs
|
|
2
8
|
|
|
3
9
|
PostHog makes it easy to get data about traffic and usage of your Ruby on Rails app. Integrating PostHog enables analytics, custom event capture, feature flags, and automatic exception tracking.
|
|
@@ -595,10 +601,6 @@ Ensure you've set `personal_api_key` in your configuration.
|
|
|
595
601
|
|
|
596
602
|
For any technical questions for how to integrate specific PostHog features into Rails (such as analytics, feature flags, A/B testing, etc.), have a look at our [Ruby SDK docs](/docs/libraries/ruby.md).
|
|
597
603
|
|
|
598
|
-
### Community questions
|
|
599
|
-
|
|
600
|
-
Ask a question
|
|
601
|
-
|
|
602
604
|
### Was this page useful?
|
|
603
605
|
|
|
604
606
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# Ruby - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# Ruby - Docs
|
|
2
8
|
|
|
3
9
|
The `posthog-ruby` library provides tracking functionality on the server-side for applications built in Ruby.
|
|
@@ -750,10 +756,6 @@ posthog.clear
|
|
|
750
756
|
|
|
751
757
|
This library is largely based on the `analytics-ruby` package.
|
|
752
758
|
|
|
753
|
-
### Community questions
|
|
754
|
-
|
|
755
|
-
Ask a question
|
|
756
|
-
|
|
757
759
|
### Was this page useful?
|
|
758
760
|
|
|
759
761
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# Svelte - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# Svelte - Docs
|
|
2
8
|
|
|
3
9
|
PostHog makes it easy to get data about traffic and usage of your [Svelte](https://svelte.dev/) app. Integrating PostHog into your site enables analytics about user behavior, custom events capture, session recordings, feature flags, and more.
|
|
@@ -44,6 +50,18 @@ pnpm add posthog-js
|
|
|
44
50
|
bun add posthog-js
|
|
45
51
|
```
|
|
46
52
|
|
|
53
|
+
> **If your site sets a Content-Security-Policy**, it needs to allow PostHog. This applies to the snippet and to package installs alike: the SDK lazy-loads extra bundles (session replay, surveys) from PostHog's CDN, and sends events to the ingestion host. PostHog serves from subdomains of `posthog.com` that change over time, so allow the wildcard:
|
|
54
|
+
>
|
|
55
|
+
> PostHog AI
|
|
56
|
+
>
|
|
57
|
+
> ```
|
|
58
|
+
> script-src 'self' https://*.posthog.com;
|
|
59
|
+
> connect-src 'self' https://*.posthog.com;
|
|
60
|
+
> worker-src 'self' blob: data:;
|
|
61
|
+
> ```
|
|
62
|
+
>
|
|
63
|
+
> `script-src` covers the snippet and the lazy-loaded bundles, `connect-src` covers event ingestion and feature flags, and `worker-src` covers session replay. The [toolbar needs a few more](/docs/advanced/content-security-policy.md), or use a [reverse proxy](/docs/advanced/proxy.md) so everything is first-party. Failing to do so causes silent failures where `capture` and `identify` calls never send, so the integration looks complete while zero events arrive. Remember `connect-src` falls back to `default-src`, so `default-src 'self'` blocks event delivery even when the script itself is bundled.
|
|
64
|
+
|
|
47
65
|
Then, if you haven't created a root [layout](https://kit.svelte.dev/docs/routing#layout) already, create a new file called `+layout.js` in your `src/routes` folder In this file, check the environment is the browser, and initialize PostHog if so. You can get both your API key and instance address in your [project settings](https://us.posthog.com/project/settings).
|
|
48
66
|
|
|
49
67
|
routes/+layout.js
|
|
@@ -68,8 +86,30 @@ export const load = async () => {
|
|
|
68
86
|
|
|
69
87
|
> **Identifying users is required.** Call `posthog.identify('your-user-id')` after login to link events to a known user. This is what connects frontend event captures, [session replays](/docs/session-replay.md), [LLM traces](/docs/ai-engineering.md), and [error tracking](/docs/error-tracking.md) to the same person — and lets backend events link back too.
|
|
70
88
|
>
|
|
89
|
+
> Use a stable ID from your auth system when possible, not an email or display name. Send those as person properties instead. If your app has no other stable key, email works as a fallback if they are unique. Never a shared literal like `"anonymous"` or `"user"`, which pools many people onto one person and corrupts their data. When no ID is available at all, skip the identify and retain the anonymous distinct ID that's automatically assigned.
|
|
90
|
+
>
|
|
91
|
+
> Call `posthog.reset()` on logout, so the next person to use the browser doesn't inherit the last one's identity.
|
|
92
|
+
>
|
|
71
93
|
> See our guide on [identifying users](/docs/getting-started/identify-users.md) for how to set this up.
|
|
72
94
|
|
|
95
|
+
If your app calls your own backend, `tracing_headers` adds `X-POSTHOG-DISTINCT-ID` and `X-POSTHOG-SESSION-ID` to matching `fetch` and `XMLHttpRequest` requests. This lets server-side SDKs link backend events, errors, and LLM traces back to frontend sessions and replays. Use hostnames only, without protocols or paths.
|
|
96
|
+
|
|
97
|
+
JavaScript
|
|
98
|
+
|
|
99
|
+
PostHog AI
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
posthog.init('<ph_project_token>', {
|
|
103
|
+
api_host: 'https://us.i.posthog.com',
|
|
104
|
+
// Optional: send PostHog session/user context to your backend
|
|
105
|
+
tracing_headers: ['api.example.com'],
|
|
106
|
+
})
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This works in local development too, but match on the hostname alone: use `'localhost'`, not `'localhost:3000'`. Ports are never part of a hostname, so a value with one in it never matches anything. `localhost` and `127.0.0.1` are also different hostnames — use whichever your app actually calls.
|
|
110
|
+
|
|
111
|
+
Tracing headers help you attribute events across front and backend consistently. When this isn't available, use your server-side stable IDs to deduce the matching `distinctId`, and pass it in when capturing the event.
|
|
112
|
+
|
|
73
113
|
> ❗️ If you intend on using session replays with a server-side rendered Svelte app ensure that your [asset URLs are configured to be relative](/docs/session-replay/troubleshooting.md#ensure-assets-are-imported-from-the-base-URL-in-Svelte).
|
|
74
114
|
|
|
75
115
|
Set up a reverse proxy (recommended)
|
|
@@ -195,7 +235,7 @@ export async function load() {
|
|
|
195
235
|
}
|
|
196
236
|
```
|
|
197
237
|
|
|
198
|
-
See our [JavaScript Web](/docs/libraries/js/
|
|
238
|
+
See our [JavaScript Web](/docs/libraries/js/usage.md#feature-flags) and [Node](/docs/libraries/node.md#feature-flags) docs for more details.
|
|
199
239
|
|
|
200
240
|
## Configuring session replay for server-side rendered apps
|
|
201
241
|
|
|
@@ -217,7 +257,7 @@ kit: {
|
|
|
217
257
|
|
|
218
258
|
## Next steps
|
|
219
259
|
|
|
220
|
-
For any technical questions for how to integrate specific PostHog features into Svelte (such as analytics, feature flags, A/B testing, surveys, etc.), have a look at our [JavaScript Web](/docs/libraries/js/
|
|
260
|
+
For any technical questions for how to integrate specific PostHog features into Svelte (such as analytics, feature flags, A/B testing, surveys, etc.), have a look at our [JavaScript Web](/docs/libraries/js/usage.md) and [Node](/docs/libraries/node.md) SDK docs.
|
|
221
261
|
|
|
222
262
|
Alternatively, the following tutorials can help you get started:
|
|
223
263
|
|
|
@@ -225,10 +265,6 @@ Alternatively, the following tutorials can help you get started:
|
|
|
225
265
|
- [How to set up A/B tests in Svelte](/tutorials/svelte-ab-tests.md)
|
|
226
266
|
- [How to set up surveys in Svelte](/tutorials/svelte-surveys.md)
|
|
227
267
|
|
|
228
|
-
### Community questions
|
|
229
|
-
|
|
230
|
-
Ask a question
|
|
231
|
-
|
|
232
268
|
### Was this page useful?
|
|
233
269
|
|
|
234
270
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# TanStack Start - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# TanStack Start - Docs
|
|
2
8
|
|
|
3
9
|
This tutorial shows how to integrate PostHog with a [TanStack Start](https://tanstack.com/start) app for both client-side and server-side analytics.
|
|
@@ -21,17 +27,39 @@ npm install @posthog/react posthog-node
|
|
|
21
27
|
|
|
22
28
|
> **Identifying users is required.** Call `posthog.identify('your-user-id')` after login to link events to a known user. This is what connects frontend event captures, [session replays](/docs/session-replay.md), [LLM traces](/docs/ai-engineering.md), and [error tracking](/docs/error-tracking.md) to the same person — and lets backend events link back too.
|
|
23
29
|
>
|
|
30
|
+
> Use a stable ID from your auth system when possible, not an email or display name. Send those as person properties instead. If your app has no other stable key, email works as a fallback if they are unique. Never a shared literal like `"anonymous"` or `"user"`, which pools many people onto one person and corrupts their data. When no ID is available at all, skip the identify and retain the anonymous distinct ID that's automatically assigned.
|
|
31
|
+
>
|
|
32
|
+
> Call `posthog.reset()` on logout, so the next person to use the browser doesn't inherit the last one's identity.
|
|
33
|
+
>
|
|
24
34
|
> See our guide on [identifying users](/docs/getting-started/identify-users.md) for how to set this up.
|
|
25
35
|
|
|
36
|
+
If your app calls your own backend, `tracing_headers` adds `X-POSTHOG-DISTINCT-ID` and `X-POSTHOG-SESSION-ID` to matching `fetch` and `XMLHttpRequest` requests. This lets server-side SDKs link backend events, errors, and LLM traces back to frontend sessions and replays. Use hostnames only, without protocols or paths.
|
|
37
|
+
|
|
38
|
+
JavaScript
|
|
39
|
+
|
|
40
|
+
PostHog AI
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
posthog.init('<ph_project_token>', {
|
|
44
|
+
api_host: 'https://us.i.posthog.com',
|
|
45
|
+
// Optional: send PostHog session/user context to your backend
|
|
46
|
+
tracing_headers: ['api.example.com'],
|
|
47
|
+
})
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This works in local development too, but match on the hostname alone: use `'localhost'`, not `'localhost:3000'`. Ports are never part of a hostname, so a value with one in it never matches anything. `localhost` and `127.0.0.1` are also different hostnames — use whichever your app actually calls.
|
|
51
|
+
|
|
52
|
+
Tracing headers help you attribute events across front and backend consistently. When this isn't available, use your server-side stable IDs to deduce the matching `distinctId`, and pass it in when capturing the event.
|
|
53
|
+
|
|
26
54
|
## Initialize PostHog on the client
|
|
27
55
|
|
|
28
56
|
Wrap your app with `PostHogProvider` in your root route with your project token, host, and other options.
|
|
29
57
|
|
|
30
|
-
src/routes/\_\_root.tsx
|
|
31
|
-
|
|
32
58
|
PostHog AI
|
|
33
59
|
|
|
34
|
-
```
|
|
60
|
+
```
|
|
61
|
+
import CspAllowancesCallout from "../_snippets/csp-allowances-callout.mdx"
|
|
62
|
+
<CspAllowancesCallout />tsx file=src/routes/__root.tsx
|
|
35
63
|
// src/routes/__root.tsx
|
|
36
64
|
import { HeadContent, Scripts, createRootRoute } from '@tanstack/react-router'
|
|
37
65
|
import { PostHogProvider } from '@posthog/react'
|
|
@@ -184,10 +212,6 @@ The server-side `capture` call requires a `distinctId` (the user identifier), an
|
|
|
184
212
|
|
|
185
213
|
Installing the JS Web SDK and Node SDK means all of their functionality is available in your TanStack Start project. To learn more about this, have a look at our [JS Web SDK docs](/docs/libraries/js/usage.md) and [Node SDK docs](/docs/libraries/node.md).
|
|
186
214
|
|
|
187
|
-
### Community questions
|
|
188
|
-
|
|
189
|
-
Ask a question
|
|
190
|
-
|
|
191
215
|
### Was this page useful?
|
|
192
216
|
|
|
193
217
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# iOS SDK usage - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# iOS SDK usage - Docs
|
|
2
8
|
|
|
3
9
|
## Capturing events
|
|
@@ -534,6 +540,41 @@ PostHogSDK.shared.captureFeatureView(flag: "flag-key", flagVariant: "variant-key
|
|
|
534
540
|
PostHogSDK.shared.captureFeatureInteraction(flag: "flag-key", flagVariant: "variant-key")
|
|
535
541
|
```
|
|
536
542
|
|
|
543
|
+
### Bootstrapping flags
|
|
544
|
+
|
|
545
|
+
Since there is a delay between initializing PostHog and fetching feature flags, feature flags are not always available immediately. This makes them unusable if you want to do something like redirecting a user to a different page based on a feature flag.
|
|
546
|
+
|
|
547
|
+
To have your feature flags available immediately, you can initialize PostHog with precomputed values until it has had a chance to fetch them. This is called bootstrapping. After the SDK fetches feature flags from PostHog, it will use those flag values instead of bootstrapped ones.
|
|
548
|
+
|
|
549
|
+
Set `config.bootstrap` before calling `setup()` to seed identity and flag values before the first `/flags` response (requires iOS SDK `3.66.0`+):
|
|
550
|
+
|
|
551
|
+
Swift
|
|
552
|
+
|
|
553
|
+
PostHog AI
|
|
554
|
+
|
|
555
|
+
```swift
|
|
556
|
+
let config = PostHogConfig(projectToken: "<ph_project_token>", host: "https://us.i.posthog.com")
|
|
557
|
+
config.bootstrap = PostHogBootstrapConfig(
|
|
558
|
+
distinctId: "distinct_id_of_your_user",
|
|
559
|
+
isIdentifiedId: true,
|
|
560
|
+
featureFlags: [
|
|
561
|
+
"flag-1": true,
|
|
562
|
+
"variant-flag": "control"
|
|
563
|
+
],
|
|
564
|
+
featureFlagPayloads: nil
|
|
565
|
+
)
|
|
566
|
+
PostHogSDK.shared.setup(config)
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
- **Bootstrapped identity applies during setup.** On a fresh install, setting it before `setup()` means events captured synchronously during initialization (like `Application Installed`) carry your distinct ID instead of the SDK-generated UUID.
|
|
570
|
+
- An **anonymous** bootstrap (`isIdentifiedId: false`, the default) seeds the anonymous ID only when none is persisted yet. Once an anonymous ID exists on disk, or the person has been identified, the SDK ignores it.
|
|
571
|
+
- An **identified** bootstrap (`isIdentifiedId: true`) is for a signed-in identity available to your app (for example, from a backend session token). On a fresh install, it seeds the distinct ID, marks the person identified, and generates a separate device ID. On a returning install, a matching anonymous ID is marked identified without emitting `$identify`; a different anonymous ID is merged via `identify()` when person profiles are enabled. This emits `$identify` unless capturing is opted out. A different, already-identified person is left untouched.
|
|
572
|
+
- **Bootstrapped flags are served until the first `/flags` response, then replaced.** A complete `/flags` response takes over entirely, so bootstrapped-only keys don't persist past it. Only *enabled* flags are seeded: a `true` boolean or a non-empty variant string. A `false` or empty value is dropped, matching posthog-js. Seed payloads with the separate `featureFlagPayloads` option. Flag values and payloads must be JSON-serializable, or they're dropped. Bootstrapped flags are cleared on `reset()`.
|
|
573
|
+
|
|
574
|
+
The feature-flags-loaded signal fires as soon as bootstrapped flags are applied, so startup logic can read them immediately. These SDKs don't support the `sessionID` bootstrap option. When person profiles are set to `never`, the SDK preserves a different anonymous identity instead of merging it into an identified bootstrap.
|
|
575
|
+
|
|
576
|
+
See the [SDK bootstrapping guide](/docs/libraries/bootstrapping.md) for the cross-SDK overview.
|
|
577
|
+
|
|
537
578
|
## Experiments (A/B tests)
|
|
538
579
|
|
|
539
580
|
Since [experiments](/docs/experiments/start-here.md) use feature flags, the code for running an experiment is very similar to the feature flags code. See [adding experiment code](/docs/experiments/adding-experiment-code.md) for iOS examples.
|
|
@@ -591,10 +632,6 @@ PostHogSDK.shared.debug(true)
|
|
|
591
632
|
PostHogSDK.shared.debug(false)
|
|
592
633
|
```
|
|
593
634
|
|
|
594
|
-
### Community questions
|
|
595
|
-
|
|
596
|
-
Ask a question
|
|
597
|
-
|
|
598
635
|
### Was this page useful?
|
|
599
636
|
|
|
600
637
|
HelpfulCould be better
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
|
+
|
|
3
|
+
# Vue.js - Docs
|
|
4
|
+
|
|
5
|
+
Copy page
|
|
6
|
+
|
|
1
7
|
# Vue.js - Docs
|
|
2
8
|
|
|
3
9
|
PostHog makes it easy to get data about usage of your [Vue.js](https://vuejs.org/) app. Integrating PostHog into your app enables analytics about user behavior, custom events capture, session replays, feature flags, and more.
|
|
@@ -43,6 +49,18 @@ pnpm add posthog-js
|
|
|
43
49
|
bun add posthog-js
|
|
44
50
|
```
|
|
45
51
|
|
|
52
|
+
> **If your site sets a Content-Security-Policy**, it needs to allow PostHog. This applies to the snippet and to package installs alike: the SDK lazy-loads extra bundles (session replay, surveys) from PostHog's CDN, and sends events to the ingestion host. PostHog serves from subdomains of `posthog.com` that change over time, so allow the wildcard:
|
|
53
|
+
>
|
|
54
|
+
> PostHog AI
|
|
55
|
+
>
|
|
56
|
+
> ```
|
|
57
|
+
> script-src 'self' https://*.posthog.com;
|
|
58
|
+
> connect-src 'self' https://*.posthog.com;
|
|
59
|
+
> worker-src 'self' blob: data:;
|
|
60
|
+
> ```
|
|
61
|
+
>
|
|
62
|
+
> `script-src` covers the snippet and the lazy-loaded bundles, `connect-src` covers event ingestion and feature flags, and `worker-src` covers session replay. The [toolbar needs a few more](/docs/advanced/content-security-policy.md), or use a [reverse proxy](/docs/advanced/proxy.md) so everything is first-party. Failing to do so causes silent failures where `capture` and `identify` calls never send, so the integration looks complete while zero events arrive. Remember `connect-src` falls back to `default-src`, so `default-src 'self'` blocks event delivery even when the script itself is bundled.
|
|
63
|
+
|
|
46
64
|
Next, depending on your Vue version, we recommend initializing PostHog using the composition API or as a plugin.
|
|
47
65
|
|
|
48
66
|
## Vue 3: Composition API
|
|
@@ -139,11 +157,33 @@ This makes PostHog available as `this.$posthog` in any Vue component.
|
|
|
139
157
|
|
|
140
158
|
> **Identifying users is required.** Call `posthog.identify('your-user-id')` after login to link events to a known user. This is what connects frontend event captures, [session replays](/docs/session-replay.md), [LLM traces](/docs/ai-engineering.md), and [error tracking](/docs/error-tracking.md) to the same person — and lets backend events link back too.
|
|
141
159
|
>
|
|
160
|
+
> Use a stable ID from your auth system when possible, not an email or display name. Send those as person properties instead. If your app has no other stable key, email works as a fallback if they are unique. Never a shared literal like `"anonymous"` or `"user"`, which pools many people onto one person and corrupts their data. When no ID is available at all, skip the identify and retain the anonymous distinct ID that's automatically assigned.
|
|
161
|
+
>
|
|
162
|
+
> Call `posthog.reset()` on logout, so the next person to use the browser doesn't inherit the last one's identity.
|
|
163
|
+
>
|
|
142
164
|
> See our guide on [identifying users](/docs/getting-started/identify-users.md) for how to set this up.
|
|
143
165
|
|
|
166
|
+
If your app calls your own backend, `tracing_headers` adds `X-POSTHOG-DISTINCT-ID` and `X-POSTHOG-SESSION-ID` to matching `fetch` and `XMLHttpRequest` requests. This lets server-side SDKs link backend events, errors, and LLM traces back to frontend sessions and replays. Use hostnames only, without protocols or paths.
|
|
167
|
+
|
|
168
|
+
JavaScript
|
|
169
|
+
|
|
170
|
+
PostHog AI
|
|
171
|
+
|
|
172
|
+
```javascript
|
|
173
|
+
posthog.init('<ph_project_token>', {
|
|
174
|
+
api_host: 'https://us.i.posthog.com',
|
|
175
|
+
// Optional: send PostHog session/user context to your backend
|
|
176
|
+
tracing_headers: ['api.example.com'],
|
|
177
|
+
})
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
This works in local development too, but match on the hostname alone: use `'localhost'`, not `'localhost:3000'`. Ports are never part of a hostname, so a value with one in it never matches anything. `localhost` and `127.0.0.1` are also different hostnames — use whichever your app actually calls.
|
|
181
|
+
|
|
182
|
+
Tracing headers help you attribute events across front and backend consistently. When this isn't available, use your server-side stable IDs to deduce the matching `distinctId`, and pass it in when capturing the event.
|
|
183
|
+
|
|
144
184
|
## Capturing custom events, using feature flags, and more
|
|
145
185
|
|
|
146
|
-
Once you have PostHog initialized, there is a lot more you can do with it beyond autocapture, pageviews, and pageleaves. You can find the full details in our [JavaScript SDK docs](/docs/libraries/js/
|
|
186
|
+
Once you have PostHog initialized, there is a lot more you can do with it beyond autocapture, pageviews, and pageleaves. You can find the full details in our [JavaScript SDK docs](/docs/libraries/js/usage.md), but we'll cover a few examples here.
|
|
147
187
|
|
|
148
188
|
## Vue 3: Composition API
|
|
149
189
|
|
|
@@ -288,7 +328,7 @@ These are public, stable IPs used by PostHog services (e.g., Celery tasks for sn
|
|
|
288
328
|
|
|
289
329
|
## Next steps
|
|
290
330
|
|
|
291
|
-
For any technical questions for how to integrate specific PostHog features into Vue (such as analytics, feature flags, A/B testing, or surveys), have a look at our [JavaScript Web](/docs/libraries/js/
|
|
331
|
+
For any technical questions for how to integrate specific PostHog features into Vue (such as analytics, feature flags, A/B testing, or surveys), have a look at our [JavaScript Web](/docs/libraries/js/usage.md) SDK docs.
|
|
292
332
|
|
|
293
333
|
Alternatively, the following tutorials can help you get started:
|
|
294
334
|
|
|
@@ -297,10 +337,6 @@ Alternatively, the following tutorials can help you get started:
|
|
|
297
337
|
- [How to set up A/B tests in Vue](/tutorials/vue-ab-tests.md)
|
|
298
338
|
- [How to set up surveys in Vue](/tutorials/vue-surveys.md)
|
|
299
339
|
|
|
300
|
-
### Community questions
|
|
301
|
-
|
|
302
|
-
Ask a question
|
|
303
|
-
|
|
304
340
|
### Was this page useful?
|
|
305
341
|
|
|
306
342
|
HelpfulCould be better
|
|
@@ -38,18 +38,22 @@
|
|
|
38
38
|
"eas-update-insights",
|
|
39
39
|
"eas-workflows",
|
|
40
40
|
"email-best-practices",
|
|
41
|
+
"expo-animation",
|
|
41
42
|
"expo-api-routes",
|
|
42
43
|
"expo-app-clip",
|
|
43
44
|
"expo-brownfield",
|
|
44
45
|
"expo-cicd-workflows",
|
|
45
46
|
"expo-data-fetching",
|
|
46
47
|
"expo-deployment",
|
|
48
|
+
"expo-design-system",
|
|
47
49
|
"expo-dev-client",
|
|
48
50
|
"expo-dom",
|
|
49
51
|
"expo-examples",
|
|
52
|
+
"expo-migrate-module",
|
|
50
53
|
"expo-module",
|
|
51
54
|
"expo-native-ui",
|
|
52
55
|
"expo-observe",
|
|
56
|
+
"expo-project-structure",
|
|
53
57
|
"expo-router",
|
|
54
58
|
"expo-skill-eval",
|
|
55
59
|
"expo-skill-feedback",
|
|
@@ -57,6 +61,7 @@
|
|
|
57
61
|
"expo-ui",
|
|
58
62
|
"expo-upgrade",
|
|
59
63
|
"expo-web-to-native",
|
|
64
|
+
"extension-to-functions-codebase",
|
|
60
65
|
"feedback",
|
|
61
66
|
"firebase-ai-logic-basics",
|
|
62
67
|
"firebase-app-hosting-basics",
|
|
@@ -122,5 +127,5 @@
|
|
|
122
127
|
"wrangler",
|
|
123
128
|
"xcode-project-setup"
|
|
124
129
|
],
|
|
125
|
-
"count":
|
|
130
|
+
"count": 126
|
|
126
131
|
}
|