vybekiit 0.7.25 → 0.7.27
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 +3891 -1301
- package/dist/global-skills/aws-cdk/SKILL.md +19 -5
- package/dist/global-skills/aws-cdk/references/fast-deployments.md +191 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +16 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +16 -26
- package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +7 -3
- package/dist/global-skills/aws-cloudformation/references/cloudformation-language-server.md +177 -0
- package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +8 -2
- package/dist/global-skills/aws-cloudformation/references/persist-template-context.script.md +5 -8
- package/dist/global-skills/aws-cloudformation/references/retrieve-template-context.script.md +1 -1
- package/dist/global-skills/aws-cloudformation/references/security-considerations.md +51 -0
- package/dist/global-skills/aws-cloudformation/references/troubleshoot-failed-stack.script.md +138 -0
- package/dist/global-skills/aws-cloudformation/references/{validate-cloudformation-template.script.md → validate-with-cfn-lint.script.md} +15 -27
- package/dist/global-skills/aws-cloudformation/references/validate-with-cloudformation-validate.script.md +181 -0
- package/dist/global-skills/aws-cloudformation/references/validation-tool-selection.md +44 -0
- package/dist/global-skills/aws-serverless/SKILL.md +9 -1
- package/dist/global-skills/aws-serverless/references/architecture.md +3 -1
- package/dist/global-skills/aws-serverless/references/lambda.md +3 -1
- package/dist/global-skills/aws-serverless/references/orchestration.md +1 -0
- package/dist/global-skills/better-auth-best-practices/SKILL.md +18 -8
- package/dist/global-skills/eas-app-stores/SKILL.md +31 -15
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +2 -2
- package/dist/global-skills/eas-app-stores/references/ios-app-store.md +37 -32
- package/dist/global-skills/eas-app-stores/references/native-ios.md +167 -0
- package/dist/global-skills/eas-app-stores/references/play-store.md +3 -7
- package/dist/global-skills/eas-app-stores/references/testflight.md +39 -35
- package/dist/global-skills/eas-simulator/SKILL.md +48 -26
- package/dist/global-skills/eas-simulator/references/controllers.md +32 -3
- package/dist/global-skills/eas-simulator/references/run-your-app.md +34 -4
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -4
- package/dist/global-skills/eas-update/SKILL.md +146 -0
- package/dist/global-skills/eas-update/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-animation/RECIPES.md +2 -2
- package/dist/global-skills/expo-animation/SKILL.md +9 -2
- package/dist/global-skills/expo-brownfield/SKILL.md +18 -11
- package/dist/global-skills/expo-brownfield/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +94 -69
- package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +40 -42
- package/dist/global-skills/expo-brownfield/references/comparison.md +5 -5
- package/dist/global-skills/expo-brownfield/references/feature-integration.md +163 -0
- package/dist/global-skills/expo-brownfield/references/troubleshooting.md +17 -17
- package/dist/global-skills/expo-brownfield/references/version-compatibility.md +40 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +27 -6
- package/dist/global-skills/expo-design-system/SKILL.md +27 -7
- package/dist/global-skills/expo-design-system/references/audit.md +7 -2
- package/dist/global-skills/expo-design-system/references/native-slop.md +74 -0
- package/dist/global-skills/expo-examples/SKILL.md +0 -1
- package/dist/global-skills/expo-examples/references/catalog.md +1 -1
- package/dist/global-skills/expo-migrate-module/SKILL.md +21 -10
- package/dist/global-skills/expo-migrate-module/references/compatibility.md +80 -23
- package/dist/global-skills/expo-migrate-module/references/migration-map.md +162 -11
- package/dist/global-skills/expo-native-ui/SKILL.md +25 -16
- package/dist/global-skills/expo-native-ui/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-native-ui/references/controls.md +5 -46
- package/dist/global-skills/expo-native-ui/references/icons.md +21 -2
- package/dist/global-skills/expo-native-ui/references/media.md +15 -20
- package/dist/global-skills/expo-native-ui/references/visual-effects.md +12 -11
- package/dist/global-skills/expo-overview/SKILL.md +17 -12
- package/dist/global-skills/expo-router/SKILL.md +5 -3
- package/dist/global-skills/expo-router/references/tabs.md +5 -5
- package/dist/global-skills/expo-skill-eval/scripts/check-static.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/clean-fixture.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/latest-sdk.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/make-fixture.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/make-workspace.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-android.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-ios.sh +0 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-web.sh +0 -0
- package/dist/global-skills/expo-upgrade/SKILL.md +3 -1
- package/dist/global-skills/expo-web-to-native/references/false-friends.md +2 -2
- package/dist/global-skills/expo-web-to-native/references/native-patterns.md +1 -1
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +13 -16
- package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +4 -5
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +4 -4
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +4 -5
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +24 -25
- package/dist/global-skills/firebase-auth-basics/references/security_rules.md +4 -2
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +7 -4
- package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +2 -3
- package/dist/global-skills/firebase-data-connect/SKILL.md +2 -1
- package/dist/global-skills/firebase-data-connect/examples.md +4 -4
- package/dist/global-skills/firebase-data-connect/reference/config.md +5 -4
- package/dist/global-skills/firebase-data-connect/reference/realtime.md +1 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +2 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +2 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +17 -6
- package/dist/global-skills/firebase-data-connect/reference/security.md +5 -5
- package/dist/global-skills/firebase-data-connect/templates.md +2 -1
- package/dist/global-skills/firebase-firestore/SKILL.md +20 -8
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +5 -4
- package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +12 -3
- package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +16 -18
- package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +1 -1
- package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +5 -1
- package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +7 -7
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +5 -5
- package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +4 -4
- package/dist/global-skills/firebase-firestore/references/standard/indexes.md +16 -18
- package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +1 -1
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +0 -5
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +36 -8
- package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +1 -7
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +17 -6
- package/dist/global-skills/{firebase-firestore/references/standard/security_rules.md → firestore-rules-creation/SKILL.md} +24 -13
- package/dist/global-skills/grow-my-customers/SKILL.md +23 -0
- package/dist/global-skills/instrument-feature-flags/SKILL.md +25 -25
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +141 -285
- package/dist/global-skills/instrument-feature-flags/references/android.md +6 -15
- package/dist/global-skills/instrument-feature-flags/references/api.md +4 -11
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +1 -13
- package/dist/global-skills/instrument-feature-flags/references/django.md +14 -27
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +20 -79
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +1 -9
- package/dist/global-skills/instrument-feature-flags/references/flask.md +13 -13
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +3 -24
- package/dist/global-skills/instrument-feature-flags/references/go.md +3 -15
- package/dist/global-skills/instrument-feature-flags/references/ios.md +4 -17
- package/dist/global-skills/instrument-feature-flags/references/java.md +5 -13
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +13 -17
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +25 -32
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +8 -15
- package/dist/global-skills/instrument-feature-flags/references/php.md +1 -15
- package/dist/global-skills/instrument-feature-flags/references/python.md +2 -15
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +13 -15
- package/dist/global-skills/instrument-feature-flags/references/react.md +17 -21
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +37 -83
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +2 -15
- package/dist/global-skills/instrument-feature-flags/references/rust.md +13 -25
- package/dist/global-skills/instrument-feature-flags/references/usage.md +14 -63
- package/dist/global-skills/instrument-feature-flags/references/web.md +9 -14
- package/dist/global-skills/instrument-product-analytics/SKILL.md +29 -29
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/android.md +72 -107
- package/dist/global-skills/instrument-product-analytics/references/angular.md +26 -28
- package/dist/global-skills/instrument-product-analytics/references/astro.md +13 -24
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +45 -63
- package/dist/global-skills/instrument-product-analytics/references/django.md +14 -27
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +20 -79
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +47 -49
- package/dist/global-skills/instrument-product-analytics/references/flask.md +13 -13
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +60 -90
- package/dist/global-skills/instrument-product-analytics/references/go.md +17 -56
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +15 -15
- package/dist/global-skills/instrument-product-analytics/references/ios.md +11 -15
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +13 -17
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +25 -32
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +13 -27
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +14 -28
- package/dist/global-skills/instrument-product-analytics/references/php.md +33 -84
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +229 -9
- package/dist/global-skills/instrument-product-analytics/references/python.md +415 -106
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +161 -155
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +12 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +15 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +12 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +26 -41
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +37 -83
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +48 -108
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +18 -24
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +17 -19
- package/dist/global-skills/instrument-product-analytics/references/usage.md +14 -63
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +29 -28
- package/dist/global-skills/manifest.json +8 -2
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +28 -37
- package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +438 -0
- package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +60 -4
- package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +46 -108
- package/dist/global-skills/neon/SKILL.md +207 -213
- package/dist/global-skills/neon/references/auth.md +12 -0
- package/dist/global-skills/neon/references/claimable-neon.md +10 -14
- package/dist/global-skills/neon/references/function-triggers.md +53 -0
- package/dist/global-skills/neon/references/logs-loki.md +61 -0
- package/dist/global-skills/neon/references/parse-env.md +32 -0
- package/dist/global-skills/neon/references/sdk.md +7 -0
- package/dist/global-skills/neon-ai-gateway/SKILL.md +14 -16
- package/dist/global-skills/neon-auth/SKILL.md +155 -0
- package/dist/global-skills/neon-auth/references/managed-auth.md +173 -0
- package/dist/global-skills/neon-auth/references/self-managed.md +25 -0
- package/dist/global-skills/neon-functions/SKILL.md +159 -84
- package/dist/global-skills/neon-functions/references/ai-sdk.md +4 -6
- package/dist/global-skills/neon-functions/references/function-triggers.md +249 -0
- package/dist/global-skills/neon-functions/references/mastra-studio.md +3 -3
- package/dist/global-skills/neon-functions/references/mcp.md +1 -1
- package/dist/global-skills/neon-functions/references/production-hardening.md +340 -0
- package/dist/global-skills/neon-functions/references/sse.md +8 -5
- package/dist/global-skills/neon-object-storage/SKILL.md +10 -11
- package/dist/global-skills/neon-postgres/SKILL.md +120 -17
- package/dist/global-skills/neon-postgres/references/full-text-search.md +99 -0
- package/dist/global-skills/neon-postgres/references/hybrid-search.md +90 -0
- package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +172 -0
- package/dist/global-skills/neon-postgres/references/vector-search.md +137 -0
- package/dist/global-skills/neon-postgres-branches/SKILL.md +3 -3
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
- package/dist/global-skills/onboarding/SKILL.md +8 -6
- package/dist/global-skills/resend/SKILL.md +4 -2
- package/dist/global-skills/resend/references/broadcasts.md +6 -1
- package/dist/global-skills/resend/references/receiving.md +29 -10
- package/dist/global-skills/resend/references/sending/email-management.md +14 -4
- package/dist/global-skills/resend/references/topics.md +9 -6
- package/dist/global-skills/resend/references/usage.md +117 -0
- package/dist/global-skills/resend/references/webhooks.md +59 -2
- package/dist/global-skills/stripe-best-practices/SKILL.md +35 -29
- package/dist/global-skills/stripe-best-practices/references/billing.md +9 -2
- package/dist/global-skills/stripe-best-practices/references/payments.md +4 -2
- package/dist/global-skills/stripe-best-practices/references/security.md +3 -1
- package/dist/global-skills/stripe-best-practices/references/tax.md +39 -20
- package/dist/global-skills/supabase/SKILL.md +6 -0
- package/dist/global-skills/use-railway/SKILL.md +42 -22
- package/dist/global-skills/use-railway/references/analyze-db.md +7 -6
- package/dist/global-skills/use-railway/references/cloud-agents.md +70 -0
- package/dist/global-skills/use-railway/references/configure.md +17 -2
- package/dist/global-skills/use-railway/references/databases.md +107 -0
- package/dist/global-skills/use-railway/references/deploy.md +5 -5
- package/dist/global-skills/use-railway/references/feature-flags.md +25 -13
- package/dist/global-skills/use-railway/references/iac.md +66 -77
- package/dist/global-skills/use-railway/references/operate.md +26 -3
- package/dist/global-skills/use-railway/references/request.md +31 -23
- package/dist/global-skills/use-railway/references/setup.md +16 -5
- package/dist/global-skills/use-railway/references/tracing.md +261 -0
- package/dist/global-skills/use-railway/references/usage.md +52 -0
- package/dist/global-skills/use-railway/scripts/analyze-mongo.py +0 -0
- package/dist/global-skills/use-railway/scripts/analyze-mysql.py +0 -0
- package/dist/global-skills/use-railway/scripts/analyze-postgres.py +0 -0
- package/dist/global-skills/use-railway/scripts/analyze-redis.py +0 -0
- package/dist/global-skills/use-railway/scripts/enable-pg-stats.py +0 -0
- package/dist/global-skills/use-railway/scripts/pg-extensions.py +0 -0
- package/dist/global-skills/use-railway/scripts/railway-api.sh +0 -0
- package/dist/global-skills/validate-my-idea/SKILL.md +54 -0
- package/dist/global-skills/{feedback → vybekiit-feedback}/SKILL.md +16 -12
- package/dist/global-skills/watch-my-app/SKILL.md +53 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +36 -103
- package/dist/global-skills/workers-best-practices/references/configuration.md +139 -0
- package/dist/global-skills/workers-best-practices/references/platform-apis.md +51 -0
- package/dist/global-skills/workers-best-practices/references/{rules.md → runtime-patterns.md} +13 -137
- package/dist/global-skills/wrangler/SKILL.md +48 -901
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +19 -15
- package/package.json +22 -22
- package/dist/global-skills/expo-native-ui/references/animations.md +0 -220
- package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +0 -577
- package/dist/global-skills/workers-best-practices/references/review.md +0 -174
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
2
|
|
|
3
|
-
# Android Feature Flags installation
|
|
4
|
-
|
|
5
|
-
Copy page
|
|
6
|
-
|
|
7
|
-
# Android Feature Flags installation - Docs
|
|
3
|
+
# Android Feature Flags installation
|
|
8
4
|
|
|
9
5
|
1. 1
|
|
10
6
|
|
|
@@ -16,8 +12,6 @@ Copy page
|
|
|
16
12
|
|
|
17
13
|
build.gradle
|
|
18
14
|
|
|
19
|
-
PostHog AI
|
|
20
|
-
|
|
21
15
|
```kotlin
|
|
22
16
|
dependencies {
|
|
23
17
|
implementation("com.posthog:posthog-android:3.+")
|
|
@@ -34,21 +28,23 @@ Copy page
|
|
|
34
28
|
|
|
35
29
|
SampleApp.kt
|
|
36
30
|
|
|
37
|
-
PostHog AI
|
|
38
|
-
|
|
39
31
|
```kotlin
|
|
40
32
|
class SampleApp : Application() {
|
|
33
|
+
|
|
41
34
|
companion object {
|
|
42
35
|
const val POSTHOG_PROJECT_TOKEN = "<ph_project_token>"
|
|
43
36
|
const val POSTHOG_HOST = "https://us.i.posthog.com"
|
|
44
37
|
}
|
|
38
|
+
|
|
45
39
|
override fun onCreate() {
|
|
46
40
|
super.onCreate()
|
|
41
|
+
|
|
47
42
|
// Create a PostHog Config with the given project token and host
|
|
48
43
|
val config = PostHogAndroidConfig(
|
|
49
44
|
apiKey = POSTHOG_PROJECT_TOKEN,
|
|
50
45
|
host = POSTHOG_HOST
|
|
51
46
|
)
|
|
47
|
+
|
|
52
48
|
// Setup PostHog with the given Context and Config
|
|
53
49
|
PostHogAndroid.setup(this, config)
|
|
54
50
|
}
|
|
@@ -65,10 +61,9 @@ Copy page
|
|
|
65
61
|
|
|
66
62
|
Kotlin
|
|
67
63
|
|
|
68
|
-
PostHog AI
|
|
69
|
-
|
|
70
64
|
```kotlin
|
|
71
65
|
import com.posthog.PostHog
|
|
66
|
+
|
|
72
67
|
PostHog.capture(
|
|
73
68
|
event = "button_clicked",
|
|
74
69
|
properties = mapOf(
|
|
@@ -87,8 +82,6 @@ Copy page
|
|
|
87
82
|
|
|
88
83
|
Kotlin
|
|
89
84
|
|
|
90
|
-
PostHog AI
|
|
91
|
-
|
|
92
85
|
```kotlin
|
|
93
86
|
val isMyFlagEnabled = PostHog.isFeatureEnabled("flag-key")
|
|
94
87
|
if (isMyFlagEnabled) {
|
|
@@ -108,8 +101,6 @@ Copy page
|
|
|
108
101
|
|
|
109
102
|
Kotlin
|
|
110
103
|
|
|
111
|
-
PostHog AI
|
|
112
|
-
|
|
113
104
|
```kotlin
|
|
114
105
|
val enabledVariant = PostHog.getFeatureFlag("flag-key")
|
|
115
106
|
if (enabledVariant == "variant-key") { // replace 'variant-key' with the key of your variant
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
2
|
|
|
3
|
-
# API Feature Flags installation
|
|
4
|
-
|
|
5
|
-
Copy page
|
|
6
|
-
|
|
7
|
-
# API Feature Flags installation - Docs
|
|
3
|
+
# API Feature Flags installation
|
|
8
4
|
|
|
9
5
|
1. 1
|
|
10
6
|
|
|
@@ -14,8 +10,6 @@ Copy page
|
|
|
14
10
|
|
|
15
11
|
`flags` is the endpoint used to determine if a given flag is enabled for a certain user or not.
|
|
16
12
|
|
|
17
|
-
PostHog AI
|
|
18
|
-
|
|
19
13
|
### Basic request (flags only)
|
|
20
14
|
|
|
21
15
|
```bash
|
|
@@ -33,6 +27,7 @@ Copy page
|
|
|
33
27
|
```python
|
|
34
28
|
import requests
|
|
35
29
|
import json
|
|
30
|
+
|
|
36
31
|
url = "https://us.i.posthog.com/flags?v=2"
|
|
37
32
|
headers = {
|
|
38
33
|
"Content-Type": "application/json"
|
|
@@ -80,8 +75,6 @@ Copy page
|
|
|
80
75
|
|
|
81
76
|
**Note:** This step is only required for events captured using our server-side SDKs or API.
|
|
82
77
|
|
|
83
|
-
PostHog AI
|
|
84
|
-
|
|
85
78
|
### Terminal
|
|
86
79
|
|
|
87
80
|
```bash
|
|
@@ -100,6 +93,7 @@ Copy page
|
|
|
100
93
|
```python
|
|
101
94
|
import requests
|
|
102
95
|
import json
|
|
96
|
+
|
|
103
97
|
url = "https://us.i.posthog.com/i/v0/e/"
|
|
104
98
|
headers = {
|
|
105
99
|
"Content-Type": "application/json"
|
|
@@ -129,8 +123,6 @@ Copy page
|
|
|
129
123
|
1. `$feature_flag_response`: This is the name of the variant the user has been assigned to e.g., "control" or "test"
|
|
130
124
|
2. `$feature_flag`: This is the key of the feature flag in your experiment.
|
|
131
125
|
|
|
132
|
-
PostHog AI
|
|
133
|
-
|
|
134
126
|
### Terminal
|
|
135
127
|
|
|
136
128
|
```bash
|
|
@@ -150,6 +142,7 @@ Copy page
|
|
|
150
142
|
```python
|
|
151
143
|
import requests
|
|
152
144
|
import json
|
|
145
|
+
|
|
153
146
|
url = "https://us.i.posthog.com/i/v0/e/"
|
|
154
147
|
headers = {
|
|
155
148
|
"Content-Type": "application/json"
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
2
|
|
|
3
|
-
# Best practices for production-ready flags
|
|
4
|
-
|
|
5
|
-
Copy page
|
|
6
|
-
|
|
7
|
-
# Best practices for production-ready flags - Docs
|
|
3
|
+
# Best practices for production-ready flags
|
|
8
4
|
|
|
9
5
|
## Checklist
|
|
10
6
|
|
|
@@ -30,8 +26,6 @@ Copy page
|
|
|
30
26
|
|
|
31
27
|
A flag hashes two things – the **flag key** and the **distinct ID** – and returns a deterministic result. Same inputs, same output. Every time.
|
|
32
28
|
|
|
33
|
-
PostHog AI
|
|
34
|
-
|
|
35
29
|
```
|
|
36
30
|
hash("my-experiment", "user-123") → 0.31 → always 0.31
|
|
37
31
|
```
|
|
@@ -46,8 +40,6 @@ On top of that, PostHog layers property targeting (does this user match?), rollo
|
|
|
46
40
|
|
|
47
41
|
PostHog uses SHA-1:
|
|
48
42
|
|
|
49
|
-
PostHog AI
|
|
50
|
-
|
|
51
43
|
```
|
|
52
44
|
hash_key = "{flag_key}.{distinct_id}"
|
|
53
45
|
position = parseInt(sha1(hash_key).slice(0, 15), 16) / LONG_SCALE → float in [0, 1]
|
|
@@ -139,8 +131,6 @@ If you can't bootstrap, use `onFeatureFlags()` to wait. This means you will need
|
|
|
139
131
|
|
|
140
132
|
JavaScript
|
|
141
133
|
|
|
142
|
-
PostHog AI
|
|
143
|
-
|
|
144
134
|
```javascript
|
|
145
135
|
// Returns undefined before flags load – not false
|
|
146
136
|
if (posthog.getFeatureFlag('my-experiment') === 'test') {
|
|
@@ -188,8 +178,6 @@ The more locations a flag appears in your code, the more likely it is to cause p
|
|
|
188
178
|
|
|
189
179
|
JavaScript
|
|
190
180
|
|
|
191
|
-
PostHog AI
|
|
192
|
-
|
|
193
181
|
```javascript
|
|
194
182
|
function useBetaFeature() {
|
|
195
183
|
return posthog.isFeatureEnabled('beta-feature')
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt
|
|
2
2
|
|
|
3
|
-
# Django
|
|
4
|
-
|
|
5
|
-
Copy page
|
|
6
|
-
|
|
7
|
-
# Django - Docs
|
|
3
|
+
# Django
|
|
8
4
|
|
|
9
5
|
PostHog makes it easy to get data about traffic and usage of your Django app. Integrating PostHog enables analytics, custom events capture, feature flags, error tracking, and more.
|
|
10
6
|
|
|
@@ -30,13 +26,13 @@ Then, configure PostHog in your app config so it's initialized when Django start
|
|
|
30
26
|
|
|
31
27
|
your\_app/apps.py
|
|
32
28
|
|
|
33
|
-
PostHog AI
|
|
34
|
-
|
|
35
29
|
```python
|
|
36
30
|
from django.apps import AppConfig
|
|
37
31
|
import posthog
|
|
32
|
+
|
|
38
33
|
class YourAppConfig(AppConfig):
|
|
39
34
|
name = 'your_app_name'
|
|
35
|
+
|
|
40
36
|
def ready(self):
|
|
41
37
|
posthog.api_key = '<ph_project_token>'
|
|
42
38
|
posthog.host = 'https://us.i.posthog.com'
|
|
@@ -46,8 +42,6 @@ Next, if you haven't done so already, add your `AppConfig` to `INSTALLED_APPS` i
|
|
|
46
42
|
|
|
47
43
|
settings.py
|
|
48
44
|
|
|
49
|
-
PostHog AI
|
|
50
|
-
|
|
51
45
|
```python
|
|
52
46
|
INSTALLED_APPS = [
|
|
53
47
|
# ... other apps
|
|
@@ -61,17 +55,17 @@ To capture events from any file, import `posthog` and call the method you need.
|
|
|
61
55
|
|
|
62
56
|
Python
|
|
63
57
|
|
|
64
|
-
PostHog AI
|
|
65
|
-
|
|
66
58
|
```python
|
|
67
59
|
import posthog
|
|
68
60
|
from posthog import identify_context
|
|
61
|
+
|
|
69
62
|
def some_request(request):
|
|
70
63
|
with posthog.new_context():
|
|
71
64
|
# Django includes request.user for anonymous visitors too. Only identify
|
|
72
65
|
# the context when the visitor is logged in.
|
|
73
66
|
if request.user.is_authenticated:
|
|
74
67
|
identify_context(str(request.user.pk))
|
|
68
|
+
|
|
75
69
|
posthog.capture('event_name')
|
|
76
70
|
```
|
|
77
71
|
|
|
@@ -85,10 +79,9 @@ Events captured without a context or explicit `distinct_id` are sent as [anonymo
|
|
|
85
79
|
>
|
|
86
80
|
> Python
|
|
87
81
|
>
|
|
88
|
-
> PostHog AI
|
|
89
|
-
>
|
|
90
82
|
> ```python
|
|
91
83
|
> from posthog import new_context, identify_context, capture
|
|
84
|
+
>
|
|
92
85
|
> @app.get("/foo")
|
|
93
86
|
> def foo(current_user: User = Depends(get_current_user)):
|
|
94
87
|
> with new_context(): # Set context at the top of a route
|
|
@@ -109,8 +102,6 @@ Add the middleware to your Django settings. If your app uses Django authenticati
|
|
|
109
102
|
|
|
110
103
|
Python
|
|
111
104
|
|
|
112
|
-
PostHog AI
|
|
113
|
-
|
|
114
105
|
```python
|
|
115
106
|
MIDDLEWARE = [
|
|
116
107
|
# ... other middleware
|
|
@@ -144,12 +135,11 @@ Identify the context from inside the request once you know who the user is. Djan
|
|
|
144
135
|
|
|
145
136
|
Python
|
|
146
137
|
|
|
147
|
-
PostHog AI
|
|
148
|
-
|
|
149
138
|
```python
|
|
150
139
|
from django.contrib.auth.signals import user_logged_in
|
|
151
140
|
from django.dispatch import receiver
|
|
152
141
|
from posthog import identify_context
|
|
142
|
+
|
|
153
143
|
@receiver(user_logged_in)
|
|
154
144
|
def identify_posthog_user(sender, request, user, **kwargs):
|
|
155
145
|
identify_context(str(user.pk))
|
|
@@ -167,8 +157,6 @@ Disable this by setting:
|
|
|
167
157
|
|
|
168
158
|
Python
|
|
169
159
|
|
|
170
|
-
PostHog AI
|
|
171
|
-
|
|
172
160
|
```python
|
|
173
161
|
# settings.py
|
|
174
162
|
POSTHOG_MW_CAPTURE_EXCEPTIONS = False
|
|
@@ -180,8 +168,6 @@ Use `POSTHOG_MW_EXTRA_TAGS` to add custom properties to all requests:
|
|
|
180
168
|
|
|
181
169
|
Python
|
|
182
170
|
|
|
183
|
-
PostHog AI
|
|
184
|
-
|
|
185
171
|
```python
|
|
186
172
|
# settings.py
|
|
187
173
|
def add_user_tags(request):
|
|
@@ -192,6 +178,7 @@ def add_user_tags(request):
|
|
|
192
178
|
tags['user_id'] = str(request.user.pk)
|
|
193
179
|
tags['email'] = request.user.email
|
|
194
180
|
return tags
|
|
181
|
+
|
|
195
182
|
POSTHOG_MW_EXTRA_TAGS = add_user_tags
|
|
196
183
|
```
|
|
197
184
|
|
|
@@ -201,8 +188,6 @@ Skip tracking for certain requests using `POSTHOG_MW_REQUEST_FILTER`:
|
|
|
201
188
|
|
|
202
189
|
Python
|
|
203
190
|
|
|
204
|
-
PostHog AI
|
|
205
|
-
|
|
206
191
|
```python
|
|
207
192
|
# settings.py
|
|
208
193
|
def should_track_request(request):
|
|
@@ -211,6 +196,7 @@ def should_track_request(request):
|
|
|
211
196
|
if request.path.startswith('/health') or request.path.startswith('/admin'):
|
|
212
197
|
return False
|
|
213
198
|
return True
|
|
199
|
+
|
|
214
200
|
POSTHOG_MW_REQUEST_FILTER = should_track_request
|
|
215
201
|
```
|
|
216
202
|
|
|
@@ -220,8 +206,6 @@ Use `POSTHOG_MW_TAG_MAP` to modify or remove default tags:
|
|
|
220
206
|
|
|
221
207
|
Python
|
|
222
208
|
|
|
223
|
-
PostHog AI
|
|
224
|
-
|
|
225
209
|
```python
|
|
226
210
|
# settings.py
|
|
227
211
|
def customize_tags(tags):
|
|
@@ -232,6 +216,7 @@ def customize_tags(tags):
|
|
|
232
216
|
if '$request_method' in tags:
|
|
233
217
|
tags['http_method'] = tags.pop('$request_method')
|
|
234
218
|
return tags
|
|
219
|
+
|
|
235
220
|
POSTHOG_MW_TAG_MAP = customize_tags
|
|
236
221
|
```
|
|
237
222
|
|
|
@@ -239,8 +224,6 @@ POSTHOG_MW_TAG_MAP = customize_tags
|
|
|
239
224
|
|
|
240
225
|
Python
|
|
241
226
|
|
|
242
|
-
PostHog AI
|
|
243
|
-
|
|
244
227
|
```python
|
|
245
228
|
# settings.py
|
|
246
229
|
def add_request_context(request):
|
|
@@ -252,18 +235,22 @@ def add_request_context(request):
|
|
|
252
235
|
tags['user_id'] = str(request.user.pk)
|
|
253
236
|
else:
|
|
254
237
|
tags['user_type'] = 'anonymous'
|
|
238
|
+
|
|
255
239
|
# Add request info
|
|
256
240
|
tags['user_agent'] = request.META.get('HTTP_USER_AGENT', '')
|
|
257
241
|
return tags
|
|
242
|
+
|
|
258
243
|
def filter_tracking(request):
|
|
259
244
|
# type: (HttpRequest) -> bool
|
|
260
245
|
# Skip internal endpoints
|
|
261
246
|
return not request.path.startswith(('/health', '/metrics', '/admin'))
|
|
247
|
+
|
|
262
248
|
def clean_tags(tags):
|
|
263
249
|
# type: (Dict[str, Any]) -> Dict[str, Any]
|
|
264
250
|
# Remove sensitive data
|
|
265
251
|
tags.pop('user_agent', None)
|
|
266
252
|
return tags
|
|
253
|
+
|
|
267
254
|
POSTHOG_MW_EXTRA_TAGS = add_request_context
|
|
268
255
|
POSTHOG_MW_REQUEST_FILTER = filter_tracking
|
|
269
256
|
POSTHOG_MW_TAG_MAP = clean_tags
|