vybekiit 0.7.33 → 0.7.35

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 (132) hide show
  1. package/dist/bin.js +818 -92
  2. package/dist/global-skills/eas-app-stores/SKILL.md +2 -2
  3. package/dist/global-skills/eas-hosting/SKILL.md +2 -2
  4. package/dist/global-skills/eas-observe/SKILL.md +7 -15
  5. package/dist/global-skills/eas-observe/references/queries.md +51 -10
  6. package/dist/global-skills/eas-observe/references/setup.md +60 -7
  7. package/dist/global-skills/eas-simulator/SKILL.md +2 -2
  8. package/dist/global-skills/eas-simulator/references/run-your-app.md +2 -0
  9. package/dist/global-skills/eas-update/SKILL.md +2 -2
  10. package/dist/global-skills/eas-update-insights/SKILL.md +2 -2
  11. package/dist/global-skills/eas-workflows/SKILL.md +2 -2
  12. package/dist/global-skills/expo-animation/SKILL.md +2 -2
  13. package/dist/global-skills/expo-app-clip/SKILL.md +2 -2
  14. package/dist/global-skills/expo-brownfield/SKILL.md +2 -2
  15. package/dist/global-skills/expo-data-fetching/SKILL.md +2 -2
  16. package/dist/global-skills/expo-design-system/SKILL.md +2 -2
  17. package/dist/global-skills/expo-dev-client/SKILL.md +4 -2
  18. package/dist/global-skills/expo-dom/SKILL.md +2 -2
  19. package/dist/global-skills/expo-examples/SKILL.md +2 -2
  20. package/dist/global-skills/expo-migrate-module/SKILL.md +2 -2
  21. package/dist/global-skills/expo-module/SKILL.md +2 -2
  22. package/dist/global-skills/expo-native-ui/SKILL.md +2 -2
  23. package/dist/global-skills/expo-overview/SKILL.md +9 -4
  24. package/dist/global-skills/expo-overview/references/launch-without-dev-menu.md +24 -0
  25. package/dist/global-skills/expo-project-structure/SKILL.md +2 -2
  26. package/dist/global-skills/expo-router/SKILL.md +2 -2
  27. package/dist/global-skills/expo-ui/SKILL.md +2 -2
  28. package/dist/global-skills/expo-upgrade/SKILL.md +2 -2
  29. package/dist/global-skills/expo-web-to-native/SKILL.md +2 -2
  30. package/dist/global-skills/expo-web-to-native/references/verify-on-device.md +1 -1
  31. package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +16 -3
  32. package/dist/global-skills/firebase-app-hosting-basics/references/cli_commands.md +10 -12
  33. package/dist/global-skills/firebase-app-hosting-basics/references/configuration.md +2 -1
  34. package/dist/global-skills/firebase-basics/SKILL.md +6 -4
  35. package/dist/global-skills/firebase-basics/references/web_setup.md +3 -3
  36. package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +81 -333
  37. package/dist/global-skills/instrument-feature-flags/references/android.md +19 -13
  38. package/dist/global-skills/instrument-feature-flags/references/api.md +17 -13
  39. package/dist/global-skills/instrument-feature-flags/references/best-practices.md +35 -35
  40. package/dist/global-skills/instrument-feature-flags/references/django.md +120 -72
  41. package/dist/global-skills/instrument-feature-flags/references/dotnet.md +48 -102
  42. package/dist/global-skills/instrument-feature-flags/references/elixir.md +4 -10
  43. package/dist/global-skills/instrument-feature-flags/references/flask.md +55 -39
  44. package/dist/global-skills/instrument-feature-flags/references/flutter.md +19 -13
  45. package/dist/global-skills/instrument-feature-flags/references/go.md +21 -13
  46. package/dist/global-skills/instrument-feature-flags/references/ios.md +19 -13
  47. package/dist/global-skills/instrument-feature-flags/references/java.md +4 -12
  48. package/dist/global-skills/instrument-feature-flags/references/laravel.md +18 -16
  49. package/dist/global-skills/instrument-feature-flags/references/next-js.md +44 -54
  50. package/dist/global-skills/instrument-feature-flags/references/nodejs.md +21 -13
  51. package/dist/global-skills/instrument-feature-flags/references/php.md +21 -13
  52. package/dist/global-skills/instrument-feature-flags/references/python.md +22 -14
  53. package/dist/global-skills/instrument-feature-flags/references/react-native.md +18 -13
  54. package/dist/global-skills/instrument-feature-flags/references/react.md +21 -14
  55. package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +31 -68
  56. package/dist/global-skills/instrument-feature-flags/references/ruby.md +21 -13
  57. package/dist/global-skills/instrument-feature-flags/references/rust.md +10 -34
  58. package/dist/global-skills/instrument-feature-flags/references/usage.md +94 -114
  59. package/dist/global-skills/instrument-feature-flags/references/web.md +21 -13
  60. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-android.md +7 -7
  61. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-expo.md +2 -2
  62. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-fastapi.md +1 -1
  63. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-flask.md +1 -1
  64. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-laravel.md +2 -2
  65. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-php.md +1 -1
  66. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-python.md +1 -1
  67. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby.md +1 -1
  68. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-swift.md +4 -4
  69. package/dist/global-skills/instrument-product-analytics/references/android.md +64 -109
  70. package/dist/global-skills/instrument-product-analytics/references/angular.md +32 -28
  71. package/dist/global-skills/instrument-product-analytics/references/astro.md +29 -34
  72. package/dist/global-skills/instrument-product-analytics/references/configuration.md +27 -42
  73. package/dist/global-skills/instrument-product-analytics/references/django.md +120 -72
  74. package/dist/global-skills/instrument-product-analytics/references/dotnet.md +48 -102
  75. package/dist/global-skills/instrument-product-analytics/references/elixir.md +25 -50
  76. package/dist/global-skills/instrument-product-analytics/references/flask.md +55 -39
  77. package/dist/global-skills/instrument-product-analytics/references/flutter.md +94 -96
  78. package/dist/global-skills/instrument-product-analytics/references/go.md +39 -77
  79. package/dist/global-skills/instrument-product-analytics/references/identify-users.md +24 -26
  80. package/dist/global-skills/instrument-product-analytics/references/ios.md +22 -22
  81. package/dist/global-skills/instrument-product-analytics/references/laravel.md +18 -16
  82. package/dist/global-skills/instrument-product-analytics/references/next-js.md +44 -54
  83. package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +32 -34
  84. package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +36 -36
  85. package/dist/global-skills/instrument-product-analytics/references/php.md +42 -87
  86. package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +15 -12
  87. package/dist/global-skills/instrument-product-analytics/references/python.md +106 -154
  88. package/dist/global-skills/instrument-product-analytics/references/react-native.md +97 -176
  89. package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +29 -40
  90. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +29 -38
  91. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +29 -40
  92. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +32 -37
  93. package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +31 -68
  94. package/dist/global-skills/instrument-product-analytics/references/ruby.md +40 -96
  95. package/dist/global-skills/instrument-product-analytics/references/svelte.md +34 -34
  96. package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +19 -19
  97. package/dist/global-skills/instrument-product-analytics/references/usage.md +94 -114
  98. package/dist/global-skills/instrument-product-analytics/references/vue-js.md +33 -45
  99. package/dist/global-skills/manifest.json +2 -1
  100. package/dist/global-skills/mongodb-search-and-ai/SKILL.md +40 -22
  101. package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +8 -2
  102. package/dist/global-skills/mongodb-search-and-ai/references/quick-start.md +725 -0
  103. package/dist/global-skills/mongodb-search-and-ai/scripts/quickstart_complete.py +386 -0
  104. package/dist/global-skills/neon/SKILL.md +15 -10
  105. package/dist/global-skills/neon/references/claimable-neon.md +2 -0
  106. package/dist/global-skills/neon-functions/SKILL.md +12 -11
  107. package/dist/global-skills/neon-functions/references/sse.md +2 -2
  108. package/dist/global-skills/neon-object-storage/SKILL.md +5 -4
  109. package/dist/global-skills/neon-postgres/SKILL.md +4 -1
  110. package/dist/global-skills/neon-realtime/SKILL.md +207 -0
  111. package/dist/global-skills/neon-realtime/references/mutations.md +743 -0
  112. package/dist/global-skills/neon-realtime/references/queries.md +509 -0
  113. package/dist/global-skills/neon-realtime/references/reactivity.md +407 -0
  114. package/dist/global-skills/neon-realtime/references/ssr.md +695 -0
  115. package/dist/global-skills/neon-realtime/references/subscribing.md +485 -0
  116. package/dist/global-skills/resend/SKILL.md +4 -2
  117. package/dist/global-skills/resend/references/inboxes.md +377 -0
  118. package/dist/global-skills/resend/references/webhooks.md +9 -0
  119. package/dist/global-skills/stripe-best-practices/SKILL.md +1 -1
  120. package/dist/global-skills/stripe-best-practices/references/connect.md +1 -1
  121. package/dist/global-skills/stripe-best-practices/references/security.md +9 -9
  122. package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +1 -1
  123. package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +303 -18
  124. package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +1 -1
  125. package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +352 -18
  126. package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +1 -1
  127. package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +413 -22
  128. package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +1 -1
  129. package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +391 -21
  130. package/dist/global-skills/vybekiitReferences/web/AGENTS.md +14 -2
  131. package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +490 -32
  132. package/package.json +8 -8
@@ -2,6 +2,19 @@
2
2
 
3
3
  # React Native Feature Flags installation
4
4
 
5
+ Canonical URL: https://posthog.com/docs/feature-flags/installation/react-native
6
+
7
+ > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.i.posthog.com` instead of `https://us.i.posthog.com` (ingestion host).
8
+
9
+ ## On this page
10
+
11
+ - [Install the package](#install-the-package)
12
+ - [Configure PostHog](#configure-posthog)
13
+ - [Send events](#send-events)
14
+ - [Use feature flags](#use-feature-flags)
15
+ - [Running experiments](#running-experiments)
16
+ - [Next steps](#next-steps)
17
+
5
18
  1. 1
6
19
 
7
20
  ## Install the package
@@ -155,16 +168,8 @@
155
168
 
156
169
  | Resource | Description |
157
170
  | --- | --- |
158
- | [Creating a feature flag](/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
159
- | [Adding feature flag code](/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
160
- | [Framework-specific guides](/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
161
- | [How to do a phased rollout](/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
162
- | [More tutorials](/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
163
-
164
- ### Still have questions?
165
-
166
- Ask PostHog AI
167
-
168
- ### Was this page useful?
169
-
170
- HelpfulCould be better
171
+ | [Creating a feature flag](https://posthog.com/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
172
+ | [Adding feature flag code](https://posthog.com/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
173
+ | [Framework-specific guides](https://posthog.com/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
174
+ | [How to do a phased rollout](https://posthog.com/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
175
+ | [More tutorials](https://posthog.com/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
@@ -2,6 +2,21 @@
2
2
 
3
3
  # React Feature Flags installation
4
4
 
5
+ Canonical URL: https://posthog.com/docs/feature-flags/installation/react
6
+
7
+ > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.i.posthog.com` instead of `https://us.i.posthog.com` (ingestion host).
8
+
9
+ ## On this page
10
+
11
+ - [Install the package](#install-the-package)
12
+ - [Add environment variables](#add-environment-variables)
13
+ - [Initialize PostHog](#initialize-posthog)
14
+ - [Accessing PostHog in your code](#accessing-posthog-in-your-code)
15
+ - [Send events](#send-events)
16
+ - [Use feature flags](#use-feature-flags)
17
+ - [Running experiments](#running-experiments)
18
+ - [Next steps](#next-steps)
19
+
5
20
  1. 1
6
21
 
7
22
  ## Install the package
@@ -82,7 +97,7 @@
82
97
 
83
98
  **defaults option**
84
99
 
85
- The `defaults` option automatically configures PostHog with recommended settings for new projects. See [SDK defaults](/docs/libraries/js.md#sdk-defaults) for details.
100
+ The `defaults` option automatically configures PostHog with recommended settings for new projects. See [SDK defaults](https://posthog.com/docs/libraries/js.md#sdk-defaults) for details.
86
101
 
87
102
  4. 4
88
103
 
@@ -289,16 +304,8 @@
289
304
 
290
305
  | Resource | Description |
291
306
  | --- | --- |
292
- | [Creating a feature flag](/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
293
- | [Adding feature flag code](/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
294
- | [Framework-specific guides](/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
295
- | [How to do a phased rollout](/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
296
- | [More tutorials](/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
297
-
298
- ### Still have questions?
299
-
300
- Ask PostHog AI
301
-
302
- ### Was this page useful?
303
-
304
- HelpfulCould be better
307
+ | [Creating a feature flag](https://posthog.com/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
308
+ | [Adding feature flag code](https://posthog.com/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
309
+ | [Framework-specific guides](https://posthog.com/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
310
+ | [How to do a phased rollout](https://posthog.com/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
311
+ | [More tutorials](https://posthog.com/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
@@ -2,18 +2,37 @@
2
2
 
3
3
  # Ruby on Rails
4
4
 
5
+ Canonical URL: https://posthog.com/docs/libraries/ruby-on-rails
6
+
7
+ > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.i.posthog.com` instead of `https://us.i.posthog.com` (ingestion host), and use `https://eu.posthog.com` instead of `https://us.posthog.com` (app host for links).
8
+
9
+ ## On this page
10
+
11
+ - [Beta: integration via LLM](#beta-integration-via-llm)
12
+ - [Features](#features)
13
+ - [Installation](#installation)
14
+ - [Identifying users](#identifying-users)
15
+ - [Configuration](#configuration)
16
+ - [Capturing events](#capturing-events)
17
+ - [Request context](#request-context)
18
+ - [Logs](#logs)
19
+ - [Error tracking](#error-tracking)
20
+ - [Feature flags](#feature-flags)
21
+ - [Testing](#testing)
22
+ - [Configuration reference](#configuration-reference)
23
+ - [Troubleshooting](#troubleshooting)
24
+ - [Next steps](#next-steps)
25
+
5
26
  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.
6
27
 
7
28
  This guide walks you through integrating PostHog into your Rails app using the [posthog-rails gem](https://github.com/PostHog/posthog-ruby/tree/main/posthog-rails).
8
29
 
9
30
  ## Beta: integration via LLM
10
31
 
11
- Install PostHog for Rails in seconds with our wizard by running this prompt with [LLM coding agents](/blog/envoy-wizard-llm-agent.md) like Cursor and Bolt, or by running it in your terminal.
32
+ Install PostHog for Rails in seconds with our wizard by running this prompt with [LLM coding agents](https://posthog.com/blog/envoy-wizard-llm-agent.md) like Cursor and Bolt, or by running it in your terminal.
12
33
 
13
34
  `npx @posthog/wizard`
14
35
 
15
- [Learn more](/wizard.md)
16
-
17
36
  Or, to integrate manually, continue with the rest of this guide.
18
37
 
19
38
  ## Features
@@ -24,7 +43,7 @@ Or, to integrate manually, continue with the rest of this guide.
24
43
  - **Smart filtering** – Excludes common Rails exceptions (404s, etc.) by default
25
44
  - **Request context** – Adds request metadata and optional PostHog tracing header identity/session context to captured events
26
45
  - **Rails 7.0+ error reporter** – Integrates with Rails' built-in error reporting
27
- - **Log forwarding** – Optionally forwards `Rails.logger` output to [PostHog Logs](/docs/logs.md) over OpenTelemetry, automatically correlated with request context (Ruby 3.3+)
46
+ - **Log forwarding** – Optionally forwards `Rails.logger` output to [PostHog Logs](https://posthog.com/docs/logs.md) over OpenTelemetry, automatically correlated with request context (Ruby 3.3+)
28
47
 
29
48
  ## Installation
30
49
 
@@ -39,24 +58,20 @@ gem 'posthog-rails'
39
58
 
40
59
  Then run:
41
60
 
42
- Terminal
43
-
44
61
  ```bash
45
62
  bundle install
46
63
  ```
47
64
 
48
65
  ## Identifying users
49
66
 
50
- > **Identifying users is required.** Backend events need a `distinct_id` that matches the ID your frontend uses when calling `posthog.identify()`. Without this, backend events are orphaned — they can't be linked to frontend event captures, [session replays](/docs/session-replay.md), [LLM traces](/docs/ai-engineering.md), or [error tracking](/docs/error-tracking.md).
67
+ > **Identifying users is required.** Backend events need a `distinct_id` that matches the ID your frontend uses when calling `posthog.identify()`. Without this, backend events are orphaned — they can't be linked to frontend event captures, [session replays](https://posthog.com/docs/session-replay.md), [LLM traces](https://posthog.com/docs/ai-engineering.md), or [error tracking](https://posthog.com/docs/error-tracking.md).
51
68
  >
52
- > See our guide on [identifying users](/docs/getting-started/identify-users.md) for how to set this up.
69
+ > See our guide on [identifying users](https://posthog.com/docs/getting-started/identify-users.md) for how to set this up.
53
70
 
54
71
  ### Generate the initializer
55
72
 
56
73
  Run the install generator to create the PostHog initializer:
57
74
 
58
- Terminal
59
-
60
75
  ```bash
61
76
  rails generate posthog:install
62
77
  ```
@@ -130,8 +145,6 @@ You can find your project token and instance address in [your project settings](
130
145
 
131
146
  > **Tip:** Use [`Rails.application.credentials`](https://guides.rubyonrails.org/security.html#custom-credentials) to avoid hardcoding API keys. First, add your keys and then reference them in your initializer:
132
147
  >
133
- > Terminal
134
- >
135
148
  > ```bash
136
149
  > rails credentials:edit
137
150
  > ```
@@ -157,8 +170,6 @@ You can find your project token and instance address in [your project settings](
157
170
 
158
171
  Track custom events anywhere in your Rails app:
159
172
 
160
- Ruby
161
-
162
173
  ```ruby
163
174
  PostHog.capture({
164
175
  distinct_id: current_user.id,
@@ -169,8 +180,6 @@ PostHog.capture({
169
180
 
170
181
  Identify a user and set their person properties:
171
182
 
172
- Ruby
173
-
174
183
  ```ruby
175
184
  PostHog.identify({
176
185
  distinct_id: current_user.id,
@@ -189,32 +198,28 @@ PostHog Rails automatically applies request-scoped context to events captured du
189
198
 
190
199
  When `use_tracing_headers` is enabled, PostHog tracing headers (`X-PostHog-Distinct-Id` and `X-PostHog-Session-Id`) are also used as default `distinct_id` and `$session_id` values. Explicit `distinct_id` and properties passed to `PostHog.capture` always take precedence.
191
200
 
192
- If you're using [PostHog JS](/docs/libraries/js.md) on the frontend, configure [`tracing_headers`](/docs/libraries/js/config.md#tracing-headers) for your Rails backend hostname so browser requests include the session and distinct ID headers.
201
+ If you're using [PostHog JS](https://posthog.com/docs/libraries/js.md) on the frontend, configure [`tracing_headers`](https://posthog.com/docs/libraries/js/config.md#tracing-headers) for your Rails backend hostname so browser requests include the session and distinct ID headers.
193
202
 
194
203
  Tracing headers are client-controlled analytics context, not authentication or authorization. Pass an authenticated `distinct_id` explicitly for security-sensitive server-side decisions.
195
204
 
196
205
  Disable tracing header identity/session capture if you do not want client-supplied tracing headers used for server-side events. Request metadata is still captured:
197
206
 
198
- Ruby
199
-
200
207
  ```ruby
201
208
  PostHog::Rails.config.use_tracing_headers = false
202
209
  ```
203
210
 
204
211
  ## Logs
205
212
 
206
- To set up [PostHog Logs](/docs/logs.md) in your Rails app, follow the [Ruby on Rails logs installation guide](/docs/logs/installation/ruby-on-rails.md). The integration forwards `Rails.logger` output to PostHog Logs over OpenTelemetry, automatically correlated with each request's distinct ID and session ID. Requires Ruby 3.3+.
213
+ To set up [PostHog Logs](https://posthog.com/docs/logs.md) in your Rails app, follow the [Ruby on Rails logs installation guide](https://posthog.com/docs/logs/installation/ruby-on-rails.md). The integration forwards `Rails.logger` output to PostHog Logs over OpenTelemetry, automatically correlated with each request's distinct ID and session ID. Requires Ruby 3.3+.
207
214
 
208
215
  ## Error tracking
209
216
 
210
- For full details on setting up error tracking with Rails, see our [Rails error tracking installation guide](/docs/error-tracking/installation/ruby-on-rails.md).
217
+ For full details on setting up error tracking with Rails, see our [Rails error tracking installation guide](https://posthog.com/docs/error-tracking/installation/ruby-on-rails.md).
211
218
 
212
219
  ### Automatic exception tracking
213
220
 
214
221
  When `auto_capture_exceptions` is enabled, exceptions are automatically captured:
215
222
 
216
- Ruby
217
-
218
223
  ```ruby
219
224
  class PostsController < ApplicationController
220
225
  def show
@@ -230,8 +235,6 @@ end
230
235
 
231
236
  You can also manually capture exceptions:
232
237
 
233
- Ruby
234
-
235
238
  ```ruby
236
239
  PostHog.capture_exception(
237
240
  exception,
@@ -242,8 +245,6 @@ PostHog.capture_exception(
242
245
 
243
246
  If you evaluated feature flags for the request, pass the same snapshot to include matching flag properties on the exception event:
244
247
 
245
- Ruby
246
-
247
248
  ```ruby
248
249
  flags = PostHog.evaluate_flags(current_user.id)
249
250
 
@@ -259,8 +260,6 @@ PostHog.capture_exception(
259
260
 
260
261
  When `auto_instrument_active_job` is enabled, ActiveJob exceptions are automatically captured with job context:
261
262
 
262
- Ruby
263
-
264
263
  ```ruby
265
264
  class EmailJob < ApplicationJob
266
265
  def perform(user_id)
@@ -275,8 +274,6 @@ end
275
274
 
276
275
  By default, PostHog extracts a `distinct_id` from job arguments by looking for a `user_id` key in hash arguments:
277
276
 
278
- Ruby
279
-
280
277
  ```ruby
281
278
  # PostHog will automatically use options[:user_id] as the distinct_id
282
279
  ProcessOrderJob.perform_later(order.id, user_id: current_user.id)
@@ -284,8 +281,6 @@ ProcessOrderJob.perform_later(order.id, user_id: current_user.id)
284
281
 
285
282
  For more control, use the `posthog_distinct_id` class method. The proc or block receives the same arguments as `perform`:
286
283
 
287
- Ruby
288
-
289
284
  ```ruby
290
285
  class SendWelcomeEmailJob < ApplicationJob
291
286
  posthog_distinct_id ->(user, _options) { user.id }
@@ -298,8 +293,6 @@ end
298
293
 
299
294
  You can also use a block:
300
295
 
301
- Ruby
302
-
303
296
  ```ruby
304
297
  class ProcessOrderJob < ApplicationJob
305
298
  posthog_distinct_id do |_order, notify_user_id|
@@ -316,8 +309,6 @@ end
316
309
 
317
310
  PostHog integrates with Rails' built-in error reporting:
318
311
 
319
- Ruby
320
-
321
312
  ```ruby
322
313
  # These errors are automatically sent to PostHog
323
314
  Rails.error.handle do
@@ -335,8 +326,6 @@ PostHog Rails automatically captures authenticated user information from your co
335
326
 
336
327
  If your user method has a different name, configure it:
337
328
 
338
- Ruby
339
-
340
329
  ```ruby
341
330
  PostHog::Rails.config.current_user_method = :logged_in_user
342
331
  ```
@@ -355,16 +344,12 @@ It also checks hash-like users for `id`, `pk`, and `uuid` keys.
355
344
 
356
345
  You can configure a specific method:
357
346
 
358
- Ruby
359
-
360
347
  ```ruby
361
348
  PostHog::Rails.config.user_id_method = :email
362
349
  ```
363
350
 
364
351
  Or define a method on your User model:
365
352
 
366
- Ruby
367
-
368
353
  ```ruby
369
354
  class User < ApplicationRecord
370
355
  def posthog_distinct_id
@@ -393,8 +378,6 @@ The following exceptions are not reported by default (common 4xx errors):
393
378
 
394
379
  Add more with:
395
380
 
396
- Ruby
397
-
398
381
  ```ruby
399
382
  PostHog::Rails.config.excluded_exceptions = ['MyException']
400
383
  ```
@@ -403,8 +386,6 @@ PostHog::Rails.config.excluded_exceptions = ['MyException']
403
386
 
404
387
  Evaluate flags once for the current user, then read values from the returned snapshot:
405
388
 
406
- Ruby
407
-
408
389
  ```ruby
409
390
  class PostsController < ApplicationController
410
391
  def show
@@ -421,8 +402,6 @@ end
421
402
 
422
403
  For multivariate flags and experiments, use `get_flag`:
423
404
 
424
- Ruby
425
-
426
405
  ```ruby
427
406
  flags = PostHog.evaluate_flags(current_user.id)
428
407
  variant = flags.get_flag('checkout-experiment')
@@ -434,8 +413,6 @@ end
434
413
 
435
414
  When capturing an event after branching on a flag, pass the same `flags` snapshot so the event includes the exact flag values used by your code:
436
415
 
437
- Ruby
438
-
439
416
  ```ruby
440
417
  flags = PostHog.evaluate_flags(current_user.id)
441
418
 
@@ -448,13 +425,11 @@ PostHog.capture({
448
425
 
449
426
  For local evaluation, ensure you've set `personal_api_key`:
450
427
 
451
- Ruby
452
-
453
428
  ```ruby
454
429
  config.personal_api_key = Rails.application.credentials.posthog[:personal_api_key]
455
430
  ```
456
431
 
457
- See our [Ruby SDK docs](/docs/libraries/ruby.md#local-evaluation) for details on local evaluation with Puma and Unicorn servers.
432
+ See our [Ruby SDK docs](https://posthog.com/docs/libraries/ruby.md#local-evaluation) for details on local evaluation with Puma and Unicorn servers.
458
433
 
459
434
  > **Note:** `PostHog.is_feature_enabled`, `PostHog.get_feature_flag`, `PostHog.get_feature_flag_result`, `PostHog.get_feature_flag_payload`, and `PostHog.capture({ ..., send_feature_flags: true })` still work during the migration period, but they're deprecated. Prefer `PostHog.evaluate_flags` for new code.
460
435
 
@@ -500,7 +475,7 @@ end
500
475
  | `feature_flag_request_timeout_seconds` | Integer | `3` | Timeout, in seconds, for feature flag requests. |
501
476
  | `before_send` | Proc | `nil` | Callback that receives the event hash before it is queued or sent. Return a modified event hash, or `nil` to drop the event. |
502
477
 
503
- The `PostHog.init` block supports the options above. Less common core options like `batch_size`, `disable_singleton_warning`, `skip_ssl_verification`, and `flag_definition_cache_provider` can be passed as an options hash to `PostHog.init(...)`; see the [Ruby SDK docs](/docs/libraries/ruby.md#configuration) for details.
478
+ The `PostHog.init` block supports the options above. Less common core options like `batch_size`, `disable_singleton_warning`, `skip_ssl_verification`, and `flag_definition_cache_provider` can be passed as an options hash to `PostHog.init(...)`; see the [Ruby SDK docs](https://posthog.com/docs/libraries/ruby.md#configuration) for details.
504
479
 
505
480
  ### Rails-specific options
506
481
 
@@ -523,8 +498,6 @@ Configure these via `PostHog::Rails.configure` or `PostHog::Rails.config`:
523
498
 
524
499
  1. Verify PostHog is initialized:
525
500
 
526
- Ruby
527
-
528
501
  ```ruby
529
502
  Rails.console
530
503
  > PostHog.initialized?
@@ -535,8 +508,6 @@ Configure these via `PostHog::Rails.configure` or `PostHog::Rails.config`:
535
508
 
536
509
  3. Verify middleware is installed:
537
510
 
538
- Ruby
539
-
540
511
  ```ruby
541
512
  Rails.application.middleware
542
513
  ```
@@ -553,12 +524,4 @@ Ensure you've set `personal_api_key` in your configuration.
553
524
 
554
525
  ## Next steps
555
526
 
556
- 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).
557
-
558
- ### Still have questions?
559
-
560
- Ask PostHog AI
561
-
562
- ### Was this page useful?
563
-
564
- HelpfulCould be better
527
+ 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](https://posthog.com/docs/libraries/ruby.md).
@@ -2,6 +2,22 @@
2
2
 
3
3
  # Ruby Feature Flags installation
4
4
 
5
+ Canonical URL: https://posthog.com/docs/feature-flags/installation/ruby
6
+
7
+ > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.i.posthog.com` instead of `https://us.i.posthog.com` (ingestion host).
8
+
9
+ ## On this page
10
+
11
+ - [Install the gem](#install-the-gem)
12
+ - [Configure PostHog](#configure-posthog)
13
+ - [Send events](#send-events)
14
+ - [Evaluate boolean feature flags](#evaluate-boolean-feature-flags)
15
+ - [Evaluate multivariate feature flags](#evaluate-multivariate-feature-flags)
16
+ - [Include feature flag information in events](#include-feature-flag-information-in-events)
17
+ - [Override server properties](#override-server-properties)
18
+ - [Running experiments](#running-experiments)
19
+ - [Next steps](#next-steps)
20
+
5
21
  1. 1
6
22
 
7
23
  ## Install the gem
@@ -178,16 +194,8 @@
178
194
 
179
195
  | Resource | Description |
180
196
  | --- | --- |
181
- | [Creating a feature flag](/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
182
- | [Adding feature flag code](/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
183
- | [Framework-specific guides](/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
184
- | [How to do a phased rollout](/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
185
- | [More tutorials](/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
186
-
187
- ### Still have questions?
188
-
189
- Ask PostHog AI
190
-
191
- ### Was this page useful?
192
-
193
- HelpfulCould be better
197
+ | [Creating a feature flag](https://posthog.com/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
198
+ | [Adding feature flag code](https://posthog.com/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
199
+ | [Framework-specific guides](https://posthog.com/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
200
+ | [How to do a phased rollout](https://posthog.com/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
201
+ | [More tutorials](https://posthog.com/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
@@ -2,6 +2,8 @@
2
2
 
3
3
  # Rust Feature Flags installation
4
4
 
5
+ Canonical URL: https://posthog.com/docs/feature-flags/installation/rust
6
+
5
7
  Install the `posthog-rs` crate by adding it to your `Cargo.toml`.
6
8
 
7
9
  Cargo.toml
@@ -13,8 +15,6 @@ posthog-rs = "0.14"
13
15
 
14
16
  Next, set up the client with your PostHog project key.
15
17
 
16
- Rust
17
-
18
18
  ```rust
19
19
  let client = posthog_rs::client("<ph_project_token>").await;
20
20
  ```
@@ -25,8 +25,6 @@ Our Rust SDK supports both blocking and async clients. The async client is the d
25
25
 
26
26
  If you need to use a synchronous client instead – like we do in our [CLI](https://github.com/PostHog/posthog/tree/master/cli) –, you can opt into it by disabling the asynchronous feature on your `Cargo.toml` file.
27
27
 
28
- toml
29
-
30
28
  ```toml
31
29
  [dependencies]
32
30
  posthog-rs = { version = "0.14", default-features = false }
@@ -44,8 +42,6 @@ Call `client.evaluate_flags()` once for the user, then read values from the retu
44
42
 
45
43
  #### Boolean feature flags
46
44
 
47
- Rust
48
-
49
45
  ```rust
50
46
  use posthog_rs::EvaluateFlagsOptions;
51
47
 
@@ -63,8 +59,6 @@ if flags.is_enabled("flag-key") {
63
59
 
64
60
  #### Multivariate feature flags
65
61
 
66
- Rust
67
-
68
62
  ```rust
69
63
  use posthog_rs::{EvaluateFlagsOptions, FlagValue};
70
64
 
@@ -89,9 +83,9 @@ match flags.get_flag("flag-key") {
89
83
 
90
84
  ### Step 2: Include feature flag information when capturing events
91
85
 
92
- If you want use your feature flag to breakdown or filter events in your [insights](/docs/product-analytics/insights.md), you'll need to include feature flag information in those events. This ensures that the feature flag value is attributed correctly to the event.
86
+ If you want use your feature flag to breakdown or filter events in your [insights](https://posthog.com/docs/product-analytics/insights.md), you'll need to include feature flag information in those events. This ensures that the feature flag value is attributed correctly to the event.
93
87
 
94
- > **Note:** This step is only required for events captured using our server-side SDKs or [API](/docs/api.md).
88
+ > **Note:** This step is only required for events captured using our server-side SDKs or [API](https://posthog.com/docs/api.md).
95
89
 
96
90
  There are two methods you can use to include feature flag information in your events:
97
91
 
@@ -99,8 +93,6 @@ There are two methods you can use to include feature flag information in your ev
99
93
 
100
94
  Pass the same `flags` object that you used for branching. This attaches the exact flag values from that evaluation and doesn't make another `/flags` request.
101
95
 
102
- Rust
103
-
104
96
  ```rust
105
97
  use posthog_rs::{EvaluateFlagsOptions, Event};
106
98
 
@@ -122,8 +114,6 @@ By default, this attaches every flag in the snapshot using `$feature/<flag-key>`
122
114
 
123
115
  To reduce event property bloat, pass a filtered snapshot:
124
116
 
125
- Rust
126
-
127
117
  ```rust
128
118
  // Attach only flags accessed with is_enabled() or get_flag() before this call
129
119
  let mut event = Event::new("event_name", "distinct_id_of_your_user");
@@ -142,8 +132,6 @@ client.capture(event);
142
132
 
143
133
  In the event properties, include `$feature/feature_flag_name: variant_key`:
144
134
 
145
- Rust
146
-
147
135
  ```rust
148
136
  use posthog_rs::Event;
149
137
 
@@ -156,8 +144,6 @@ client.capture(event);
156
144
 
157
145
  By default, `evaluate_flags()` evaluates every flag for the user. If you only need a few flags, pass `flag_keys` to request only those flags:
158
146
 
159
- Rust
160
-
161
147
  ```rust
162
148
  use posthog_rs::EvaluateFlagsOptions;
163
149
 
@@ -172,7 +158,7 @@ let flags = client.evaluate_flags(
172
158
 
173
159
  ### Sending `$feature_flag_called` events
174
160
 
175
- Capturing `$feature_flag_called` events enables PostHog to know when a flag was accessed by a user and provide [analytics and insights](/docs/product-analytics/insights.md) on the flag. With `evaluate_flags()`, the SDK sends this event when you call `flags.is_enabled()` or `flags.get_flag()` for a flag.
161
+ Capturing `$feature_flag_called` events enables PostHog to know when a flag was accessed by a user and provide [analytics and insights](https://posthog.com/docs/product-analytics/insights.md) on the flag. With `evaluate_flags()`, the SDK sends this event when you call `flags.is_enabled()` or `flags.get_flag()` for a flag.
176
162
 
177
163
  The SDK deduplicates these events per `(distinct_id, flag, value)` in a local cache. If you reinitialize the PostHog client, the cache resets and `$feature_flag_called` events may be sent again. PostHog handles duplicates, so duplicate `$feature_flag_called` events don't affect your analytics.
178
164
 
@@ -182,8 +168,6 @@ The SDK deduplicates these events per `(distinct_id, flag, value)` in a local ca
182
168
 
183
169
  If you're using the blocking client (with `default-features = false`), the API is the same but without `.await`:
184
170
 
185
- Rust
186
-
187
171
  ```rust
188
172
  use posthog_rs::EvaluateFlagsOptions;
189
173
 
@@ -201,16 +185,8 @@ Now that you're evaluating flags, continue with the resources below to learn wha
201
185
 
202
186
  | Resource | Description |
203
187
  | --- | --- |
204
- | [Creating a feature flag](/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
205
- | [Adding feature flag code](/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
206
- | [Framework-specific guides](/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
207
- | [How to do a phased rollout](/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
208
- | [More tutorials](/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |
209
-
210
- ### Still have questions?
211
-
212
- Ask PostHog AI
213
-
214
- ### Was this page useful?
215
-
216
- HelpfulCould be better
188
+ | [Creating a feature flag](https://posthog.com/docs/feature-flags/creating-feature-flags.md) | How to create a feature flag in PostHog |
189
+ | [Adding feature flag code](https://posthog.com/docs/feature-flags/adding-feature-flag-code.md) | How to check flags in your code for all platforms |
190
+ | [Framework-specific guides](https://posthog.com/docs/feature-flags/tutorials.md#framework-guides) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
191
+ | [How to do a phased rollout](https://posthog.com/tutorials/phased-rollout.md) | Gradually roll out features to minimize risk |
192
+ | [More tutorials](https://posthog.com/docs/feature-flags/tutorials.md) | Other real-world examples and use cases |