> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Technical tutorials

<View title="Developer" />

<View title="Federal docs" />

<View title="EU docs" />

### Explore end-to-end examples of how to build on the LaunchDarkly platform

Dive into hands-on tutorials that demonstrate how to implement LaunchDarkly in real projects. Each tutorial is built to help you experiment quickly, adopt proven patterns, and ship with confidence.

<Tabs>
  <Tab title="All posts">
    <CardGroup cols={2}>
      <Card title="Already using Datadog? Here's how to gate and observe your AI agent skills with LaunchDarkly" icon="eye" href="/docs/tutorials/datadog-to-launchdarkly-traces-part-one" horizontal>
        Learn how to forward Datadog application performance monitoring (APM) trace data to LaunchDarkly using the Datadog Agent, gate AI agent skills with feature flags, and set up dual shipping. OpenTelemetry is not required.
      </Card>

      <Card title="Uncover security risks in your agent skills before deploying" icon="robot" href="/docs/tutorials/tessl-security-gate" horizontal>
        Catch a dangerous agent skill before an agent runs it, using a security review from Tessl and a runtime check enforced by AgentControl.
      </Card>

      <Card title="Optimize an AI agent to sound human, with a judge you own" icon="robot" href="/docs/tutorials/agent-optimization" horizontal>
        Optimize a reply-drafting agent to sound human, scored by GPTZero as an inverted judge, then run a fuller eval on the candidates it surfaces.
      </Card>

      <Card title="Benchmark LangGraph, Strands, OpenAI Agents, and Google ADK on the same agent graph" icon="robot" href="/docs/tutorials/agent-graph-experiments" horizontal>
        Run four frameworks over one LaunchDarkly agent graph, let an experiment rank them on latency and tokens, then promote the winner with the same flag.
      </Card>

      <Card title="The human-in-the-loop alternative to autonomous remediation" icon="eye" href="/docs/tutorials/human-in-the-loop-vega-alt" horizontal>
        Triage a real LaunchDarkly alert in Claude Code: correlate error groups, traces, and AgentControl variations to find the root cause.
      </Card>

      <Card title="The AI iteration loop for deploying reliable agents with LangGraph" icon="robot" href="/docs/tutorials/ai-iteration-loop-for-reliable-agents" horizontal>
        Set the foundation for an AI iteration loop with LaunchDarkly feature flags, AgentControl, and variation targeting, using a LangGraph decor agent.
      </Card>

      <Card title="Migrate a hardcoded LangGraph agent to LaunchDarkly AgentControl in 20 minutes" icon="robot" href="/docs/tutorials/ld4a-langgraph-migration" horizontal>
        Walk the official langchain-ai/react-agent template through the migrate skill and externalize every prompt, model, and tool.
      </Card>

      <Card title="Offline evaluation of RAG-grounded answers in AgentControl" icon="robot" href="/docs/tutorials/offline-evals" horizontal>
        Regression-test your support agent's RAG generation offline using Datasets, the Playground, and LLM-as-a-judge.
      </Card>

      <Card title="Beyond n8n for workflow automation: agent graphs as your universal agent harness" icon="robot" href="/docs/tutorials/agent-graphs" horizontal>
        Build multi-agent systems that work across LangGraph, OpenAI Agents SDK, and other frameworks.
      </Card>

      <Card title="Catch your first silent AI failure with Vega AI in under 10 minutes" icon="eye" href="/docs/tutorials/silent-failure-vega-ai-investigation" horizontal>
        Learn how to instrument an AI agent to expose silent failures and use Vega AI to investigate the root cause.
      </Card>

      <Card title="Evaluate LLM code generation with LLM-as-judge evaluators" icon="robot" href="/docs/tutorials/custom-evals-claude-code" horizontal>
        Build custom LLM-as-judge evaluators for AI code generation. Score security, API contracts, and scope creep.
      </Card>

      <Card title="OpenTelemetry for LLM applications: a practical guide with LaunchDarkly and Langfuse" icon="eye" href="/docs/tutorials/otel-llm-practical-guide-with-langfuse" horizontal>
        Instrument a real LLM application with OpenTelemetry spans and fan out traces to Langfuse and LaunchDarkly.
      </Card>

      <Card title="Use LaunchDarkly Agent Skills in Claude Code and Cursor" icon="robot" href="/docs/tutorials/agent-skills-quickstart" horizontal>
        Install LaunchDarkly Agent Skills in your AI coding assistant and create AgentControl configs from natural language.
      </Card>

      <Card title="Detection to resolution: real world debugging with Rage Clicks and Session Replay" icon="eye" href="/docs/tutorials/detection-to-resolution-rage-clicks" horizontal>
        Learn how to use session replay and rage click detection to diagnose and fix production issues fast.
      </Card>

      <Card title="Compare AI orchestrators: LangGraph vs Strands vs OpenAI Swarm" icon="robot" href="/docs/tutorials/ai-orchestrators" horizontal>
        Build a 3-agent research analysis swarm that runs across three orchestrators.
      </Card>

      <Card title="Building a data extraction pipeline with LaunchDarkly" icon="robot" href="/docs/tutorials/data-extraction-pipeline" horizontal>
        Turn unstructured text into structured JSON with runtime-configurable schemas.
      </Card>

      <Card title="Day 8 | 🎁 Observable multi-modal agentic systems" icon="robot" href="/docs/tutorials/observability-multimodal-agents" horizontal>
        Learn how combining session replay with online evaluations provides complete observability for multi-modal AI systems.
      </Card>

      <Card title="Day 7 | 🎄✨The Rockefeller tree in NYC: SLOs that actually drive decisions" icon="eye" href="/docs/tutorials/o11y-that-drives-decisions" horizontal>
        Learn how to build SLOs that start with business impact and end with actionable targets.
      </Card>

      <Card title="Day 11 | ✉️ Letters to Santa: what engineering teams really want from Observability in 2026" icon="eye" href="/docs/tutorials/what-eng-teams-really-want-o11y" horizontal>
        Santa's advice to engineering teams in need of unified observability solutions.
      </Card>

      <Card title="Day 3 | 🔔 Jingle all the way to zero-config Observability" icon="eye" href="/docs/tutorials/zero-config-observability-holiday" horizontal>
        Get feature flag context automatically injected into your OTel traces without writing instrumentation code.
      </Card>

      <Card title="Day 6 | 💸 The famous green character that stole your cloud budget: the cardinality problem" icon="eye" href="/docs/tutorials/cloud-budget-observability-holiday" horizontal>
        Learn 3 ways to stop cardinality from stealing your cloud budget.
      </Card>

      <Card title="Day 1 | 🎄 Observability under the tree: what changed in 2025" icon="eye" href="/docs/tutorials/observability-2025-recap-holiday" horizontal>
        A full recap of the key innovations in observability this year.
      </Card>

      <Card title="Day 2 | 🎅 He knows if you have been bad or good... But what if he gets it wrong?" icon="robot" href="/docs/tutorials/day-two-holiday-campaign_2025" horizontal>
        Why AI agents need three layers of observability when traditional observability can't help.
      </Card>

      <Card title="Day 4 | ❄️ Tracing the impact of holiday styling in your Node.js app" icon="js" href="/docs/tutorials/observability-holiday-tracing" horizontal>
        Use LaunchDarkly's flags with the observability SDK to release and observe seasonal-themed CSS.
      </Card>

      <Card title="Collecting user feedback in your app with feature flags" icon="flag" href="/docs/tutorials/collect-qualitative-user-feedback-homepage" horizontal>
        Learn how users feel about your app's features so you can make data-driven product decisions.
      </Card>

      <Card title="When to add online evals to your AgentControl" icon="robot" href="/docs/tutorials/when-to-add-online-evals" horizontal>
        A practical guide for LLM observability and real-time quality monitoring in production.
      </Card>

      <Card title="Detecting user frustration: understanding Rage Clicks and Session Replay" icon="eye" href="/docs/tutorials/detecting-user-frustration-session-replay" horizontal>
        Learn how to automatically detect user frustration with LaunchDarkly's session replay and rage clicks.
      </Card>

      <Card title="Build a user frustration detection & response system" icon="eye" href="/docs/tutorials/connecting-rage-clicks-to-guarded-releases" horizontal>
        Connect rage click detection to LaunchDarkly Guarded Releases for automating actions.
      </Card>

      <Card title="Add Observability to your React Native app in 5 minutes" icon="react" href="/docs/tutorials/react-native-observability" horizontal>
        See how your React Native iOS app is performing with LaunchDarkly's Observability SDK.
      </Card>

      <Card title="AgentControl config CI/CD pipeline: automated quality gates and safe deployment" icon="robot" href="/docs/tutorials/aic-cicd" horizontal>
        Build a CI/CD pipeline that validates and tests LaunchDarkly AgentControl configs before deployment.
      </Card>

      <Card title="A deeper look at LaunchDarkly architecture: more than feature flags" icon="flag" href="/docs/tutorials/ld-arch-deep-dive" horizontal>
        Learn about how LaunchDarkly's foundations works under the hood.
      </Card>

      <Card title="Smart AI agent targeting with MCP tools" icon="robot" href="/docs/tutorials/multi-agent-mcp-targeting" horizontal>
        Transform your basic multi-agent system with business tiers and geographic targeting.
      </Card>

      <Card title="Build a LangGraph multi-agent system in 20 minutes with LaunchDarkly AgentControl" icon="robot" href="/docs/tutorials/agents-langgraph" horizontal>
        Build a multi-agent system with dynamic configuration using LangGraph and LaunchDarkly AgentControl configs.
      </Card>

      <Card title="Snowflake Cortex completion API + LaunchDarkly SDK integration" icon="robot" href="/docs/tutorials/snowflake-tutorial" horizontal>
        Walk through an integration between Snowflake Cortex and LaunchDarkly's AI SDKs.
      </Card>

      <Card title="Using AgentControl to review database changes" icon="robot" href="/docs/tutorials/ai-configs-review-database-changes" horizontal>
        Learn how to use LaunchDarkly AgentControl configs to review and validate database schema changes.
      </Card>

      <Card title="How to implement WebSockets and kill switches in a Python application" icon="python" href="/docs/tutorials/python-flask-websockets-kill-switch-flags" horizontal>
        Learn to use a websocket library to update your Python Flask app when a kill switch flag is flipped.
      </Card>

      <Card title="4 hacks to turbocharge your Cursor productivity" icon="wand-magic-sparkles" href="/docs/tutorials/cursor-tips-and-tricks" horizontal>
        Tips and tricks to make Cursor more accurate, personalized, and extensible.
      </Card>

      <Card title="Create a feature flag in your IDE in 5 minutes with the LaunchDarkly MCP server" icon="flag" href="/docs/tutorials/mcp-server-feature-flags" horizontal>
        Create, evaluate, and modify flags from within your IDE using natural language.
      </Card>

      <Card title="Observability for your Go ORM: OpenTelemetry integration with GORM" icon="golang" href="/docs/tutorials/observability-in-gorm" horizontal>
        GORM is a popular ORM for Go that allows you to interact with databases using Go structs.
      </Card>

      <Card title="The complete guide to OpenTelemetry in Next.js" icon="js" href="/docs/tutorials/the-complete-guide-to-opentelemetry-in-next-js" horizontal>
        OpenTelemetry defines how we send telemetry data to observability backends.
      </Card>

      <Card title="How to instrument your React Native app with OpenTelemetry" icon="react" href="/docs/tutorials/how-to-instrument-your-react-native-app-with-opentelemetry" horizontal>
        Collect traces, metrics, and logs from your React Native applications.
      </Card>

      <Card title="The complete guide to OpenTelemetry in Python" icon="python" href="/docs/tutorials/the-complete-guide-to-python-and-opentelemetry" horizontal>
        Learn how to send telemetry data from Python applications.
      </Card>

      <Card title="Monitoring browser applications with OpenTelemetry" icon="js" href="/docs/tutorials/monitoring-browser-applications-with-opentelemetry" horizontal>
        Leverage OpenTelemetry on the client side to collect signals from your applications.
      </Card>

      <Card title="How to use OpenTelemetry to monitor Next.js applications" icon="js" href="/docs/tutorials/how-to-use-opentelemetry-to-monitor-nextjs-apps" horizontal>
        Observability is key to monitoring and improving your web application's performance.
      </Card>

      <Card title="What is OpenTelemetry and why should I care?" icon="eye" href="/docs/tutorials/what-is-opentelemetry" horizontal>
        OpenTelemetry origins, collector setup, and how to start collecting OTEL data in your applications.
      </Card>

      <Card title="Distributed tracing in Next.js apps" icon="js" href="/docs/tutorials/distributed-tracing-in-nextjs" horizontal>
        Learn how to implement distributed tracing in your Next.js applications.
      </Card>

      <Card title="Real-time monitoring in Django: essential tools and techniques" icon="python" href="/docs/tutorials/django-monitoring-solutions" horizontal>
        Real-time monitoring for maintaining performance and reliability of Django applications.
      </Card>

      <Card title="DeepSeek vs Qwen: local model showdown featuring LaunchDarkly AgentControl" icon="js" href="/docs/tutorials/ollama-javascript" horizontal>
        Compare the performance of DeepSeek r1 and Alibaba's Qwen using Ollama and AgentControl configs.
      </Card>

      <Card title="Application tracing in .NET for performance monitoring" icon="code" href="/docs/tutorials/application-tracing-in-dot-net" horizontal>
        Implement application tracing in .NET for performance monitoring.
      </Card>

      <Card title="The ultimate guide to Ruby logging: best libraries and practices" icon="gem" href="/docs/tutorials/ruby-logging-best-practices" horizontal>
        In any Ruby application, logging is more than just a means to record errors.
      </Card>

      <Card title="Using materialized views in ClickHouse (vs. Postgres)" icon="database" href="/docs/tutorials/clickhouse-materialized-views" horizontal>
        Learn how to use materialized views in ClickHouse for better performance.
      </Card>

      <Card title="Filtering and sampling LaunchDarkly Ingest" icon="filter" href="/docs/tutorials/filtering-and-sampling-ingest" horizontal>
        Advanced ingestion filtering techniques for LaunchDarkly.
      </Card>

      <Card title="How to set up your production AWS MSK Kafka cluster" icon="aws" href="/docs/tutorials/aws-msk-kafka-guide" horizontal>
        Looking to set up your own Kafka cluster on AWS MSK?
      </Card>

      <Card title="Publishing an NPM package with private pnpm monorepo dependencies" icon="npm" href="/docs/tutorials/publishing-private-pnpm-monorepo" horizontal>
        Trying to publish an npm package but have a complicated monorepo setup?
      </Card>

      <Card title="How to use the Chrome inspector and debugger" icon="chrome" href="/docs/tutorials/how-to-use-the-chrome-inspector-debugger" horizontal>
        Chrome Developer Tools is a toolkit for web developers built into Google Chrome.
      </Card>

      <Card title="3 levels of data validation in a full stack application with React" icon="react" href="/docs/tutorials/3-levels-of-data-validation-in-a-full-stack-application-with-react" horizontal>
        Data validation is critical for any application that relies on input from users.
      </Card>

      <Card title="The power of the monorepo: keep your fullstack app in sync!" icon="folder-tree" href="/docs/tutorials/keeping-your-frontend-and-backend-in-sync-with-a-monorepo" horizontal>
        Use JavaScript or TypeScript for both your frontend and your backend.
      </Card>

      <Card title="Compression: the simple, powerful upgrade for your web stack" icon="compress" href="/docs/tutorials/compression" horizontal>
        At LaunchDarkly, we're focused on keeping our app snappy and fast.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Feature flags">
    <CardGroup cols={2}>
      <Card title="Day 10 | Why observability and feature flags go together like milk and cookies" icon="video" href="/docs/tutorials/videos/santa-milk-and-cookies" horizontal>
        A holiday-themed video illustrating the value of connecting feature flags with observability.
      </Card>

      <Card title="Collecting user feedback in your app with feature flags" icon="flag" href="/docs/tutorials/collect-qualitative-user-feedback-homepage" horizontal>
        Learn how users feel about your app's features so you can make data-driven product decisions.
      </Card>

      <Card title="How to run safe migrations using feature flags" icon="video" href="/docs/tutorials/videos/run-safe-migration" horizontal>
        Safely and efficiently run a stage migration and monitor metrics.
      </Card>

      <Card title="How to target users in production without redeploying code" icon="video" href="/docs/tutorials/videos/target-users-production" horizontal>
        Use LaunchDarkly to create segments that target different users in production.
      </Card>

      <Card title="A deeper look at LaunchDarkly architecture: more than feature flags" icon="flag" href="/docs/tutorials/ld-arch-deep-dive" horizontal>
        Learn about how LaunchDarkly's foundations works under the hood.
      </Card>

      <Card title="How to vibe code safely using LaunchDarkly feature flags" icon="video" href="/docs/tutorials/videos/vibe-coding-error-protection" horizontal>
        How to vibe code safely using LaunchDarkly feature flags.
      </Card>

      <Card title="How to set up a kill switch for any feature in production" icon="video" href="/docs/tutorials/videos/kill-switch" horizontal>
        Create a kill switch that disables a feature in production.
      </Card>

      <Card title="How to roll out a feature to 1% of users and then scale safely" icon="video" href="/docs/tutorials/videos/roll-out-and-scale" horizontal>
        Use LaunchDarkly to roll out a feature safely.
      </Card>

      <Card title="How to implement WebSockets and kill switches in a Python application" icon="python" href="/docs/tutorials/python-flask-websockets-kill-switch-flags" horizontal>
        Learn to use a websocket library to update your Python Flask app when a kill switch flag is flipped.
      </Card>

      <Card title="Create a feature flag in your IDE in 5 minutes with the LaunchDarkly MCP server" icon="flag" href="/docs/tutorials/mcp-server-feature-flags" horizontal>
        Create, evaluate, and modify flags from within your IDE using natural language.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="AgentControl configs">
    <CardGroup cols={2}>
      <Card title="Uncover security risks in your agent skills before deploying" icon="robot" href="/docs/tutorials/tessl-security-gate" horizontal>
        Catch a dangerous agent skill before an agent runs it, using a security review from Tessl and a runtime check enforced by AgentControl.
      </Card>

      <Card title="Optimize an AI agent to sound human, with a judge you own" icon="robot" href="/docs/tutorials/agent-optimization" horizontal>
        Optimize a reply-drafting agent to sound human, scored by GPTZero as an inverted judge, then run a fuller eval on the candidates it surfaces.
      </Card>

      <Card title="Benchmark LangGraph, Strands, OpenAI Agents, and Google ADK on the same agent graph" icon="robot" href="/docs/tutorials/agent-graph-experiments" horizontal>
        Run four frameworks over one LaunchDarkly agent graph, let an experiment rank them on latency and tokens, then promote the winner with the same flag.
      </Card>

      <Card title="Migrate a hardcoded LangGraph agent to LaunchDarkly AgentControl in 20 minutes" icon="robot" href="/docs/tutorials/ld4a-langgraph-migration" horizontal>
        Walk the official langchain-ai/react-agent template through the migrate skill and externalize every prompt, model, and tool.
      </Card>

      <Card title="Offline evaluation of RAG-grounded answers in AgentControl" icon="robot" href="/docs/tutorials/offline-evals" horizontal>
        Regression-test your support agent's RAG generation offline using Datasets, the Playground, and LLM-as-a-judge.
      </Card>

      <Card title="Beyond n8n for workflow automation: agent graphs as your universal agent harness" icon="robot" href="/docs/tutorials/agent-graphs" horizontal>
        Build multi-agent systems that work across LangGraph, OpenAI Agents SDK, and other frameworks.
      </Card>

      <Card title="Build a multi-agent system with LaunchDarkly Agent Skills" icon="video" href="/docs/tutorials/videos/agent-skills-quickstart" horizontal>
        Skip the UI. Tell your AI coding assistant what to build and watch it create your agents.
      </Card>

      <Card title="Evaluate LLM code generation with LLM-as-judge evaluators" icon="robot" href="/docs/tutorials/custom-evals-claude-code" horizontal>
        Build custom LLM-as-judge evaluators for AI code generation. Score security, API contracts, and scope creep.
      </Card>

      <Card title="Introducing judges: enhancing AI response quality monitoring" icon="video" href="/docs/tutorials/videos/introducing-judges" horizontal>
        Learn how to use LaunchDarkly Judges to automatically evaluate AI model responses.
      </Card>

      <Card title="Use LaunchDarkly Agent Skills in Claude Code and Cursor" icon="robot" href="/docs/tutorials/agent-skills-quickstart" horizontal>
        Install LaunchDarkly Agent Skills in your AI coding assistant and create AgentControl configs from natural language.
      </Card>

      <Card title="Compare AI orchestrators: LangGraph vs Strands vs OpenAI Swarm" icon="robot" href="/docs/tutorials/ai-orchestrators" horizontal>
        Build a 3-agent research analysis swarm that runs across three orchestrators.
      </Card>

      <Card title="Building a data extraction pipeline with LaunchDarkly" icon="robot" href="/docs/tutorials/data-extraction-pipeline" horizontal>
        Turn unstructured text into structured JSON with runtime-configurable schemas.
      </Card>

      <Card title="Day 9 | 👻 The three ghosts haunting your AI this holiday season" icon="video" href="/docs/tutorials/videos/three-ghosts-haunting-ai" horizontal>
        Explore the three 'ghosts' haunting AI in production: model, knowledge, and user layer.
      </Card>

      <Card title="Day 8 | 🎁 Observable multi-modal agentic systems" icon="robot" href="/docs/tutorials/observability-multimodal-agents" horizontal>
        Learn how combining session replay with online evaluations provides complete observability for multi-modal AI systems.
      </Card>

      <Card title="Day 2 | 🎅 He knows if you have been bad or good... But what if he gets it wrong?" icon="robot" href="/docs/tutorials/day-two-holiday-campaign_2025" horizontal>
        Why AI agents need three layers of observability when traditional observability can't help.
      </Card>

      <Card title="When to add online evals to your AgentControl" icon="robot" href="/docs/tutorials/when-to-add-online-evals" horizontal>
        A practical guide for LLM observability and real-time quality monitoring in production.
      </Card>

      <Card title="AgentControl config CI/CD pipeline: automated quality gates and safe deployment" icon="robot" href="/docs/tutorials/aic-cicd" horizontal>
        Build a CI/CD pipeline that validates and tests LaunchDarkly AgentControl configs before deployment.
      </Card>

      <Card title="Smart AI agent targeting with MCP tools" icon="robot" href="/docs/tutorials/multi-agent-mcp-targeting" horizontal>
        Transform your basic multi-agent system with business tiers and geographic targeting.
      </Card>

      <Card title="Build a LangGraph multi-agent system in 20 minutes with LaunchDarkly AgentControl" icon="robot" href="/docs/tutorials/agents-langgraph" horizontal>
        Build a multi-agent system with dynamic configuration using LangGraph and LaunchDarkly AgentControl configs.
      </Card>

      <Card title="Snowflake Cortex completion API + LaunchDarkly SDK integration" icon="robot" href="/docs/tutorials/snowflake-tutorial" horizontal>
        Walk through an integration between Snowflake Cortex and LaunchDarkly's AI SDKs.
      </Card>

      <Card title="Using AgentControl to review database changes" icon="robot" href="/docs/tutorials/ai-configs-review-database-changes" horizontal>
        Learn how to use LaunchDarkly AgentControl Configs to review and validate database schema changes.
      </Card>

      <Card title="DeepSeek vs Qwen: local model showdown featuring LaunchDarkly AgentControl" icon="js" href="/docs/tutorials/ollama-javascript" horizontal>
        Compare the performance of DeepSeek r1 and Alibaba's Qwen using Ollama and AgentControl configs.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Observability">
    <CardGroup cols={2}>
      <Card title="Catch your first silent AI failure with Vega AI in under 10 minutes" icon="eye" href="/docs/tutorials/silent-failure-vega-ai-investigation" horizontal>
        Learn how to instrument an AI agent to expose silent failures and use Vega AI to investigate the root cause.
      </Card>

      <Card title="Day 8 | 🎁 Observable multi-modal agentic systems" icon="robot" href="/docs/tutorials/observability-multimodal-agents" horizontal>
        Learn how combining session replay with online evaluations provides complete observability for multi-modal AI systems.
      </Card>

      <Card title="OpenTelemetry for LLM applications: a practical guide with LaunchDarkly and Langfuse" icon="eye" href="/docs/tutorials/otel-llm-practical-guide-with-langfuse" horizontal>
        Instrument a real LLM application with OpenTelemetry spans and fan out traces to Langfuse and LaunchDarkly.
      </Card>

      <Card title="Application tracing in .NET for performance monitoring" icon="code" href="/docs/tutorials/application-tracing-in-dot-net" horizontal>
        Implement application tracing in .NET for performance monitoring.
      </Card>

      <Card title="Distributed tracing in Next.js apps" icon="js" href="/docs/tutorials/distributed-tracing-in-nextjs" horizontal>
        Learn how to implement distributed tracing in your Next.js applications.
      </Card>

      <Card title="Real-time monitoring in Django: essential tools and techniques" icon="python" href="/docs/tutorials/django-monitoring-solutions" horizontal>
        Real-time monitoring for maintaining performance and reliability of Django applications.
      </Card>

      <Card title="Filtering and sampling LaunchDarkly Ingest" icon="filter" href="/docs/tutorials/filtering-and-sampling-ingest" horizontal>
        Advanced ingestion filtering techniques for LaunchDarkly.
      </Card>

      <Card title="How to instrument your React Native app with OpenTelemetry" icon="react" href="/docs/tutorials/how-to-instrument-your-react-native-app-with-opentelemetry" horizontal>
        Collect traces, metrics, and logs from your React Native applications.
      </Card>

      <Card title="How to use OpenTelemetry to monitor Next.js applications" icon="js" href="/docs/tutorials/how-to-use-opentelemetry-to-monitor-nextjs-apps" horizontal>
        Observability is key to monitoring and improving your web application's performance.
      </Card>

      <Card title="Monitoring browser applications with OpenTelemetry" icon="js" href="/docs/tutorials/monitoring-browser-applications-with-opentelemetry" horizontal>
        Leverage OpenTelemetry on the client side to collect signals from your applications.
      </Card>

      <Card title="Observability for your Go ORM: OpenTelemetry integration with GORM" icon="golang" href="/docs/tutorials/observability-in-gorm" horizontal>
        GORM is a popular ORM for Go that allows you to interact with databases using Go structs.
      </Card>

      <Card title="The ultimate guide to Ruby logging: best libraries and practices" icon="gem" href="/docs/tutorials/ruby-logging-best-practices" horizontal>
        In any Ruby application, logging is more than just a means to record errors.
      </Card>

      <Card title="The complete guide to OpenTelemetry in Next.js" icon="js" href="/docs/tutorials/the-complete-guide-to-opentelemetry-in-next-js" horizontal>
        OpenTelemetry defines how we send telemetry data to observability backends.
      </Card>

      <Card title="The complete guide to OpenTelemetry in Python" icon="python" href="/docs/tutorials/the-complete-guide-to-python-and-opentelemetry" horizontal>
        Learn how to send telemetry data from Python applications.
      </Card>

      <Card title="Tracing distributed systems in Next.js" icon="js" href="/docs/tutorials/tracing-distributed-systems-in-nextjs" horizontal>
        Learn how to trace distributed systems in your Next.js applications.
      </Card>

      <Card title="What is OpenTelemetry and why should I care?" icon="eye" href="/docs/tutorials/what-is-opentelemetry" horizontal>
        OpenTelemetry origins, collector setup, and how to start collecting OTEL data in your applications.
      </Card>

      <Card title="Detection to resolution: real world debugging with Rage Clicks and Session Replay" icon="eye" href="/docs/tutorials/detection-to-resolution-rage-clicks" horizontal>
        Learn how to use session replay and rage click detection to diagnose and fix production issues fast.
      </Card>

      <Card title="Day 10 | Why observability and feature flags go together like milk and cookies" icon="video" href="/docs/tutorials/videos/santa-milk-and-cookies" horizontal>
        A holiday-themed video illustrating the value of connecting feature flags with observability.
      </Card>

      <Card title="Day 7 | 🎄✨The Rockefeller tree in NYC: SLOs that actually drive decisions" icon="eye" href="/docs/tutorials/o11y-that-drives-decisions" horizontal>
        Learn how to build SLOs that start with business impact and end with actionable targets.
      </Card>

      <Card title="Day 12 | 🎊 New Year, new Observability" icon="video" href="/docs/tutorials/videos/new-year-new-observability" horizontal>
        In this series, we've talked about how observability has changed in 2025.
      </Card>

      <Card title="Day 5 | 🧹 Using a popular tidying method to consolidate your Observability stack" icon="video" href="/docs/tutorials/videos/consolidating-observability-tools" horizontal>
        Learn to apply a popular tidying method to consolidate an inflated observability stack.
      </Card>

      <Card title="Day 11 | ✉️ Letters to Santa: what engineering teams really want from Observability in 2026" icon="eye" href="/docs/tutorials/what-eng-teams-really-want-o11y" horizontal>
        Santa's advice to engineering teams in need of unified observability solutions.
      </Card>

      <Card title="Day 3 | 🔔 Jingle all the way to zero-config Observability" icon="eye" href="/docs/tutorials/zero-config-observability-holiday" horizontal>
        Get feature flag context automatically injected into your OTel traces without writing instrumentation code.
      </Card>

      <Card title="Day 6 | 💸 The famous green character that stole your cloud budget: the cardinality problem" icon="eye" href="/docs/tutorials/cloud-budget-observability-holiday" horizontal>
        Learn 3 ways to stop cardinality from stealing your cloud budget.
      </Card>

      <Card title="Day 1 | 🎄 Observability under the tree: what changed in 2025" icon="eye" href="/docs/tutorials/observability-2025-recap-holiday" horizontal>
        A full recap of the key innovations in observability this year.
      </Card>

      <Card title="Day 2 | 🎅 He knows if you have been bad or good... But what if he gets it wrong?" icon="robot" href="/docs/tutorials/day-two-holiday-campaign_2025" horizontal>
        Why AI agents need three layers of observability when traditional observability can't help.
      </Card>

      <Card title="Day 4 | ❄️ Tracing the impact of holiday styling in your Node.js app" icon="js" href="/docs/tutorials/observability-holiday-tracing" horizontal>
        Use LaunchDarkly's flags with the observability SDK to release and observe seasonal-themed CSS.
      </Card>

      <Card title="Detecting user frustration: understanding Rage Clicks and Session Replay" icon="eye" href="/docs/tutorials/detecting-user-frustration-session-replay" horizontal>
        Learn how to automatically detect user frustration with LaunchDarkly's session replay and rage clicks.
      </Card>

      <Card title="Build a user frustration detection & response system" icon="eye" href="/docs/tutorials/connecting-rage-clicks-to-guarded-releases" horizontal>
        Connect rage click detection to LaunchDarkly Guarded Releases for automating actions.
      </Card>

      <Card title="Add Observability to your React Native app in 5 minutes" icon="react" href="/docs/tutorials/react-native-observability" horizontal>
        See how your React Native iOS app is performing with LaunchDarkly's Observability SDK.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Developer productivity">
    <CardGroup cols={2}>
      <Card title="4 hacks to turbocharge your Cursor productivity" icon="wand-magic-sparkles" href="/docs/tutorials/cursor-tips-and-tricks" horizontal>
        Tips and tricks to make Cursor more accurate, personalized, and extensible.
      </Card>

      <Card title="How to use the Chrome inspector and debugger" icon="chrome" href="/docs/tutorials/how-to-use-the-chrome-inspector-debugger" horizontal>
        Chrome Developer Tools is a toolkit for web developers built into Google Chrome.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Infrastructure">
    <CardGroup cols={2}>
      <Card title="Using materialized views in ClickHouse (vs. Postgres)" icon="database" href="/docs/tutorials/clickhouse-materialized-views" horizontal>
        Learn how to use materialized views in ClickHouse for better performance.
      </Card>

      <Card title="How to set up your production AWS MSK Kafka cluster" icon="aws" href="/docs/tutorials/aws-msk-kafka-guide" horizontal>
        Looking to set up your own Kafka cluster on AWS MSK?
      </Card>

      <Card title="Publishing an NPM package with private pnpm monorepo dependencies" icon="npm" href="/docs/tutorials/publishing-private-pnpm-monorepo" horizontal>
        Trying to publish an npm package but have a complicated monorepo setup?
      </Card>

      <Card title="3 levels of data validation in a full stack application with React" icon="react" href="/docs/tutorials/3-levels-of-data-validation-in-a-full-stack-application-with-react" horizontal>
        Data validation is critical for any application that relies on input from users.
      </Card>

      <Card title="The power of the monorepo: keep your fullstack app in sync!" icon="folder-tree" href="/docs/tutorials/keeping-your-frontend-and-backend-in-sync-with-a-monorepo" horizontal>
        Use JavaScript or TypeScript for both your frontend and your backend.
      </Card>

      <Card title="Compression: the simple, powerful upgrade for your web stack" icon="compress" href="/docs/tutorials/compression" horizontal>
        At LaunchDarkly, we're focused on keeping our app snappy and fast.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Video">
    <CardGroup cols={2}>
      <Card title="Build a multi-agent system with LaunchDarkly Agent Skills" icon="video" href="/docs/tutorials/videos/agent-skills-quickstart" horizontal>
        Skip the UI. Tell your AI coding assistant what to build and watch it create your agents.
      </Card>

      <Card title="Introducing judges: enhancing AI response quality monitoring" icon="video" href="/docs/tutorials/videos/introducing-judges" horizontal>
        Learn how to use LaunchDarkly Judges to automatically evaluate AI model responses.
      </Card>

      <Card title="Day 10 | Why observability and feature flags go together like milk and cookies" icon="video" href="/docs/tutorials/videos/santa-milk-and-cookies" horizontal>
        A holiday-themed video illustrating the value of connecting feature flags with observability.
      </Card>

      <Card title="Day 9 | 👻 The three ghosts haunting your AI this holiday season" icon="video" href="/docs/tutorials/videos/three-ghosts-haunting-ai" horizontal>
        Explore the three 'ghosts' haunting AI in production: model, knowledge, and user layer.
      </Card>

      <Card title="Day 12 | 🎊 New Year, new Observability" icon="video" href="/docs/tutorials/videos/new-year-new-observability" horizontal>
        In this series, we've talked about how observability has changed in 2025.
      </Card>

      <Card title="Day 5 | 🧹 Using a popular tidying method to consolidate your Observability stack" icon="video" href="/docs/tutorials/videos/consolidating-observability-tools" horizontal>
        Learn to apply a popular tidying method to consolidate an inflated observability stack.
      </Card>

      <Card title="How to run safe migrations using feature flags" icon="video" href="/docs/tutorials/videos/run-safe-migration" horizontal>
        Safely and efficiently run a stage migration and monitor metrics.
      </Card>

      <Card title="How to target users in production without redeploying code" icon="video" href="/docs/tutorials/videos/target-users-production" horizontal>
        Use LaunchDarkly to create segments that target different users in production.
      </Card>

      <Card title="How to vibe code safely using LaunchDarkly feature flags" icon="video" href="/docs/tutorials/videos/vibe-coding-error-protection" horizontal>
        How to vibe code safely using LaunchDarkly feature flags.
      </Card>

      <Card title="How to set up a kill switch for any feature in production" icon="video" href="/docs/tutorials/videos/kill-switch" horizontal>
        Create a kill switch that disables a feature in production.
      </Card>

      <Card title="How to roll out a feature to 1% of users and then scale safely" icon="video" href="/docs/tutorials/videos/roll-out-and-scale" horizontal>
        Use LaunchDarkly to roll out a feature safely.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>
