vybekiit 0.7.26 → 0.7.28

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.
Files changed (274) hide show
  1. package/dist/bin.js +3910 -1300
  2. package/dist/global-guidance/language.md +443 -0
  3. package/dist/global-skills/add-ai/SKILL.md +1 -1
  4. package/dist/global-skills/add-analytics/SKILL.md +1 -1
  5. package/dist/global-skills/add-blog/SKILL.md +1 -1
  6. package/dist/global-skills/add-crud/SKILL.md +1 -1
  7. package/dist/global-skills/add-files/SKILL.md +1 -1
  8. package/dist/global-skills/add-images/SKILL.md +1 -1
  9. package/dist/global-skills/add-language/SKILL.md +1 -1
  10. package/dist/global-skills/add-notifications/SKILL.md +1 -1
  11. package/dist/global-skills/add-realtime/SKILL.md +1 -1
  12. package/dist/global-skills/add-route/SKILL.md +1 -1
  13. package/dist/global-skills/add-search/SKILL.md +1 -1
  14. package/dist/global-skills/add-signin/SKILL.md +1 -1
  15. package/dist/global-skills/add-teams/SKILL.md +1 -1
  16. package/dist/global-skills/add-upload/SKILL.md +1 -1
  17. package/dist/global-skills/aws-cdk/SKILL.md +19 -5
  18. package/dist/global-skills/aws-cdk/references/fast-deployments.md +191 -0
  19. package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +16 -0
  20. package/dist/global-skills/aws-cloudformation/SKILL.md +16 -26
  21. package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +7 -3
  22. package/dist/global-skills/aws-cloudformation/references/cloudformation-language-server.md +177 -0
  23. package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +8 -2
  24. package/dist/global-skills/aws-cloudformation/references/persist-template-context.script.md +5 -8
  25. package/dist/global-skills/aws-cloudformation/references/retrieve-template-context.script.md +1 -1
  26. package/dist/global-skills/aws-cloudformation/references/security-considerations.md +51 -0
  27. package/dist/global-skills/aws-cloudformation/references/troubleshoot-failed-stack.script.md +138 -0
  28. package/dist/global-skills/aws-cloudformation/references/{validate-cloudformation-template.script.md → validate-with-cfn-lint.script.md} +15 -27
  29. package/dist/global-skills/aws-cloudformation/references/validate-with-cloudformation-validate.script.md +181 -0
  30. package/dist/global-skills/aws-cloudformation/references/validation-tool-selection.md +44 -0
  31. package/dist/global-skills/aws-serverless/SKILL.md +9 -1
  32. package/dist/global-skills/aws-serverless/references/architecture.md +3 -1
  33. package/dist/global-skills/aws-serverless/references/lambda.md +3 -1
  34. package/dist/global-skills/aws-serverless/references/orchestration.md +1 -0
  35. package/dist/global-skills/back-up-my-code/SKILL.md +1 -1
  36. package/dist/global-skills/better-auth-best-practices/SKILL.md +18 -8
  37. package/dist/global-skills/buy-domain/SKILL.md +1 -1
  38. package/dist/global-skills/check-safety/SKILL.md +1 -1
  39. package/dist/global-skills/configure-capabilities/SKILL.md +1 -1
  40. package/dist/global-skills/connect-account/SKILL.md +1 -1
  41. package/dist/global-skills/connect-account-backend/SKILL.md +1 -1
  42. package/dist/global-skills/design-my-data/SKILL.md +1 -1
  43. package/dist/global-skills/doctor/SKILL.md +1 -1
  44. package/dist/global-skills/eas-app-stores/SKILL.md +31 -15
  45. package/dist/global-skills/eas-app-stores/agents/openai.yaml +2 -2
  46. package/dist/global-skills/eas-app-stores/references/ios-app-store.md +37 -32
  47. package/dist/global-skills/eas-app-stores/references/native-ios.md +167 -0
  48. package/dist/global-skills/eas-app-stores/references/play-store.md +3 -7
  49. package/dist/global-skills/eas-app-stores/references/testflight.md +39 -35
  50. package/dist/global-skills/eas-simulator/SKILL.md +48 -26
  51. package/dist/global-skills/eas-simulator/references/controllers.md +32 -3
  52. package/dist/global-skills/eas-simulator/references/run-your-app.md +34 -4
  53. package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -4
  54. package/dist/global-skills/eas-update/SKILL.md +146 -0
  55. package/dist/global-skills/eas-update/agents/openai.yaml +4 -0
  56. package/dist/global-skills/expo-animation/RECIPES.md +2 -2
  57. package/dist/global-skills/expo-animation/SKILL.md +9 -2
  58. package/dist/global-skills/expo-brownfield/SKILL.md +18 -11
  59. package/dist/global-skills/expo-brownfield/agents/openai.yaml +2 -2
  60. package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +94 -69
  61. package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +40 -42
  62. package/dist/global-skills/expo-brownfield/references/comparison.md +5 -5
  63. package/dist/global-skills/expo-brownfield/references/feature-integration.md +163 -0
  64. package/dist/global-skills/expo-brownfield/references/troubleshooting.md +17 -17
  65. package/dist/global-skills/expo-brownfield/references/version-compatibility.md +40 -0
  66. package/dist/global-skills/expo-data-fetching/SKILL.md +27 -6
  67. package/dist/global-skills/expo-design-system/SKILL.md +27 -7
  68. package/dist/global-skills/expo-design-system/references/audit.md +7 -2
  69. package/dist/global-skills/expo-design-system/references/native-slop.md +74 -0
  70. package/dist/global-skills/expo-examples/SKILL.md +0 -1
  71. package/dist/global-skills/expo-examples/references/catalog.md +1 -1
  72. package/dist/global-skills/expo-migrate-module/SKILL.md +21 -10
  73. package/dist/global-skills/expo-migrate-module/references/compatibility.md +80 -23
  74. package/dist/global-skills/expo-migrate-module/references/migration-map.md +162 -11
  75. package/dist/global-skills/expo-native-ui/SKILL.md +25 -16
  76. package/dist/global-skills/expo-native-ui/agents/openai.yaml +2 -2
  77. package/dist/global-skills/expo-native-ui/references/controls.md +5 -46
  78. package/dist/global-skills/expo-native-ui/references/icons.md +21 -2
  79. package/dist/global-skills/expo-native-ui/references/media.md +15 -20
  80. package/dist/global-skills/expo-native-ui/references/visual-effects.md +12 -11
  81. package/dist/global-skills/expo-overview/SKILL.md +17 -12
  82. package/dist/global-skills/expo-router/SKILL.md +5 -3
  83. package/dist/global-skills/expo-router/references/tabs.md +5 -5
  84. package/dist/global-skills/expo-upgrade/SKILL.md +3 -1
  85. package/dist/global-skills/expo-web-to-native/references/false-friends.md +2 -2
  86. package/dist/global-skills/expo-web-to-native/references/native-patterns.md +1 -1
  87. package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +13 -16
  88. package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +4 -5
  89. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +4 -4
  90. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +3 -3
  91. package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
  92. package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +4 -5
  93. package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
  94. package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +24 -25
  95. package/dist/global-skills/firebase-auth-basics/references/security_rules.md +4 -2
  96. package/dist/global-skills/firebase-crashlytics/references/android_setup.md +7 -4
  97. package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +2 -3
  98. package/dist/global-skills/firebase-data-connect/SKILL.md +2 -1
  99. package/dist/global-skills/firebase-data-connect/examples.md +4 -4
  100. package/dist/global-skills/firebase-data-connect/reference/config.md +5 -4
  101. package/dist/global-skills/firebase-data-connect/reference/realtime.md +1 -2
  102. package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +2 -2
  103. package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +2 -2
  104. package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +17 -6
  105. package/dist/global-skills/firebase-data-connect/reference/security.md +5 -5
  106. package/dist/global-skills/firebase-data-connect/templates.md +2 -1
  107. package/dist/global-skills/firebase-firestore/SKILL.md +20 -8
  108. package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +5 -4
  109. package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +12 -3
  110. package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +16 -18
  111. package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +1 -1
  112. package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +5 -1
  113. package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +7 -7
  114. package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +5 -5
  115. package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +4 -4
  116. package/dist/global-skills/firebase-firestore/references/standard/indexes.md +16 -18
  117. package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +1 -1
  118. package/dist/global-skills/firebase-remote-config-basics/SKILL.md +0 -5
  119. package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +36 -8
  120. package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +1 -7
  121. package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +17 -6
  122. package/dist/global-skills/{firebase-firestore/references/standard/security_rules.md → firestore-rules-creation/SKILL.md} +24 -13
  123. package/dist/global-skills/go-live/SKILL.md +1 -1
  124. package/dist/global-skills/grow-my-customers/SKILL.md +23 -0
  125. package/dist/global-skills/harden/SKILL.md +1 -1
  126. package/dist/global-skills/instrument-feature-flags/SKILL.md +25 -25
  127. package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +141 -285
  128. package/dist/global-skills/instrument-feature-flags/references/android.md +6 -15
  129. package/dist/global-skills/instrument-feature-flags/references/api.md +4 -11
  130. package/dist/global-skills/instrument-feature-flags/references/best-practices.md +1 -13
  131. package/dist/global-skills/instrument-feature-flags/references/django.md +14 -27
  132. package/dist/global-skills/instrument-feature-flags/references/dotnet.md +20 -79
  133. package/dist/global-skills/instrument-feature-flags/references/elixir.md +1 -9
  134. package/dist/global-skills/instrument-feature-flags/references/flask.md +13 -13
  135. package/dist/global-skills/instrument-feature-flags/references/flutter.md +3 -24
  136. package/dist/global-skills/instrument-feature-flags/references/go.md +3 -15
  137. package/dist/global-skills/instrument-feature-flags/references/ios.md +4 -17
  138. package/dist/global-skills/instrument-feature-flags/references/java.md +5 -13
  139. package/dist/global-skills/instrument-feature-flags/references/laravel.md +13 -17
  140. package/dist/global-skills/instrument-feature-flags/references/next-js.md +25 -32
  141. package/dist/global-skills/instrument-feature-flags/references/nodejs.md +8 -15
  142. package/dist/global-skills/instrument-feature-flags/references/php.md +1 -15
  143. package/dist/global-skills/instrument-feature-flags/references/python.md +2 -15
  144. package/dist/global-skills/instrument-feature-flags/references/react-native.md +13 -15
  145. package/dist/global-skills/instrument-feature-flags/references/react.md +17 -21
  146. package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +37 -83
  147. package/dist/global-skills/instrument-feature-flags/references/ruby.md +2 -15
  148. package/dist/global-skills/instrument-feature-flags/references/rust.md +13 -25
  149. package/dist/global-skills/instrument-feature-flags/references/usage.md +14 -63
  150. package/dist/global-skills/instrument-feature-flags/references/web.md +9 -14
  151. package/dist/global-skills/instrument-product-analytics/SKILL.md +29 -29
  152. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +3 -1
  153. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +3 -1
  154. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +3 -1
  155. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +3 -1
  156. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +3 -1
  157. package/dist/global-skills/instrument-product-analytics/references/android.md +72 -107
  158. package/dist/global-skills/instrument-product-analytics/references/angular.md +26 -28
  159. package/dist/global-skills/instrument-product-analytics/references/astro.md +13 -24
  160. package/dist/global-skills/instrument-product-analytics/references/configuration.md +45 -63
  161. package/dist/global-skills/instrument-product-analytics/references/django.md +14 -27
  162. package/dist/global-skills/instrument-product-analytics/references/dotnet.md +20 -79
  163. package/dist/global-skills/instrument-product-analytics/references/elixir.md +47 -49
  164. package/dist/global-skills/instrument-product-analytics/references/flask.md +13 -13
  165. package/dist/global-skills/instrument-product-analytics/references/flutter.md +60 -90
  166. package/dist/global-skills/instrument-product-analytics/references/go.md +17 -56
  167. package/dist/global-skills/instrument-product-analytics/references/identify-users.md +15 -15
  168. package/dist/global-skills/instrument-product-analytics/references/ios.md +11 -15
  169. package/dist/global-skills/instrument-product-analytics/references/laravel.md +13 -17
  170. package/dist/global-skills/instrument-product-analytics/references/next-js.md +25 -32
  171. package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +13 -27
  172. package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +14 -28
  173. package/dist/global-skills/instrument-product-analytics/references/php.md +33 -84
  174. package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +229 -9
  175. package/dist/global-skills/instrument-product-analytics/references/python.md +415 -106
  176. package/dist/global-skills/instrument-product-analytics/references/react-native.md +161 -155
  177. package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +12 -33
  178. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +15 -33
  179. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +12 -33
  180. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +26 -41
  181. package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +37 -83
  182. package/dist/global-skills/instrument-product-analytics/references/ruby.md +48 -108
  183. package/dist/global-skills/instrument-product-analytics/references/svelte.md +18 -24
  184. package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +17 -19
  185. package/dist/global-skills/instrument-product-analytics/references/usage.md +14 -63
  186. package/dist/global-skills/instrument-product-analytics/references/vue-js.md +29 -28
  187. package/dist/global-skills/manifest.json +8 -2
  188. package/dist/global-skills/mongodb-search-and-ai/SKILL.md +28 -37
  189. package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +438 -0
  190. package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +60 -4
  191. package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +46 -108
  192. package/dist/global-skills/neon/SKILL.md +207 -213
  193. package/dist/global-skills/neon/references/auth.md +12 -0
  194. package/dist/global-skills/neon/references/claimable-neon.md +10 -14
  195. package/dist/global-skills/neon/references/function-triggers.md +53 -0
  196. package/dist/global-skills/neon/references/logs-loki.md +61 -0
  197. package/dist/global-skills/neon/references/parse-env.md +32 -0
  198. package/dist/global-skills/neon/references/sdk.md +7 -0
  199. package/dist/global-skills/neon-ai-gateway/SKILL.md +14 -16
  200. package/dist/global-skills/neon-auth/SKILL.md +155 -0
  201. package/dist/global-skills/neon-auth/references/managed-auth.md +173 -0
  202. package/dist/global-skills/neon-auth/references/self-managed.md +25 -0
  203. package/dist/global-skills/neon-functions/SKILL.md +159 -84
  204. package/dist/global-skills/neon-functions/references/ai-sdk.md +4 -6
  205. package/dist/global-skills/neon-functions/references/function-triggers.md +249 -0
  206. package/dist/global-skills/neon-functions/references/mastra-studio.md +3 -3
  207. package/dist/global-skills/neon-functions/references/mcp.md +1 -1
  208. package/dist/global-skills/neon-functions/references/production-hardening.md +340 -0
  209. package/dist/global-skills/neon-functions/references/sse.md +8 -5
  210. package/dist/global-skills/neon-object-storage/SKILL.md +10 -11
  211. package/dist/global-skills/neon-postgres/SKILL.md +120 -17
  212. package/dist/global-skills/neon-postgres/references/full-text-search.md +99 -0
  213. package/dist/global-skills/neon-postgres/references/hybrid-search.md +90 -0
  214. package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +172 -0
  215. package/dist/global-skills/neon-postgres/references/vector-search.md +137 -0
  216. package/dist/global-skills/neon-postgres-branches/SKILL.md +3 -3
  217. package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
  218. package/dist/global-skills/onboarding/SKILL.md +16 -14
  219. package/dist/global-skills/plan-my-idea/SKILL.md +1 -1
  220. package/dist/global-skills/publish-app/SKILL.md +1 -1
  221. package/dist/global-skills/publish-extension/SKILL.md +1 -1
  222. package/dist/global-skills/resend/SKILL.md +4 -2
  223. package/dist/global-skills/resend/references/broadcasts.md +6 -1
  224. package/dist/global-skills/resend/references/receiving.md +29 -10
  225. package/dist/global-skills/resend/references/sending/email-management.md +14 -4
  226. package/dist/global-skills/resend/references/topics.md +9 -6
  227. package/dist/global-skills/resend/references/usage.md +117 -0
  228. package/dist/global-skills/resend/references/webhooks.md +59 -2
  229. package/dist/global-skills/reset-password/SKILL.md +1 -1
  230. package/dist/global-skills/save-data/SKILL.md +1 -1
  231. package/dist/global-skills/setup-email/SKILL.md +1 -1
  232. package/dist/global-skills/setup-payments/SKILL.md +1 -1
  233. package/dist/global-skills/setup-sms/SKILL.md +1 -1
  234. package/dist/global-skills/sign-in-with-email-link/SKILL.md +1 -1
  235. package/dist/global-skills/sign-in-with-google/SKILL.md +1 -1
  236. package/dist/global-skills/sign-in-with-phone/SKILL.md +1 -1
  237. package/dist/global-skills/stripe-best-practices/SKILL.md +35 -29
  238. package/dist/global-skills/stripe-best-practices/references/billing.md +9 -2
  239. package/dist/global-skills/stripe-best-practices/references/payments.md +4 -2
  240. package/dist/global-skills/stripe-best-practices/references/security.md +3 -1
  241. package/dist/global-skills/stripe-best-practices/references/tax.md +39 -20
  242. package/dist/global-skills/supabase/SKILL.md +6 -0
  243. package/dist/global-skills/track-errors/SKILL.md +1 -1
  244. package/dist/global-skills/update-kit/SKILL.md +1 -1
  245. package/dist/global-skills/use-railway/SKILL.md +42 -22
  246. package/dist/global-skills/use-railway/references/analyze-db.md +7 -6
  247. package/dist/global-skills/use-railway/references/cloud-agents.md +70 -0
  248. package/dist/global-skills/use-railway/references/configure.md +17 -2
  249. package/dist/global-skills/use-railway/references/databases.md +107 -0
  250. package/dist/global-skills/use-railway/references/deploy.md +5 -5
  251. package/dist/global-skills/use-railway/references/feature-flags.md +25 -13
  252. package/dist/global-skills/use-railway/references/iac.md +66 -77
  253. package/dist/global-skills/use-railway/references/operate.md +26 -3
  254. package/dist/global-skills/use-railway/references/request.md +31 -23
  255. package/dist/global-skills/use-railway/references/setup.md +16 -5
  256. package/dist/global-skills/use-railway/references/tracing.md +261 -0
  257. package/dist/global-skills/use-railway/references/usage.md +52 -0
  258. package/dist/global-skills/validate-my-idea/SKILL.md +54 -0
  259. package/dist/global-skills/{feedback → vybekiit-feedback}/SKILL.md +17 -13
  260. package/dist/global-skills/watch-my-app/SKILL.md +53 -0
  261. package/dist/global-skills/wire-auth/SKILL.md +1 -1
  262. package/dist/global-skills/wire-database/SKILL.md +1 -1
  263. package/dist/global-skills/wire-email/SKILL.md +1 -1
  264. package/dist/global-skills/wire-payments/SKILL.md +1 -1
  265. package/dist/global-skills/workers-best-practices/SKILL.md +36 -103
  266. package/dist/global-skills/workers-best-practices/references/configuration.md +139 -0
  267. package/dist/global-skills/workers-best-practices/references/platform-apis.md +51 -0
  268. package/dist/global-skills/workers-best-practices/references/{rules.md → runtime-patterns.md} +13 -137
  269. package/dist/global-skills/wrangler/SKILL.md +48 -901
  270. package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +19 -15
  271. package/package.json +9 -8
  272. package/dist/global-skills/expo-native-ui/references/animations.md +0 -220
  273. package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +0 -577
  274. 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
- # Elixir - Docs
4
-
5
- Copy page
6
-
7
- # Elixir - Docs
3
+ # Elixir
8
4
 
9
5
  This library provides an Elixir HTTP client for PostHog. [See the repository](https://github.com/posthog/posthog-elixir) for more information.
10
6
 
@@ -16,8 +12,6 @@ The package can be installed by adding `posthog` to your list of dependencies in
16
12
 
17
13
  Elixir
18
14
 
19
- PostHog AI
20
-
21
15
  ```elixir
22
16
  def deps do
23
17
  [
@@ -30,8 +24,6 @@ end
30
24
 
31
25
  config/config.exs
32
26
 
33
- PostHog AI
34
-
35
27
  ```elixir
36
28
  config :posthog,
37
29
  enable: true,
@@ -60,8 +52,6 @@ To capture an event, use `PostHog.capture/2`:
60
52
 
61
53
  Elixir
62
54
 
63
- PostHog AI
64
-
65
55
  ```elixir
66
56
  PostHog.capture("user_signed_up", %{distinct_id: "distinct_id_of_the_user"})
67
57
  ```
@@ -74,8 +64,6 @@ Optionally, you can include additional information with the event by including a
74
64
 
75
65
  Elixir
76
66
 
77
- PostHog AI
78
-
79
67
  ```elixir
80
68
  PostHog.capture("user_signed_up", %{
81
69
  distinct_id: "distinct_id_of_the_user",
@@ -92,8 +80,6 @@ The context is stored in the `Logger` metadata and PostHog automatically attache
92
80
 
93
81
  Elixir
94
82
 
95
- PostHog AI
96
-
97
83
  ```elixir
98
84
  PostHog.set_context(%{distinct_id: "distinct_id_of_the_user"})
99
85
  PostHog.capture("page_opened")
@@ -103,8 +89,6 @@ You can also scope the context to a specific event name:
103
89
 
104
90
  Elixir
105
91
 
106
- PostHog AI
107
-
108
92
  ```elixir
109
93
  PostHog.set_event_context("sensitive_event", %{"$process_person_profile": false})
110
94
  ```
@@ -125,8 +109,6 @@ For example:
125
109
 
126
110
  Elixir
127
111
 
128
- PostHog AI
129
-
130
112
  ```elixir
131
113
  PostHog.capture("$create_alias", %{distinct_id: "frontend_id", alias: "backend_id"})
132
114
  ```
@@ -135,8 +117,6 @@ PostHog.capture("$create_alias", %{distinct_id: "frontend_id", alias: "backend_i
135
117
 
136
118
  Elixir
137
119
 
138
- PostHog AI
139
-
140
120
  ```elixir
141
121
  PostHog.capture("$groupidentify", %{
142
122
  distinct_id: "static_string_used_for_all_group_events",
@@ -151,8 +131,6 @@ For Phoenix or Plug apps, add `PostHog.Integrations.Plug` before your router to
151
131
 
152
132
  lib/my\_app\_web/endpoint.ex
153
133
 
154
- PostHog AI
155
-
156
134
  ```elixir
157
135
  plug PostHog.Integrations.Plug
158
136
  plug MyAppWeb.Router
@@ -162,14 +140,14 @@ For plain Plug routers, add it before `:match` and `:dispatch`:
162
140
 
163
141
  Elixir
164
142
 
165
- PostHog AI
166
-
167
143
  ```elixir
168
144
  defmodule MyRouter do
169
145
  use Plug.Router
146
+
170
147
  plug PostHog.Integrations.Plug
171
148
  plug :match
172
149
  plug :dispatch
150
+
173
151
  # ... routes
174
152
  end
175
153
  ```
@@ -194,10 +172,9 @@ Call `PostHog.FeatureFlags.evaluate_flags/1` once for the user, then read values
194
172
 
195
173
  Elixir
196
174
 
197
- PostHog AI
198
-
199
175
  ```elixir
200
176
  {:ok, snapshot} = PostHog.FeatureFlags.evaluate_flags("distinct_id_of_your_user")
177
+
201
178
  if PostHog.FeatureFlags.Evaluations.enabled?(snapshot, "flag-key") do
202
179
  # Do something differently for this user
203
180
  # Optional: fetch the payload
@@ -209,11 +186,11 @@ end
209
186
 
210
187
  Elixir
211
188
 
212
- PostHog AI
213
-
214
189
  ```elixir
215
190
  {:ok, snapshot} = PostHog.FeatureFlags.evaluate_flags("distinct_id_of_your_user")
191
+
216
192
  enabled_variant = PostHog.FeatureFlags.Evaluations.get_flag(snapshot, "flag-key")
193
+
217
194
  if enabled_variant == "variant-key" do
218
195
  # Do something differently for this user
219
196
  # Optional: fetch the payload
@@ -239,13 +216,13 @@ Put the same `snapshot` object that you used for branching into context. Subsequ
239
216
 
240
217
  Elixir
241
218
 
242
- PostHog AI
243
-
244
219
  ```elixir
245
220
  {:ok, snapshot} = PostHog.FeatureFlags.evaluate_flags("distinct_id_of_your_user")
221
+
246
222
  if PostHog.FeatureFlags.Evaluations.enabled?(snapshot, "flag-key") do
247
223
  # Do something differently for this user
248
224
  end
225
+
249
226
  PostHog.FeatureFlags.set_in_context(snapshot)
250
227
  PostHog.capture("event_name", %{distinct_id: "distinct_id_of_your_user"})
251
228
  ```
@@ -256,15 +233,15 @@ To reduce event property bloat, put a filtered snapshot in context:
256
233
 
257
234
  Elixir
258
235
 
259
- PostHog AI
260
-
261
236
  ```elixir
262
237
  {:ok, snapshot} = PostHog.FeatureFlags.evaluate_flags("distinct_id_of_your_user")
238
+
263
239
  # Attach only flags accessed with enabled?/2 or get_flag/2 before this call
264
240
  PostHog.FeatureFlags.Evaluations.enabled?(snapshot, "flag-key")
265
241
  PostHog.FeatureFlags.set_in_context(
266
242
  PostHog.FeatureFlags.Evaluations.only_accessed(snapshot)
267
243
  )
244
+
268
245
  # Or attach only specific flags
269
246
  PostHog.FeatureFlags.set_in_context(
270
247
  PostHog.FeatureFlags.Evaluations.only(snapshot, ["checkout-flow", "new-dashboard"])
@@ -279,8 +256,6 @@ In the event properties, include `$feature/feature_flag_name: variant_key`:
279
256
 
280
257
  Elixir
281
258
 
282
- PostHog AI
283
-
284
259
  ```elixir
285
260
  PostHog.capture("event_name", %{
286
261
  "$feature/feature-flag-key" => "variant-key",
@@ -294,8 +269,6 @@ By default, `evaluate_flags/1` evaluates every flag for the user. If you only ne
294
269
 
295
270
  Elixir
296
271
 
297
- PostHog AI
298
-
299
272
  ```elixir
300
273
  {:ok, snapshot} =
301
274
  PostHog.FeatureFlags.evaluate_flags(%{
@@ -310,6 +283,34 @@ Capturing `$feature_flag_called` events enables PostHog to know when a flag was
310
283
 
311
284
  `PostHog.FeatureFlags.Evaluations.get_flag_payload/2` doesn't send `$feature_flag_called` events.
312
285
 
286
+ ### Local feature flag evaluation
287
+
288
+ Local evaluation is available in version 2.15.0 and later. Follow the [server-side local evaluation guide](/docs/feature-flags/local-evaluation.md) to find your secure key and see how to pass the person properties, groups, and group properties that your flag conditions require.
289
+
290
+ Store the secure key in a server-side environment variable. Don't expose it to client-side applications:
291
+
292
+ config/runtime.exs
293
+
294
+ ```elixir
295
+ config :posthog,
296
+ api_host: "https://us.i.posthog.com",
297
+ api_key: "<ph_project_token>",
298
+ secret_key: System.fetch_env!("POSTHOG_FEATURE_FLAGS_SECURE_API_KEY")
299
+ ```
300
+
301
+ When `secret_key` is set, the SDK fetches definitions when it starts and polls for updates every 30 seconds. `PostHog.FeatureFlags.evaluate_flags/1` evaluates each flag locally first. If a flag can't be evaluated locally, the SDK makes one `/flags` request to resolve the remaining flags. Set `only_evaluate_locally: true` in the evaluation map to prevent this remote fallback. The SDK then omits unresolved flags from the snapshot.
302
+
303
+ Use these configuration options to control local evaluation:
304
+
305
+ | Option | Default | Purpose |
306
+ | --- | --- | --- |
307
+ | `enable_local_evaluation` | `true` | Starts local evaluation when `secret_key` is set. |
308
+ | `feature_flags_poll_interval_ms` | `30_000` | Sets the interval between definition refreshes. |
309
+ | `flag_definition_request_timeout_ms` | `10_000` | Sets the timeout for each definition request. |
310
+ | `flag_definition_cache_provider_timeout_ms` | `5_000` | Sets the timeout for each shared cache provider callback. |
311
+
312
+ For multiple server instances, you can implement `PostHog.FeatureFlags.FlagDefinitionCacheProvider` and set `flag_definition_cache_provider: {module, state}`. This optional provider shares definitions and coordinates which instance polls PostHog. See [local evaluation in distributed environments](/docs/feature-flags/local-evaluation/distributed-environments?tab=Elixir.md) for the callback contract and configuration.
313
+
313
314
  ## Error tracking
314
315
 
315
316
  Error tracking is enabled by default. It will automatically captures exceptions thrown by the application.
@@ -320,8 +321,6 @@ You can always disable it by setting `enable_error_tracking` to false:
320
321
 
321
322
  Elixir
322
323
 
323
- PostHog AI
324
-
325
324
  ```elixir
326
325
  config :posthog,
327
326
  enable_error_tracking: false
@@ -335,10 +334,9 @@ In certain cases, you might want to run this supervision tree yourself. You can
335
334
 
336
335
  config.exs
337
336
 
338
- PostHog AI
339
-
340
337
  ```elixir
341
338
  config :posthog, enable: false
339
+
342
340
  config :my_app, :posthog,
343
341
  api_host: "https://us.i.posthog.com",
344
342
  api_key: "<ph_project_token>"
@@ -346,17 +344,19 @@ config :my_app, :posthog,
346
344
 
347
345
  application.ex
348
346
 
349
- PostHog AI
350
-
351
347
  ```elixir
352
348
  defmodule MyApp.Application do
353
349
  use Application
350
+
354
351
  def start(_type, _args) do
355
352
  posthog_config = Application.fetch_env!(:my_app, :posthog) |> PostHog.Config.validate!()
353
+
356
354
  :logger.add_handler(:posthog, PostHog.Handler, %{config: posthog_config})
355
+
357
356
  children = [
358
357
  {PostHog.Supervisor, posthog_config}
359
358
  ]
359
+
360
360
  Supervisor.start_link(children, strategy: :one_for_one)
361
361
  end
362
362
  end
@@ -368,12 +368,11 @@ In even more advanced cases, you might want to interact with more than one PostH
368
368
 
369
369
  config.exs
370
370
 
371
- PostHog AI
372
-
373
371
  ```elixir
374
372
  config :posthog,
375
373
  api_host: "https://us.i.posthog.com",
376
374
  api_key: "<ph_project_token>"
375
+
377
376
  config :my_app, :another_posthog,
378
377
  api_host: "https://us.i.posthog.com",
379
378
  api_key: "a_different_project_api_key",
@@ -382,16 +381,17 @@ config :my_app, :another_posthog,
382
381
 
383
382
  application.ex
384
383
 
385
- PostHog AI
386
-
387
384
  ```elixir
388
385
  defmodule MyApp.Application do
389
386
  use Application
387
+
390
388
  def start(_type, _args) do
391
389
  posthog_config = Application.fetch_env!(:my_app, :another_posthog) |> PostHog.Config.validate!()
390
+
392
391
  children = [
393
392
  {PostHog.Supervisor, posthog_config}
394
393
  ]
394
+
395
395
  Supervisor.start_link(children, strategy: :one_for_one)
396
396
  end
397
397
  end
@@ -401,8 +401,6 @@ Then, each function in the PostHog module accepts an optional first argument wit
401
401
 
402
402
  Elixir
403
403
 
404
- PostHog AI
405
-
406
404
  ```elixir
407
405
  PostHog.capture(AnotherPostHog, "user_signed_up", %{distinct_id: "user123"})
408
406
  ```
@@ -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
- # Flask - Docs
4
-
5
- Copy page
6
-
7
- # Flask - Docs
3
+ # Flask
8
4
 
9
5
  PostHog makes it easy to get data about traffic and usage of your Flask app. Integrating PostHog enables analytics, custom events capture, feature flags, error tracking, and more.
10
6
 
@@ -20,16 +16,17 @@ Then, initialize PostHog where you'd like to use it. For example, here's how to
20
16
 
21
17
  app.py
22
18
 
23
- PostHog AI
24
-
25
19
  ```python
26
20
  from flask import Flask
27
21
  from posthog import Posthog
22
+
28
23
  app = Flask(__name__)
24
+
29
25
  posthog = Posthog(
30
26
  '<ph_project_token>',
31
27
  host='https://us.i.posthog.com',
32
28
  )
29
+
33
30
  @app.route('/api/dashboard', methods=['POST'])
34
31
  def api_dashboard():
35
32
  posthog.capture(
@@ -49,10 +46,9 @@ You can find your project token and instance address in [your project settings](
49
46
  >
50
47
  > Python
51
48
  >
52
- > PostHog AI
53
- >
54
49
  > ```python
55
50
  > from posthog import new_context, identify_context, capture
51
+ >
56
52
  > @app.get("/foo")
57
53
  > def foo(current_user: User = Depends(get_current_user)):
58
54
  > with new_context(): # Set context at the top of a route
@@ -73,24 +69,27 @@ Then read the incoming headers in your Flask request handler. Tracing headers ar
73
69
 
74
70
  Python
75
71
 
76
- PostHog AI
77
-
78
72
  ```python
79
73
  from flask import request, session
80
74
  from posthog import identify_context, set_context_session, tag
75
+
81
76
  @app.route('/api/dashboard', methods=['POST'])
82
77
  def api_dashboard():
83
78
  with posthog.new_context(fresh=True):
84
79
  distinct_id = session.get('user_id') or request.headers.get('X-POSTHOG-DISTINCT-ID')
85
80
  if distinct_id:
86
81
  identify_context(str(distinct_id))
82
+
87
83
  session_id = request.headers.get('X-POSTHOG-SESSION-ID')
88
84
  if session_id:
89
85
  set_context_session(session_id)
86
+
90
87
  tag('$current_url', request.url)
91
88
  tag('$request_method', request.method)
92
89
  tag('$request_path', request.path)
90
+
93
91
  posthog.capture('dashboard_api_called')
92
+
94
93
  return '', 204
95
94
  ```
96
95
 
@@ -102,18 +101,19 @@ Flask has built-in error handlers. This means PostHog’s default exception auto
102
101
 
103
102
  Python
104
103
 
105
- PostHog AI
106
-
107
104
  ```python
108
105
  from flask import Flask, jsonify
109
106
  from posthog import Posthog
107
+
110
108
  app = Flask(__name__)
111
109
  posthog = Posthog('<ph_project_token>', host='https://us.i.posthog.com')
110
+
112
111
  @app.errorhandler(Exception)
113
112
  def handle_exception(e):
114
113
  # Capture methods, including capture_exception, return the UUID of the captured event,
115
114
  # which you can use to find specific errors users encountered
116
115
  event_id = posthog.capture_exception(e)
116
+
117
117
  # You can show the event ID to your user, and ask them to include it in bug reports
118
118
  response = jsonify({'message': str(e), 'error_id': event_id})
119
119
  response.status_code = 500