# Tutorials and guides - Docs

Got a question which isn't answered below? Head to [the community forum](/questions.md) to let us know!

-   [How to target flags with groups, pages, machines, and more](/docs/feature-flags/targeting-groups.md)
-   [How to set up one-time feature flags](/tutorials/one-time-feature-flags.md)
-   [How to create sticky feature flags](/tutorials/sticky-feature-flags.md)
-   [How to do a canary release with feature flags](/docs/feature-flags/canary-release.md)
-   [How to set up a public beta program using early access management](/tutorials/public-beta-program.md)
-   [How to collect feedback from beta users](/tutorials/beta-feedback.md)
-   [How to do a phased rollout](/docs/feature-flags/phased-rollout.md)
-   [How to set up a location-based site banner](/tutorials/location-based-banner.md)
-   [How to add popups to your React app with feature flags](/tutorials/react-popups.md)
-   [How to track high-volume APIs](/tutorials/track-high-volume-apis.md)
-   [How to evaluate and update feature flags with the PostHog API](/tutorials/api-feature-flags.md)
-   [How to test frontend feature flags with React, Jest, and PostHog](/tutorials/test-frontend-feature-flags.md)

## Advanced feature flag patterns

-   [How to use evaluation runtimes and tags together for fine-grained flag control](/tutorials/evaluation-runtimes-and-tags.md) - Combine runtime and tag filtering for precise flag management
-   [How to use feature flag dependencies](/docs/feature-flags/dependencies.md) - Create flags that depend on other flags for complex rollout strategies
-   [How to prevent feature flags from being adblocked](/tutorials/flags-adblock-prevention.md) - Set up reverse proxies to ensure reliable flag evaluation

## How to run experiments with feature flags

> For more experiment tutorials, check [the A/B testing docs](/docs/experiments/tutorials.md)!

-   [How to do A/A testing](/tutorials/aa-testing.md)
-   [How to do holdout testing](/tutorials/holdout-testing.md)
-   [How to do redirect testing](/tutorials/redirect-testing.md)
-   [How to do A/B/n testing](/tutorials/abn-testing.md)
-   [How to set up Python A/B testing](/tutorials/python-ab-testing.md)

## Framework guides

-   [How to set up Android feature flags](/tutorials/android-feature-flags.md)
-   [How to set up Android remote config](/tutorials/android-remote-config.md)
-   [How to set up Angular feature flags](/tutorials/angular-analytics.md#setting-up-and-using-feature-flags)
-   [How to set up Astro feature flags](/tutorials/astro-analytics.md#setting-up-server-side-feature-flags)
-   [How to set up Bubble feature flags](/tutorials/bubble-analytics.md#customizing-components-with-feature-flags)
-   [How to set up Django feature flags](/tutorials/django-analytics.md#4-setting-up-more-posthog-features)
-   [How to set up Flutter feature flags](/tutorials/flutter-feature-flags.md)
-   [How to set up Flutter remote config](/tutorials/flutter-remote-config.md)
-   [How to set up Laravel feature flags](/tutorials/laravel-feature-flags.md)
-   [How to set up iOS feature flags](/tutorials/ios-feature-flags.md)
-   [How to set up iOS remote config](/tutorials/ios-remote-config.md)
-   [How to set up Next.js (app router) feature flags](/tutorials/nextjs-analytics.md#setting-up-feature-flags)
-   [How to set up Next.js (pages router) feature flags](/tutorials/nextjs-pages-analytics.md#setting-up-and-using-feature-flags)
-   [How to set up Node.js (Express) feature flags](/tutorials/node-express-analytics.md#setting-up-feature-flags)
-   [How to set up Nuxt feature flags](/tutorials/nuxt-feature-flags.md)
-   [How to set up PHP feature flags](/tutorials/php-feature-flags.md)
-   [How to set up React Native (Expo) feature flags](/tutorials/react-native-analytics.md#feature-flags)
-   [How to set up React Native remote config](/tutorials/react-native-remote-config.md)
-   [How to set up Remix feature flags](/tutorials/remix-analytics.md#using-server-side-feature-flags)
-   [How to set up Ruby on Rails feature flags](/tutorials/ruby-on-rails-analytics.md#using-feature-flags)
-   [How to set up Svelte feature flags](/tutorials/svelte-analytics.md#using-feature-flags)
-   [How to set up Vue feature flags](/tutorials/vue-feature-flags.md)
-   [How to set up Go feature flags](/tutorials/go-feature-flags.md)
-   [How to set up Python feature flags in Flask](/tutorials/python-feature-flags.md)
-   [How to use Next.js middleware to bootstrap feature flags](/tutorials/nextjs-bootstrap-flags.md)
-   [How to bootstrap feature flags in React and Express](/tutorials/bootstrap-feature-flags-react.md)

## Best practices

Learn more about feature flags best practices from our blogs below:

-   [Feature flag types, benefits, and use cases](/blog/feature-flag-benefits-use-cases.md)
-   [Feature flag best practices and tips (with examples)](/docs/feature-flags/best-practices.md)
-   [How GitHub and GitLab use feature flags](/blog/github-gitlab-feature-flags.md)
-   [How we do trunk-based development (and why you should too)](/product-engineers/trunk-based-development.md)
-   [How to safely test in production (and why you should)](/product-engineers/testing-in-production.md)
-   [Don't make these feature flag mistakes](/newsletter/feature-flag-mistakes.md)
-   [Feature flags as a service: Should you build or buy?](/blog/feature-flags-as-a-service.md)

## Under the hood

-   [How we improved feature flags resiliency](/blog/how-we-improved-feature-flags-resiliency.md)
-   [How we made feature flags even faster and more reliable](/blog/even-faster-more-reliable-flags.md)

### Community questions

Ask a question

### Was this page useful?

HelpfulCould be better