47 lines
655 KiB
HTML
47 lines
655 KiB
HTML
<!DOCTYPE html><html lang="en-US"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/06a57141b3ff4399-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/1c175694bc1e8ad8-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/415c659d58f62aff-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/751909690a1a74fa-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8fe56b4ac583f0e1-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/a205fd595a9beeab-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c314d5394508c5c7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/cbde3fd2db275844-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/d865ae18e54dcb9c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/eb42eb886f642af5-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f5e01691c8be1cce-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress%2Cformat&rect=0%2C0%2C1113%2C590&w=2048&fit=max&q=80 1x, https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress%2Cformat&rect=0%2C0%2C1113%2C590&w=3840&fit=max&q=80 2x"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTY1P9HI4UtaI_img-bg--footer-get-demo.svg"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTI1P9HI4UtaH_img-bg--footer-free-trial.svg"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwS41P9HI4UtaG_img-bg--footer-code-control.svg"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwSo1P9HI4UtaF_img-bg--footer-agent-control.svg"/><link rel="stylesheet" href="/_next/static/css/4b895a9a0ceca7ed.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/6aeb3fbd013f7055.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/baa31bc0bc2753e2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/b694ee22169cc940.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/455e5680c78aaa64.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/668223e4ce0896ff.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/71e7e41975824f9a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/499e8ecba60a437c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c13c7b31349c3e1e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/eb8c52289887f66e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/76ba66facbc12026.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/61c845f39508ea49.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9506ad2d29f3da93.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c96dfd09a5295fdd.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/ffc1747465c21b7c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a3d1e33a3a179b4c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/ab4a69f65a7a2b93.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5b017ffd652d07f8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2a2739e0e57e14c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/0e421a84dd333b11.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f188bfa3f9063907.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f08af977962d892c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/741f4cf49b054cf0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a05c4c008283c998.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/271699adbe3692a1.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/6bcd99eac94adccc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9860101428a5e484.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/34a11c3f23439233.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/b60911417b616c72.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e217cbe846d54f5a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/437c2c516d87ce24.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c240dbaacd91d7b6.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e2768b37f0a7179e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/3771f60faaafd2e7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e22ba8bc372dffa3.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/7a4ebd8c71fa9dec.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/42eebaa13cfadd34.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/0b0e39f220873667.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f70e0c2fa3894b2b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2a1b94a1fafb21a0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/372992834c739f06.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-6feccfddff7ef52e.js"/><script src="/_next/static/chunks/f5e865f6-f7ce3acdc8f53367.js" async=""></script><script src="/_next/static/chunks/4478-fb3dc47bb56134a0.js" async=""></script><script src="/_next/static/chunks/main-app-21b96efeeed761a7.js" async=""></script><script src="/_next/static/chunks/7503-b90474bdcb57e2a8.js" async=""></script><script src="/_next/static/chunks/7724-f653158a9ba1984f.js" async=""></script><script src="/_next/static/chunks/2151-1b788faaa737d8a8.js" async=""></script><script src="/_next/static/chunks/8149-7f3e93382769fd21.js" async=""></script><script src="/_next/static/chunks/4544-0392fd1bc10fce67.js" async=""></script><script src="/_next/static/chunks/8072-5f4bd0e6a2406823.js" async=""></script><script src="/_next/static/chunks/7950-199b90cf99360b48.js" async=""></script><script src="/_next/static/chunks/6486-65f1afba5f178bdd.js" async=""></script><script src="/_next/static/chunks/4089-4672fdbd787dddc6.js" async=""></script><script src="/_next/static/chunks/5265-7f81f179d2fa0221.js" async=""></script><script src="/_next/static/chunks/685-dc88876e3a3ca418.js" async=""></script><script src="/_next/static/chunks/8941-6bf805c661ac7247.js" async=""></script><script src="/_next/static/chunks/739-f05d34af20af1cd5.js" async=""></script><script src="/_next/static/chunks/4661-d6f876059d7e275f.js" async=""></script><script src="/_next/static/chunks/7550-010a17a69ff132e0.js" async=""></script><script src="/_next/static/chunks/9244-3b918f1b79c82aa2.js" async=""></script><script src="/_next/static/chunks/8687-88b6a1a725cd10c9.js" async=""></script><script src="/_next/static/chunks/8634-33081268eea6ca62.js" async=""></script><script src="/_next/static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js" async=""></script><script src="/_next/static/chunks/app/layout-5d77b524524e53c1.js" async=""></script><script src="/_next/static/chunks/app/not-found-497554e3668544b1.js" async=""></script><link rel="preload" href="https://consent.cookiebot.com/uc.js" as="script"/><link rel="preload" href="https://www.googletagmanager.com/gtm.js?id=GTM-WRKKC89" as="script"/><link rel="expect" href="#_R_" blocking="render"/><meta name="next-size-adjust" content=""/><meta name="theme-color" content="#FFF"/><title>The Time Our Provider Screwed Us | LaunchDarkly</title><meta name="description" content="Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. "/><meta name="application-name" content="LaunchDarkly"/><meta name="author" content="LaunchDarkly"/><meta name="generator" content="LaunchDarkly"/><meta name="referrer" content="origin-when-cross-origin"/><meta name="creator" content="LaunchDarkly"/><meta name="publisher" content="LaunchDarkly"/><meta name="robots" content="index"/><meta name="googlebot" content="index"/><link rel="canonical" href="https://launchdarkly.com/blog/the-time-our-provider-screwed-us/"/><meta name="format-detection" content="telephone=no, address=no, email=no"/><meta property="og:title" content="The Time Our Provider Screwed Us | LaunchDarkly"/><meta property="og:description" content="Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. "/><meta property="og:url" content="https://launchdarkly.com/blog/the-time-our-provider-screwed-us/"/><meta property="og:site_name" content="LaunchDarkly"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="LaunchDarkly - Feature management platform"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@LaunchDarkly"/><meta name="twitter:title" content="The Time Our Provider Screwed Us | LaunchDarkly"/><meta name="twitter:description" content="Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. "/><meta name="twitter:image" content="https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><meta name="twitter:image:alt" content="LaunchDarkly - Feature management platform"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="96x96"/><link rel="icon" href="/icon.png?8354b0c15ee5b065" type="image/png" sizes="96x96"/><link rel="apple-touch-icon" href="/apple-icon.png?8354b0c15ee5b065" type="image/png" sizes="96x96"/><script id="cookie-consent-script" data-cookieconsent="ignore">
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag() {
|
||
dataLayer.push(arguments);
|
||
}
|
||
gtag("consent", "default", {
|
||
ad_storage: "denied",
|
||
ad_user_data: "denied",
|
||
ad_personalization: "denied",
|
||
analytics_storage: "denied",
|
||
functionality_storage: "denied",
|
||
personalization_storage: "denied",
|
||
security_storage: "granted",
|
||
wait_for_update: 500,
|
||
});
|
||
gtag("set", "ads_data_redaction", true);
|
||
gtag("set", "url_passthrough", true);
|
||
</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_918804 __variable_81b511 __variable_3ebb29 __variable_a7dd04 __variable_479fb2"><div hidden=""><!--$--><!--/$--></div><script>(self.__next_s=self.__next_s||[]).push(["https://consent.cookiebot.com/uc.js",{"data-cbid":"a9e2be18-730c-4afe-89dc-251a408727a0","data-blockingmode":"auto","type":"text/javascript","data-georegions":"{'region':'AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SK, SI, ES, SE, GB','cbid':'d7afae1f-c20d-4849-be5c-a875c8c184a0'}","id":"cookiebot"}])</script><div class="styles-module__4bne7a__layers"></div><section class="styles-module__NFwUga__newSection styles-module__aO7DCW__aboveMenuBanner "><div class="styles-module__NFwUga__contentContainer styles-module__aO7DCW__aboveMenuBannerContainer"><div><p class="styles-module__J0n02W__variant_textSmallMedium styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_medium">[Hands-on workshop] Managing AI Agents in Production - Sep 17<!-- --> — <a target="_self" tabindex="0" href="/webinars/runtime-labs-managing-ai-agents-in-production-sept-17/">Save my seat</a></p></div><div class="styles-module__aO7DCW__closeButtonContainer"><button type="button" class="styles-module__aO7DCW__closeButton" aria-label="Close banner"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aNWwCp5xUNkB1HlJ_icon--close-white-narrow.svg" alt="" loading="lazy"/></button></div></div></section><a id="home" tabindex="-1"></a><div class="styles-module__EPiYHG__accessibilityMenu"><span class="styles-module__EPiYHG__label">Skip to:</span><nav><ul><li><a href="/" class="styles-module__EPiYHG__link" tabindex="0" title="Skip to Home">Home</a></li><li><a href="#content" class="styles-module__EPiYHG__link" tabindex="0" title="Skip to Content">Content</a></li><li><a href="#footer" class="styles-module__EPiYHG__link" tabindex="0" title="Skip to Footer navigation">Footer navigation</a></li></ul></nav></div><div class="styles-module__stVVvG__refreshDesignNavDock"></div><header class="header-nav oldstyles-module__hgjkrG__header styles-module__stVVvG__header undefined styles-module__stVVvG__useRefreshDesign "><div class="styles-module__stVVvG__refreshDesignNavDockIcons"><div class="styles-module__stVVvG__refreshDesignNavDockBar"></div></div><nav class="oldstyles-module__hgjkrG__nav styles-module__stVVvG__nav " aria-label="Main"><div class="oldstyles-module__hgjkrG__brand styles-module__stVVvG__brand styles-module__stVVvG__useWhiteLogo"><div class="styles-module__stVVvG__brandLogoContainer"><a class="styles-module__SHyKFW__logo oldstyles-module__hgjkrG__brand styles-module__stVVvG__brandLogo" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="nav-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 156 24"><g fill="#fff" clip-path="url(#brand-light_svg__a)"><path d="M9.33 18.729V16.45H2.578V5.272H0v13.457zm6.486-.424q.837-.636 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.488-1.245-1.409-.45-2.286-.45c-.479 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.233c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.851 0 1.542-.212 2.1-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874 2.33 2.33 0 0 1-1.276.371c-.452 0-.824-.106-1.09-.318m13.848 1.642c.585-.503 1.01-1.192 1.276-2.04v2.49h2.499V8.98h-2.498v4.556q0 .993-.319 1.748c-.319.755-.505.927-.904 1.192a2.23 2.23 0 0 1-1.356.424c-.558 0-.983-.159-1.302-.477-.292-.318-.452-.795-.452-1.404V8.98h-2.499v6.093c0 1.272.292 2.225.904 2.914s1.409 1.033 2.445 1.033c.904 0 1.621-.238 2.206-.742m9.011.45v-4.556q0-.993.319-1.748c.319-.755.505-.927.877-1.192.372-.291.824-.424 1.329-.424.558 0 .983.159 1.302.477.292.318.452.795.452 1.404v6.066h2.525v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.595.265-2.18.742-.558.503-.983 1.192-1.276 2.04v-2.49h-2.498v9.748h2.499zm15.257.212a8 8 0 0 0 .904-.212c.292-.079.532-.186.797-.265l.027-2.358c-.399.212-.824.344-1.276.45a6 6 0 0 1-1.356.159c-.665 0-1.249-.132-1.701-.371a2.24 2.24 0 0 1-1.01-1.033 3.25 3.25 0 0 1-.319-1.457 3.34 3.34 0 0 1 .319-1.457c.213-.424.558-.768 1.01-1.033s1.01-.371 1.648-.371a6 6 0 0 1 1.409.159c.452.106.851.265 1.249.45l-.027-2.437c-.292-.106-.558-.212-.824-.265a4.3 4.3 0 0 0-.904-.159 6.3 6.3 0 0 0-1.037-.079c-1.116 0-2.073.238-2.897.689a4.95 4.95 0 0 0-1.914 1.854c-.452.795-.664 1.669-.664 2.676 0 .98.239 1.881.691 2.649a4.65 4.65 0 0 0 1.914 1.801c.824.424 1.781.662 2.871.662.399.026.771 0 1.09-.053zm6.459-.212v-4.556q0-.993.319-1.748c.319-.755.505-.927.904-1.192a2.15 2.15 0 0 1 1.329-.424c.585 0 1.01.159 1.302.477s.452.795.452 1.404v6.066h2.499v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.621.265-2.18.742-.585.503-1.01 1.192-1.276 2.04V5.272h-2.472v13.457zm14.885 0c1.435 0 2.658-.265 3.668-.821a5.6 5.6 0 0 0 2.313-2.331c.532-1.006.797-2.199.797-3.55s-.266-2.543-.797-3.55-1.302-1.801-2.312-2.358-2.233-.821-3.668-.821H67.86v13.457h5.183zm-2.605-2.278v-8.9h2.578c1.302 0 2.313.397 3.03 1.166.744.795 1.09 1.881 1.09 3.285s-.372 2.517-1.09 3.285c-.744.768-1.754 1.165-3.03 1.165h-2.578zm15.922 1.854a4 4 0 0 0 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.489-1.245-1.409-.45-2.286-.45c-.478 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.18c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.824 0 1.489-.212 2.047-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874c-.372.238-.771.344-1.249.344-.452.027-.824-.079-1.116-.291zm11.031 2.093V14.57c0-1.086.239-1.907.691-2.464s1.09-.848 1.861-.848a3.3 3.3 0 0 1 1.037.159v-2.41c-.159-.053-.319-.079-.478-.106s-.346-.026-.532-.026c-.611 0-1.143.212-1.568.636s-.771 1.033-.983 1.775V8.954h-2.499v9.748h2.472v.026zm7.681 0v-3.152l.904-.848 2.924 4h2.977l-4.173-5.695 4.093-4.053h-3.136l-3.562 3.444V5.272h-2.472v13.457zm10.819 0V5.272h-2.499v13.457zm3.827 3.629c.93 0 1.675-.185 2.259-.556s1.064-1.033 1.462-1.96l4.492-10.861h-2.578l-2.631 6.808-2.712-6.808h-2.578l4.014 9.722-.213.503c-.133.318-.292.583-.531.715-.213.159-.559.238-1.011.238h-2.073v2.199zM144.092 24a.56.56 0 0 1-.478-.291c-.08-.185-.08-.371.053-.53l5.662-7.762-9.915 4.027c-.08.027-.133.053-.212.053a.52.52 0 0 1-.505-.371c-.08-.212.026-.45.212-.583l8.719-5.113-15.337-.874a.525.525 0 0 1-.505-.53.52.52 0 0 1 .505-.53l15.337-.874-8.719-5.113c-.186-.132-.292-.371-.212-.583s.265-.371.505-.371c.079 0 .132.026.212.053l9.915 4.026-5.662-7.788c-.106-.159-.133-.371-.053-.53a.5.5 0 0 1 .478-.291c.133 0 .266.053.372.159l11.271 11.205c.159.159.239.397.239.609s-.08.424-.239.609l-11.271 11.232a.53.53 0 0 1-.372.159z"></path></g><defs><clipPath id="brand-light_svg__a"><path fill="#fff" d="M0 0h156v24H0z"></path></clipPath></defs></svg></a></div></div><div class="oldstyles-module__hgjkrG__navInner styles-module__stVVvG__navInner container"><div class="styles-module__stVVvG__navInnerCorner styles-module__stVVvG__refreshDesignNavCurbLeft"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="21" fill="none"><path fill="#212121" d="M19 19C19 8.507 10.493 0 0 0h19z"></path></svg></div><div class="styles-module__stVVvG__navInnerCorner styles-module__stVVvG__refreshDesignNavCurbRight"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="21" fill="none"><path fill="#212121" d="M0 19C0 8.507 8.507 0 19 0H0z"></path></svg></div><div class="oldstyles-module__hgjkrG__mobileButtonsContainer"><a class="button oldstyles-module__hgjkrG__requestDemoMobileButton styles-module__stVVvG__refreshDesignRequestDemoMobileButton" id="main-nav-mobile-request-demo" target="_self" tabindex="0" data-analytics="nav-mobile-get-a-demo" href="/request-a-demo/">Get a demo</a></div><input type="checkbox" id="activate-menu-old" class="oldstyles-module__hgjkrG__mobileBurgerMenu" aria-label="Toggle navigation menu"/><div class="oldstyles-module__hgjkrG__burger undefined"></div><div class="oldstyles-module__hgjkrG__whiteOverlay"><a class="styles-module__SHyKFW__logo" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="nav-mobile-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 156 24"><g fill="#fff" clip-path="url(#brand-light_svg__a)"><path d="M9.33 18.729V16.45H2.578V5.272H0v13.457zm6.486-.424q.837-.636 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.488-1.245-1.409-.45-2.286-.45c-.479 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.233c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.851 0 1.542-.212 2.1-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874 2.33 2.33 0 0 1-1.276.371c-.452 0-.824-.106-1.09-.318m13.848 1.642c.585-.503 1.01-1.192 1.276-2.04v2.49h2.499V8.98h-2.498v4.556q0 .993-.319 1.748c-.319.755-.505.927-.904 1.192a2.23 2.23 0 0 1-1.356.424c-.558 0-.983-.159-1.302-.477-.292-.318-.452-.795-.452-1.404V8.98h-2.499v6.093c0 1.272.292 2.225.904 2.914s1.409 1.033 2.445 1.033c.904 0 1.621-.238 2.206-.742m9.011.45v-4.556q0-.993.319-1.748c.319-.755.505-.927.877-1.192.372-.291.824-.424 1.329-.424.558 0 .983.159 1.302.477.292.318.452.795.452 1.404v6.066h2.525v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.595.265-2.18.742-.558.503-.983 1.192-1.276 2.04v-2.49h-2.498v9.748h2.499zm15.257.212a8 8 0 0 0 .904-.212c.292-.079.532-.186.797-.265l.027-2.358c-.399.212-.824.344-1.276.45a6 6 0 0 1-1.356.159c-.665 0-1.249-.132-1.701-.371a2.24 2.24 0 0 1-1.01-1.033 3.25 3.25 0 0 1-.319-1.457 3.34 3.34 0 0 1 .319-1.457c.213-.424.558-.768 1.01-1.033s1.01-.371 1.648-.371a6 6 0 0 1 1.409.159c.452.106.851.265 1.249.45l-.027-2.437c-.292-.106-.558-.212-.824-.265a4.3 4.3 0 0 0-.904-.159 6.3 6.3 0 0 0-1.037-.079c-1.116 0-2.073.238-2.897.689a4.95 4.95 0 0 0-1.914 1.854c-.452.795-.664 1.669-.664 2.676 0 .98.239 1.881.691 2.649a4.65 4.65 0 0 0 1.914 1.801c.824.424 1.781.662 2.871.662.399.026.771 0 1.09-.053zm6.459-.212v-4.556q0-.993.319-1.748c.319-.755.505-.927.904-1.192a2.15 2.15 0 0 1 1.329-.424c.585 0 1.01.159 1.302.477s.452.795.452 1.404v6.066h2.499v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.621.265-2.18.742-.585.503-1.01 1.192-1.276 2.04V5.272h-2.472v13.457zm14.885 0c1.435 0 2.658-.265 3.668-.821a5.6 5.6 0 0 0 2.313-2.331c.532-1.006.797-2.199.797-3.55s-.266-2.543-.797-3.55-1.302-1.801-2.312-2.358-2.233-.821-3.668-.821H67.86v13.457h5.183zm-2.605-2.278v-8.9h2.578c1.302 0 2.313.397 3.03 1.166.744.795 1.09 1.881 1.09 3.285s-.372 2.517-1.09 3.285c-.744.768-1.754 1.165-3.03 1.165h-2.578zm15.922 1.854a4 4 0 0 0 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.489-1.245-1.409-.45-2.286-.45c-.478 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.18c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.824 0 1.489-.212 2.047-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874c-.372.238-.771.344-1.249.344-.452.027-.824-.079-1.116-.291zm11.031 2.093V14.57c0-1.086.239-1.907.691-2.464s1.09-.848 1.861-.848a3.3 3.3 0 0 1 1.037.159v-2.41c-.159-.053-.319-.079-.478-.106s-.346-.026-.532-.026c-.611 0-1.143.212-1.568.636s-.771 1.033-.983 1.775V8.954h-2.499v9.748h2.472v.026zm7.681 0v-3.152l.904-.848 2.924 4h2.977l-4.173-5.695 4.093-4.053h-3.136l-3.562 3.444V5.272h-2.472v13.457zm10.819 0V5.272h-2.499v13.457zm3.827 3.629c.93 0 1.675-.185 2.259-.556s1.064-1.033 1.462-1.96l4.492-10.861h-2.578l-2.631 6.808-2.712-6.808h-2.578l4.014 9.722-.213.503c-.133.318-.292.583-.531.715-.213.159-.559.238-1.011.238h-2.073v2.199zM144.092 24a.56.56 0 0 1-.478-.291c-.08-.185-.08-.371.053-.53l5.662-7.762-9.915 4.027c-.08.027-.133.053-.212.053a.52.52 0 0 1-.505-.371c-.08-.212.026-.45.212-.583l8.719-5.113-15.337-.874a.525.525 0 0 1-.505-.53.52.52 0 0 1 .505-.53l15.337-.874-8.719-5.113c-.186-.132-.292-.371-.212-.583s.265-.371.505-.371c.079 0 .132.026.212.053l9.915 4.026-5.662-7.788c-.106-.159-.133-.371-.053-.53a.5.5 0 0 1 .478-.291c.133 0 .266.053.372.159l11.271 11.205c.159.159.239.397.239.609s-.08.424-.239.609l-11.271 11.232a.53.53 0 0 1-.372.159z"></path></g><defs><clipPath id="brand-light_svg__a"><path fill="#fff" d="M0 0h156v24H0z"></path></clipPath></defs></svg></a></div><div class="oldstyles-module__hgjkrG__mainNavGroup styles-module__stVVvG__mainNavGroup main-nav-container" id="mainNavigation"><nav aria-label="Main navigation" class="oldstyles-module__hgjkrG__mainNav"><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="platform" data-analytics="nav-platform" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Platform</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
|
||
moreStyles-module__udQsYq__dropdown
|
||
|
||
main-nav-dropdown
|
||
platform
|
||
styles-module__wa_yaW__dropdown
|
||
|
||
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="products-wrapper styles-module__9d2Dpq__linksWrapper"><div><div class="products styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-products-codecontrol" href="/platform/code-control/"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>CodeControl</h6><p>Ship confidently, with automated control built in.</p></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-products-agentcontrol" href="/platform/agent-control/"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>AgentControl</h6><p>One place to keep your agent behavior under control.</p></div></div></a></div></div><div class="styles-module__9d2Dpq__bookDemoCta"><a class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime_outline styles-module__d4f9cW__size_default styles-module__9d2Dpq__bookDemoCtaLink" target="_self" tabindex="0" data-analytics="nav-products-book-a-demo" href="/request-a-demo/"><span class="styles-module__d4f9cW__label">Book a demo</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></a></div></div><div class="overview-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">How it works</p><div class="overview styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-platform-overview" href="/how-it-works/platform/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Platform overview</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-feature-flags" href="/how-it-works/feature-flags/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Feature flags</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-observability" href="/how-it-works/observability/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Observability</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-experimentation" href="/how-it-works/experimentation/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Experimentation</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-agent-integrations" href="/how-it-works/agent-integrations/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Agent integrations</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-integrations" href="/integrations/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Integrations</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-architecture" href="/how-it-works/platform-architecture/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Architecture</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div></div></div></div></div></div></div><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="solutions" data-analytics="nav-solutions" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Solutions</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
|
||
moreStyles-module__udQsYq__dropdown
|
||
|
||
main-nav-dropdown
|
||
solutions
|
||
styles-module__wa_yaW__dropdown
|
||
|
||
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="by-team-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">By Use Case</p><div class="by-team styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-release-ai-built-code" href="/solutions/release-ai-built-code/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Release AI-built code</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-control-ai-agents" href="/solutions/control-ai-agents/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Control AI agents</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-optimize-ai-performance-cost" href="/solutions/optimize-ai-performance/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Optimize AI performance & cost</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-self-heal-systems" href="/solutions/self-heal-systems/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Self-heal systems</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-run-experiments" href="/solutions/run-experiments/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Run experiments</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div><div class="by-industry-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">By Team</p><div class="by-industry styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-ai-engineers" href="/persona/ai-engineers/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>AI engineers</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-developers" href="/persona/development-teams/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Developers</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-devops-sre" href="/persona/devops-site-reliability-engineer-teams/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>DevOps & SRE</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-product-managers" href="/persona/product-managers/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Product managers</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-data-scientists" href="/persona/data-scientists/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Data scientists</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div></div></div></div></div></div></div><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="resources" data-analytics="nav-resources" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Resources</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
|
||
moreStyles-module__udQsYq__dropdown
|
||
|
||
main-nav-dropdown
|
||
resources
|
||
styles-module__wa_yaW__dropdown
|
||
|
||
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="learn-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Learn</p><div class="learn styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-learn-blog" href="/blog/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Blog</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-learn-guides-ebooks" href="/guides/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Guides & ebooks</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-learn-events-webinars" href="/events-webinars/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Events & webinars</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a href="https://www.youtube.com/@LaunchDarkly" class="styles-module__9d2Dpq__link " target="_blank" tabindex="0" data-analytics="nav-learn-videos" rel="nofollow noreferrer"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Videos</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div><div class="success-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Success</p><div class="success styles-module__9d2Dpq__linksContainer"><!--$?--><template id="B:0"></template><a href="https://academy.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-academy"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Academy</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-customer-stories" href="/customer-stories/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Customer stories</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-professional-services" href="/services/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Professional services</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-partners" href="/partner-program/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Partners</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div><div class="get-help-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Get Help</p><div class="get-help styles-module__9d2Dpq__linksContainer"><!--$?--><template id="B:1"></template><a href="https://support.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-help-center"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Help Center</h6><p>Explore help topics for everything LaunchDarkly.</p></div></div></a><!--/$--><!--$?--><template id="B:2"></template><a href="https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-request-support"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Request support</h6><p>Reach out to us for direct answers to your questions.</p></div></div></a><!--/$--></div></div></div></div></div></div></div></div></div><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="developers" data-analytics="nav-developers" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Developers</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
|
||
moreStyles-module__udQsYq__dropdown
|
||
|
||
main-nav-dropdown
|
||
developers
|
||
styles-module__wa_yaW__dropdown
|
||
|
||
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="resources-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Docs</p><div class="resources styles-module__9d2Dpq__linksContainer"><!--$?--><template id="B:3"></template><a href="https://launchdarkly.com/docs/home" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-docs-home"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Docs home</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><!--$?--><template id="B:4"></template><a href="https://launchdarkly.com/docs/home/getting-started" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-feature-flags-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Feature flags Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><!--$?--><template id="B:5"></template><a href="https://launchdarkly.com/docs/home/agentcontrol/quickstart" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-agentcontrol-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>AgentControl Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><!--$?--><template id="B:6"></template><a href="https://launchdarkly.com/docs/api/" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-api-docs"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>API docs</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--></div></div></div><div class="workflow-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Resources</p><div class="workflow styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-product-updates" href="/changelog/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Product Updates</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-power-analysis-calculator" href="/sample-size-calculator/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Power analysis calculator</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--$?--><template id="B:7"></template><a href="https://launchdarkly.com/docs/blog" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-flagship-engineering-blog"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Flagship engineering blog</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-community" href="/community/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Community</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div></div><div id="developers-dropdown-cta" class="styles-module__SAuuzq__ctaWrapper"><!--$?--><template id="B:8"></template><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__SAuuzq__ctaInner js-primary-button-hover-parent" target="_self" tabindex="0" data-analytics="nav-developers-free-trial"><div class="styles-module__SAuuzq__ctaIconContainer"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover"><img alt="" loading="lazy" width="72" height="72" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&w=96&q=75 1x, /_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&w=256&q=75 2x" src="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&w=256&q=75"/></div></div><div class="styles-module__SAuuzq__ctaTextContainer"><p class="styles-module__SAuuzq__ctaTitle">Take control of your code and agents at runtime.</p><p>Control releases, experiments, and AI behavior in prod.</p></div><div class="styles-module__SAuuzq__ctaButton"><span class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default"><span class="styles-module__d4f9cW__label">Free trial</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></span></div></a><!--/$--></div></div></div></div></div></div><div class="styles-module__stVVvG__pricingWrapper"><div><a class="styles-module__stVVvG__pricingLink styles-module__stVVvG__mobilePricingLink" target="_self" tabindex="0" data-analytics="nav-pricing" href="/pricing/"><span>Pricing</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a></div></div><div class="styles-module__stVVvG__pricingWrapper"><div><!--$?--><template id="B:9"></template><a href="https://app.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__stVVvG__pricingLink styles-module__stVVvG__mobileSignInLink" target="_self" tabindex="0" data-analytics="nav-mobile-sign-in"><span>Sign in</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a><!--/$--></div></div><div class="styles-module__stVVvG__mobileBookDemoWrapper"><div><a class="styles-module__stVVvG__mobileBookDemoLink" target="_self" tabindex="0" data-analytics="nav-mobile-book-a-demo" href="/request-a-demo/"><span>Book a demo</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a></div></div></nav></div></div><div class="oldstyles-module__hgjkrG__mainNavExtra main-nav-extra styles-module__stVVvG__demoRequestButton "><div class="oldstyles-module__hgjkrG__signIn styles-module__stVVvG__signIn"><a class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default oldstyles-module__hgjkrG__requestDemoButton styles-module__stVVvG__requestDemoButton" target="_self" tabindex="0" data-analytics="nav-book-a-demo" href="/request-a-demo/"><span class="styles-module__d4f9cW__label">Book a demo</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></a></div></div></nav></header><div class="styles-module__stVVvG__mainNavOverlay main-nav-overlay"></div><div class="styles-module__ZkjjmG__body styles-module__ZkjjmG__isRefreshDesign"><main class="styles-module__ZkjjmG__main "><section class="styles-module__NFwUga__newSection styles-module__NFwUga__bgLight"><div class="styles-module__NFwUga__contentContainer "><div class="styles-module__xmAU9a__headerBreadcrumbSearchBar styles-module__xmAU9a__noTopPadding"><div class="styles-module__xmAU9a__container"><div class="styles-module__xmAU9a__breadcrumbs"><a target="_self" tabindex="0" href="/blog/">Blog</a><img class="styles-module__xmAU9a__breadcrumbArrow" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5UufJbqstJ992SK_right-arrow-padded.svg" alt="Right arrow" loading="lazy"/><a target="_self" tabindex="0" href="/blog/category/devops/">DevOps</a><div class="styles-module__xmAU9a__thirdBreadcrumb"><img class="styles-module__xmAU9a__breadcrumbArrow" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5UufJbqstJ992SK_right-arrow-padded.svg" alt="Right arrow" loading="lazy"/><span class="styles-module__xmAU9a__titleBreadcrumb">The Time Our Provider Screwed Us</span></div></div><div class="styles-module__xmAU9a__barWrapper"><div class="styles-module__xmAU9a__barContainer"><div class="styles-module__xmAU9a__searchBarContainer "><div class="styles-module__xmAU9a__searchBar "><input type="text" placeholder="Search blog" aria-label="Search" value=""/><div class="styles-module__xmAU9a__backspaceIcon styles-module__xmAU9a__hidden"><button type="button" aria-label="Clear search" class="styles-module__xmAU9a__disabled" style="all:unset;cursor:pointer"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5WVkpbqstJ992cY_backspace-icon-blue.svg" alt="" loading="lazy"/></button></div><div class="styles-module__xmAU9a__icon"><img class="styles-module__xmAU9a__search" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5V7fZbqstJ992aX_search-icon-blue.svg" alt="Search icon" loading="lazy"/><img class="styles-module__xmAU9a__close" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5WFMpbqstJ992ai_close-icon.svg" alt="Close icon" loading="lazy"/></div></div></div></div></div></div></div><div class="styles-module__HXqOTa__blogContainer"><div class="styles-module__HXqOTa__header"><div class="styles-module__HXqOTa__content"><p class="styles-module__J0n02W__variant_textXsmallCaps styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_medium">Nov 13, 2018</p><h1 class="styles-module__J0n02W__variant_h3 styles-module__J0n02W__weight_semibold styles-module__HXqOTa__blogTitle">The Time Our Provider Screwed Us</h1><div class="styles-module__HXqOTa__authorContainer"><div class="styles-module__5zAopa__author "><a class="styles-module__5zAopa__authorImage" target="_self" tabindex="0" href="/blog/author/kimh/"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image post-details-author-image"><img alt="Kim Harrison" loading="lazy" width="2000" height="2000" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/4e587f76-fe2b-4228-bfcf-8d4f2208836f_kimHarrison.jpeg?auto=compress%2Cformat&rect=0%2C0%2C96%2C96&w=2048&fit=max&q=80 1x, https://images.prismic.io/launchdarkly/4e587f76-fe2b-4228-bfcf-8d4f2208836f_kimHarrison.jpeg?auto=compress%2Cformat&rect=0%2C0%2C96%2C96&w=3840&fit=max&q=80 2x" src="https://images.prismic.io/launchdarkly/4e587f76-fe2b-4228-bfcf-8d4f2208836f_kimHarrison.jpeg?auto=compress%2Cformat&rect=0%2C0%2C96%2C96&w=3840&fit=max&q=80"/></div></a><div class="styles-module__5zAopa__authorDetails"><a class="styles-module__5zAopa__authorName" target="_self" tabindex="0" href="/blog/author/kimh/">Kim Harrison</a><div class="styles-module__5zAopa__authorJobTitle">LaunchDarkly</div></div></div></div></div><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image styles-module__HXqOTa__featuredImage"><img alt="The Time Our Provider Screwed Us" loading="eager" width="2000" height="1060" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress%2Cformat&rect=0%2C0%2C1113%2C590&w=2048&fit=max&q=80 1x, https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress%2Cformat&rect=0%2C0%2C1113%2C590&w=3840&fit=max&q=80 2x" src="https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress%2Cformat&rect=0%2C0%2C1113%2C590&w=3840&fit=max&q=80"/></div></div><div class="styles-module__HXqOTa__staticBar"><div id="blog-progress-bar" class="styles-module__lQ92Cq__container"><div class="styles-module__lQ92Cq__progress" style="width:0%"></div></div></div><div class="styles-module__HXqOTa__blogMainContainer"><div class="styles-module__HXqOTa__body"><div class="styles-module__HXqOTa__blogContentWrapper"><article class="blog-post-main-content"><div data-ld-slice-index="0" data-ld-slice-type="wysiwyg"><div class="wysiwyg styles-module__yVDX7W__wysiwyg "><section class="style-module__REJINa__section style-module__REJINa__spacing_bottom_xl style-module__REJINa__spacing_top_xl section"><div class="wysiwyg-content"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">In October we cohosted a special Test in Production session with <a href="http://honeycomb.io/" target="_blank" tabindex="0" rel="nofollow noreferrer">Honeycomb.io</a>. Since our monthly session fell one night before Halloween, we decided to invite speakers to share their scariest stories of operational outages and other horrors. Though stories of epic failure can be hard to hear, they are invaluable learning experiences.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Paul Biggar, CTO and Co-founder of <a href="http://darklang.com" target="_blank" tabindex="0" rel="nofollow noreferrer">Dark</a>, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. As a result of Adobe getting hacked, Mongo HQ was compromised, and as a customer, CircleCI was also affected. At one point the team decided they had to completely shut down their service, and no one had any idea how that would turn out.</p></div></section></div></div><div data-ld-slice-index="1" data-ld-slice-type="simple_quote"><section class="style-module__REJINa__section style-module__REJINa__spacing_bottom_none style-module__REJINa__spacing_top_none styles-module__6nQgMq__simpleQuote"><figure class="styles-module__n0QSmq__quoteFigure"><svg class="styles-module__n0QSmq__badge" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72" fill="none" aria-hidden="true"><rect width="72" height="72" rx="8" fill="currentColor"></rect><path d="M60 33V39.2124H58.099C56.5677 39.2124 55.3531 39.4513 54.4554 39.9292C53.5578 40.4071 52.8977 41.2301 52.4752 42.3982C52.0528 43.5133 51.8416 45.0266 51.8416 46.9381V52.8319L49.5446 48.3717C49.9142 48.1062 50.4422 47.8938 51.1287 47.7345C51.8152 47.5221 52.5281 47.4159 53.2673 47.4159C55.0099 47.4159 56.462 47.9735 57.6238 49.0885C58.7855 50.1504 59.3663 51.6372 59.3663 53.5487C59.3663 55.354 58.8119 56.8938 57.703 58.1681C56.5941 59.3894 55.0099 60 52.9505 60C51.6304 60 50.3894 59.708 49.2277 59.1239C48.1188 58.4867 47.2211 57.4248 46.5347 55.9381C45.8482 54.3982 45.5049 52.3009 45.5049 49.646V48.292C45.5049 44.5221 46.0066 41.5221 47.0099 39.292C48.066 37.0619 49.571 35.469 51.5248 34.5133C53.4785 33.5044 55.8548 33 58.6535 33H60ZM42.495 33V39.2124H40.5941C39.0627 39.2124 37.8482 39.4513 36.9505 39.9292C36.0528 40.4071 35.3927 41.2301 34.9703 42.3982C34.5479 43.5133 34.3366 45.0266 34.3366 46.9381V52.8319L32.0396 48.3717C32.4092 48.1062 32.9373 47.8938 33.6238 47.7345C34.3102 47.5221 35.0231 47.4159 35.7624 47.4159C37.505 47.4159 38.9571 47.9735 40.1188 49.0885C41.2805 50.1504 41.8614 51.6372 41.8614 53.5487C41.8614 55.354 41.3069 56.8938 40.198 58.1681C39.0891 59.3894 37.505 60 35.4455 60C34.1254 60 32.8845 59.708 31.7228 59.1239C30.6139 58.4867 29.7162 57.4248 29.0297 55.9381C28.3432 54.3982 28 52.3009 28 49.646V48.292C28 44.5221 28.5017 41.5221 29.505 39.292C30.5611 37.0619 32.066 35.469 34.0198 34.5133C35.9736 33.5044 38.3498 33 41.1485 33H42.495Z" fill="#F8F8F8"></path></svg><div class="styles-module__n0QSmq__body"><blockquote class="styles-module__n0QSmq__content styles-module__n0QSmq__injectQuotes"><div><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So it started with a missing IAM key. Now an IAM key is an AWS identity and access management key. And those aren't things you lose. You don't leave them in your door; they're not physical keys, and so that fact that one of our AWS keys is missing is perhaps a cause for alarm.</p></div></blockquote><figcaption class="styles-module__n0QSmq__attribution">Paul Biggar, CTO and Co-founder of Dark</figcaption></div></figure></section></div><div data-ld-slice-index="2" data-ld-slice-type="wysiwyg"><div class="wysiwyg styles-module__yVDX7W__wysiwyg "><section class="style-module__REJINa__section style-module__REJINa__spacing_bottom_xl style-module__REJINa__spacing_top_xl section"><div class="wysiwyg-content"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Watch the video below to hear how Paul's team handled this event. Learn how they got through the incident with sage advice around transparency from the “Master of Disaster”, Jesse Robbins. If you're interested in joining us at a future Meetup, you can <a href="https://www.meetup.com/Test-in-Production/" target="_blank" tabindex="0" rel="nofollow noreferrer">sign up here</a>.</p></div></section></div></div><div data-ld-slice-index="3" data-ld-slice-type="youtube_video"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><div data-ld-slice-index="4" data-ld-slice-type="wysiwyg"><div class="wysiwyg styles-module__yVDX7W__wysiwyg "><section class="style-module__REJINa__section style-module__REJINa__spacing_bottom_xl style-module__REJINa__spacing_top_xl section"><div class="wysiwyg-content"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">TRANSCRIPT</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Paul Biggar: So it started with a missing IAM key. Now an IAM key is an AWS identity and access management key. And those aren't things you lose. You don't leave them in your door; they're not physical keys, and so that fact that one of our AWS keys is missing is perhaps a cause for alarm.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Let me back up a little bit and tell you a little bit about context here. My name's Paul Biggar, I'm the CTO of a company called Dark. Dark, <a href="http://darklang.com/" target="_blank" tabindex="0" rel="nofollow noreferrer">darklang.com</a>, makes it easier to code. Our goal is making it a 100 times easier to code. We are a programming language, an editor, and an infrastructure that attempts to take all of the accidental complexity from coding. But the "we" in this story is CircleCI. I was the CEO and founder of CircleCI, and five years ago when this happened, I was in charge. I should point out that current CEO of CircleCI would like me to point that I do not work there, I do not speak for CircleCI, and I'm not a company representative. Bear that in mind.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Five years ago, I'm in this building. CircleCI is a Heavybit company. We were two floors up ... when we had the almost company-ending event, the scary event of our first major, and our biggest, security incident. And it all started with a missing IAM key. We looked for all the places the IAM key could have gone. There was no scripts running, there's ... No one got drunk and went to the dashboard and deleted it, so we treated this, as you might ... This is a fully-fledged security incident. This is a scary moment. So we took every single key that we had, every single vendor that we used, and we recycled them. Our standard security policy. And it takes about 24 hours to do that; there's a lot of keys. And we're looking for how could this have gone wrong?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Coincidentally, we got an email from our hosted database provider, Mongo HQ, saying, "Oh, we've had a security incident. But don't worry, you weren't affected." It's Tuesday at two p.m. We've been looking since Monday, and we think that maybe there's a bit of a coincidence here, that we got this email. And so we got on the phone with them, and this is five years ago, I don't remember all the details, so I'm filling in the narrative a bit. So let's say we got on the phone with them, and they told us that, "Oh, actually you were affected, and your database was accessed by the attackers two days ago."</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">It's been two days, and we saw some other blogs that came out, people reporting their security incidents; Buffer was affected, Intercom was affected, and we have a lot of important data in our database, as do you all. We had user accounts with things like build logs and notifications and things that aren't that important. CircleCI makes continuous integration, and continuous delivery. We run your builds, so we have all the things that we need to run your builds such as the important keys to run your deploys. We have Heroku, access keys and SSH keys for all of our customers. We had 1,000 customers at this point. We have access tokens, and SSH keys for GitHub, so access to all of your repositories. And things like AWS and Stripe, and other keys that you might just have as part of your build.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So the amount of data we have is terrifying, the amount of the access we have. And what's really one of the scariest things about this for me, is things that were leveraged to get here. So Mongo HQ got compromised, and so we got compromised. But Mongo HQ got compromised because Adobe got compromised. An executive from Mongo HQ was using the same password that was in the Adobe password breach. If there's one lesson from this, is to go home and make sure that you're not using the same password for any one of your work accounts as any other account at all, and make sure that everyone else in your company is also not doing that.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But Adobe got hacked, so Mongo HQ got hacked, so Circle got hacked, and then what's next? So we're terrified of this. We have very important customers; we're ... One example that's publicly known is that Stripe was our customer at the time. That's a lot of payment stuff that goes beyond that. So we made a pretty quick decision. That's five p.m. we got off the phone, and we just turned everything off. We turned off every one of our machines, we turned off our builds ... I don't even remember if we let the running builds finish, I think we just turned every machine off.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And that was possibly a company-ending move, possibly a career-ending move. I had no idea at the time how this was going to turn out. So we turned it off. Now, we know we need to tell customers, we know we need to bring it back up, we know we need to do a security review, make sure everything's okay. This isn't exactly our first rodeo, but it's one of our first rodeos, and this is a bigger rodeo than any of us had ever been in for. We didn't really know how to deal with it.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And in probably the largest bit of luck I'd ever had in my entire life, there was a guy in this building, in Heavybit at the time, he's one of the Heavybit partners, he's a guy called Jesse Robbins. And Jesse Robbins is the CEO of Orion. He was previously the CEO of Chef, and before that he had the title ... I'm not sure if it's an actual title or just a nickname, but it was Master of Disaster at a company you might have heard of called <a href="http://amazon.com/" target="_blank" tabindex="0" rel="nofollow noreferrer">Amazon.com</a>. And he had sat through and been in charge of and all that sort of thing, 35 separate security incidents. This was literally the most qualified human being on the planet to help us solve our problem.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So we got very lucky, and here's what Jesse told us to do. This is ... He literally went on the white board ... I'm not expecting you to read this; I'm going to tell you what it says ... And he told us what to do, so on the right, we see a circle. That is a clock face. And every 15 minutes, I'm to check in with the team and see what the team has discovered. And every 30 minutes, at zero past the hour and at 30 past the hour, we are to update customers. Great, I know what to do.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">On the left, Jesse pointed out that we needed an incident commander. That's me, Paul. And this is very good, because I was a big proponent, I think lots of were around the 2013 mark, of flat organizational structures, and so I hadn't really got a handle of this whole being in charge thing. The fact that someone else came in and said, "No, no, no, you are in charge": extremely useful. And he also laid out the order of our priorities. Number one priority; safety of customers. Number two priority: communicate with customers. Number three priority: recovery of service.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">I think a reasonable person could have put those in a different order, especially under the pressure and time constraints of the potential company-ending situation. So I was very happy to have those in order. If this is ever going to happen to you, I'd memorize them, maybe put it on an index card in your pocket, in case this ever happens.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The last thing he said is to make sure that we log everything, that we go slow, and that we code review and communicate. His point there is that if we're going to bring our site back up, if we're going to do all the things that we need to do in order to save our business and do the right thing for our customers and all that, we can't be making quick, bad decisions. You can't just upload whatever code is on your computer now, because I have to do this now, I have to fix it. So we set up a Slack channel ... This was pre-Slack; it was a HipChat channel, where all of our communications went. Every single communication that we had about this went in that chatroom. Which came in extremely useful the next day, when I had to write a blog post that detailed exactly what had happened and all the steps that we did to fix it and remediate this, and I had an exact time stamps of all the things that had happened.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So one of the things that we had to do, was we had of these customer keys. What are we going to do with all these AWS keys, the GitHub keys, the Heroku keys? What we did, was we contacted those companies, we contacted GitHub, and we said, "GitHub, we have a security incident, an active, ongoing security incident, and all of these keys are potentially compromised." And there's a fairly obvious thing that we wanted to do here, which is delete all the keys. But they're not our keys. They're our customers' keys, and we don't know if they're using them for other stuff. They shouldn't be using them for other stuff, but people are people. So they're probably using them for other stuff. We don't really have any moral authority to delete all the keys, but it's definitely the right thing for our customers that these keys be deleted.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Fortunately, GitHub and Heroku and AWS and so on took this off of our hands. We sent them the keys, and they deleted them. Takes an hour or two delete all those keys. We were a couple of hours in, and we had most of the security things dealt with, we'd cycled all of our own keys, we'd checked our own things for intrusion logs, and then of course it's time to start the system back up. All the meanwhile, basically what I'm doing the whole time is emailing customers who have emailed me and replying to customers and tweeting things, and generally giving people an update throughout the night.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But it's night at the moment, this happened literally five years ago tonight, and it's the middle of the night, and most of our customers don't really work in the middle of the night. Most of our customers were in San Francisco or in this time zone at least. We had some European customers who were starting to complain, but we're a couple of hours from the bulk of our people coming back up, and we have not turned on the system in two years. We had turned the whole system on two years ago, and then we turned it all off, and I don't know. We spun it up, and we spun it down, and we scaled it, but we had not restarted it ever. I don't know how they did that. Sorry. But it happened.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Came back up, and the next day we wrote a very transparent blog post. The whole time, we were as transparent as possible. Our customers are developers. Developers like transparency. And we talked to a couple of PR people who dealt with incident response and that sort of thing, and they had advised us to be vague and to avoid legal liability, and all that sort of thing. We decided not to do that; we decided to lay out everything, exact time stamps for when something happened, just do our best, and be as transparent as humanly possible with our customers.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The outcome was we lost almost no customers. We lost two large customers, we lost ,000 in MRR, which was less than one percent of what we were making ... On the other hand, Mongo HQ, which had not told us the right things, and not told their other customers the right things, lost I'm told ... I don't know this from an official source, but I heard they lost half their revenue. So the distinction between the ... doing transparency well, and doing transparency badly.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The other thing that happened is of course companies fundraise, and they raise money from people, and they have investors. And we were two months from fundraising, and this large stain on our blog, where we posted the incident, was a pretty scary thing. And even though we got through the incident without much loss, there still could have been two months from having to shut the company down because we were out of cash. But fortunately, the investors talked to all the customers ... not all of them, but they talked to customers. And they looked at our blog, and they looked at our fairly professional response to the whole thing, and they decided to give us a lot of money to keep the thing going.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So that's the scary story of Halloween five years ago, at the time we nearly lost our entire company. And it all started with a missing IAM key. Thank you.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yes, our hosted database provider, which we did not have access to, told us that it was fixed. It's not the favorite way that we would certify to ourselves that we were no longer compromised, but we did not have much choice in the matter.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yes, definitely. So one of them, and I talked about this in the write-up, and it came up at the time, and I had it in the speech but I somehow forgot to get through it, is that we were not storing all those keys encrypted at rest. So we should have had all of them ... It would have to be symmetrically encrypted, but if you accessed our database, you should not have been able to access those things, and that was a big mistake that we made at the time, and we were too old to be making that mistake. I think we were two years old at the time, and that was maybe a year and a half too long to really have that problem, and possibly even longer than that.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The first thing is we went through this, and we learned how it's supposed to be done, and that's extremely valuable. So the thing I'm going to do if this happens again, is I'm going to do the exact script that we did before. I think one thing as well, is that there's now more information about how this is done. There's a book, there's the SRE book, for example, that goes into detail about incident response and that kind of thing, so there's that sort of thing, but there's ... I think basically, the one takeaway that I have for this that's going to affect everything that I do in the future, is making sure that we have utmost transparency, and also to encrypt our keys at rest.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Thank you.</p></div></section></div></div><div class="styles-module__HXqOTa__mobileCta"><h5 class="styles-module__HXqOTa__footerTitle">Like what you read?</h5></div></article></div></div><section class="styles-module__o_kpTq__sidebar"><div class="styles-module__o_kpTq__sidebarNewsletter"><div class="styles-module__yaWGhq__sidebarVersion undefined styles-module__yaWGhq__blogNewsletter "><div class="styles-module__yaWGhq__blogNewsletterSection"><div class="styles-module__yaWGhq__textContent"><img class="styles-module__yaWGhq__newsletterIcon" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aimOzgeQX7-eXLr4_icon-bw--notification.svg" alt="Notification icon" loading="lazy"/><h5 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__weight_medium">Sign up for our newsletter</h5></div><div class="styles-module__yaWGhq__customForm" id="customNewsletterForm"><div class="styles-module__yaWGhq__formElements" id="customNewsletterFormElements"><input id="customNewsletterEmail" type="email" placeholder="Email address" aria-label="Email address" name="email" value=""/><button class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_dark styles-module__d4f9cW__size_default styles-module__yaWGhq__subscribeButton" type="button"><span class="styles-module__d4f9cW__label">Subscribe</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></button><div class="styles-module__WD-Msa__tos sidebar-version-form-tos styles-module__yaWGhq__formTos styles-module__yaWGhq__sidebarVersionFormTos"><p>By supplying my contact information, I authorize LaunchDarkly to contact me with personalized marketing communications about our products and services. See our<!-- --> <a href="https://launchdarkly.com/policies/privacy/">Privacy Policy</a> for more details, or<!-- --> <a href="https://go.launchdarkly.com/UnsubscribePage.html">Opt-Out</a> at any time.</p></div></div><div class="styles-module__yaWGhq__successMessage" id="customNewsletterSuccessMessage"></div></div></div></div></div><div class="styles-module__o_kpTq__shareLinks"><div class="styles-module__o_kpTq__shareContainer"><div class="styles-module__0R691q__showIcons"><div class="styles-module__0R691q__links"><a class="styles-module__0R691q__link" href="https://twitter.com/intent/tweet?url=https://launchdarkly.com/blog/the-time-our-provider-screwed-us/&text=The Time Our Provider Screwed Us" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/6f9be1a5-6395-4b01-8719-ad43eea49d74_x-icon.svg" alt="Twitter" loading="lazy"/></div></a><a class="styles-module__0R691q__link" href="https://www.facebook.com/sharer/sharer.php?u=https://launchdarkly.com/blog/the-time-our-provider-screwed-us/" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4f60d7a-48fa-40d5-a192-20fdd835ed40_Facebook.svg" alt="Facebook" loading="lazy"/></div></a><a class="styles-module__0R691q__link" href="https://www.linkedin.com/shareArticle?mini=true&url=https://launchdarkly.com/blog/the-time-our-provider-screwed-us/&title=The Time Our Provider Screwed Us" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/45da01c6-71bd-4533-ae9c-6976ebbc9506_Component+4.svg" alt="LinkedIn" loading="lazy"/></div></a><a class="styles-module__0R691q__link" href="#" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b9eae970-9f92-463c-983e-b44918749711_Link.svg" alt="Copy Link" loading="lazy"/></div><div class="styles-module__0R691q__linkClicked ">URL Copied!</div></a></div></div></div></div></section></div><div class="styles-module__HXqOTa__relatedContent"><div class="styles-module__z7oeYG__overflowCardCarousel styles-module__z7oeYG__darkTheme styles-module__z7oeYG__noFlexOnSplide "><div class="styles-module__z7oeYG__header"><div class="styles-module__z7oeYG__titleWithLink"><h3 class="styles-module__J0n02W__variant_h3 styles-module__J0n02W__weight_semibold">Related Content</h3><a class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_outline styles-module__d4f9cW__size_default" target="_self" tabindex="0" href="/blog/category/devops/"><span class="styles-module__d4f9cW__label">See all posts on devops</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></a></div><div class="styles-module__z7oeYG__arrows"><div class="styles-module__z7oeYG__prev styles-module__z7oeYG__disabled"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="styles-module__z7oeYG__next "><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__z7oeYG__carouselContainer"><div class="styles-module__z7oeYG__spillContainer"><div class="splide"><div class="splide__track"><ul class="splide__list"><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/spring-2025-customer-census/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Spring 2025 LaunchDarkly customer census" loading="lazy" width="3000" height="1689" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format%2Ccompress&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format%2Ccompress&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Research Report</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/spring-2025-customer-census/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Transforming software development: Key findings from our Spring 2025 Customer Census</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/spam-mitigation-launchdarkly-twilio-verify-expressjs/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="" loading="lazy" width="3000" height="1689" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format%2Ccompress&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format%2Ccompress&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">De risked releases</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/spam-mitigation-launchdarkly-twilio-verify-expressjs/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Mitigating signup spam spikes with LaunchDarkly and Twilio Verify in an ExpressJS app</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/2024-survey-impact-launchdarkly-customer-outcomes/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="New Survey 2024: Impact of LaunchDarkly on Customer Outcomes featured blog post image" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format%2Ccompress&rect=0%2C0%2C4001%2C2315&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format%2Ccompress&rect=0%2C0%2C4001%2C2315&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Research Report</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/2024-survey-impact-launchdarkly-customer-outcomes/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">2024 Survey: Impact of LaunchDarkly on Customer Outcomes</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/2024-survey-impact-of-feature-management/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Featured-image-charts-purple-hues-Impact-of-Feature-Management-on-Business-and-Engineering-Performance" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format%2Ccompress&rect=0%2C0%2C4001%2C2315&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format%2Ccompress&rect=0%2C0%2C4001%2C2315&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Research Report</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/2024-survey-impact-of-feature-management/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">The Impact of Feature Management on Software Engineering and Business Performance</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/cicd-best-practices-devops/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Light green infinity loop CI/CD best practices blog post image" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format%2Ccompress&rect=1%2C0%2C3999%2C2314&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format%2Ccompress&rect=1%2C0%2C3999%2C2314&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Developer productivity</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/cicd-best-practices-devops/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Ultimate Guide to CI/CD Best Practices to Streamline DevOps</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/what-is-software-deployment/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="What is a software deployment? Featured blog post image - code snippets, colorful UI" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress%2Cformat&rect=0%2C0%2C3999%2C2314&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress%2Cformat&rect=0%2C0%2C3999%2C2314&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">De risked releases</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/what-is-software-deployment/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">What Are Software Deployments? Methodology + Best Practices</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/modern-devops-operating-continuously/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Modern-DevOps-the-Shift-to-Operating-Continuously-featured image" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress%2Cformat&rect=0%2C0%2C3999%2C2314&w=3840&fit=max&q=80 1x" src="https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress%2Cformat&rect=0%2C0%2C3999%2C2314&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">DevOps</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/modern-devops-operating-continuously/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Modern DevOps: The Shift to Operating Continuously</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/galaxy-2023-product-release/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Galaxy Product LaunchDarkly 2023" loading="lazy" width="2000" height="1157" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress%2Cformat&rect=0%2C0%2C2000%2C1157&w=2048&fit=max&q=80 1x, https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress%2Cformat&rect=0%2C0%2C2000%2C1157&w=3840&fit=max&q=80 2x" src="https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress%2Cformat&rect=0%2C0%2C2000%2C1157&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Product Updates</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/galaxy-2023-product-release/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Galaxy ‘23 Product Release</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/5-tools-for-deployment-automation/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="" loading="lazy" width="2000" height="1126" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress%2Cformat&rect=0%2C0%2C4000%2C2252&w=2048&fit=max&q=80 1x, https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress%2Cformat&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80 2x" src="https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress%2Cformat&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Industry Insights</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/5-tools-for-deployment-automation/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">5 Tools for Deployment Automation</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/enabling-digital-transformation-through-devops/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="" loading="lazy" width="2000" height="1126" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress%2Cformat&rect=0%2C0%2C4000%2C2252&w=2048&fit=max&q=80 1x, https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress%2Cformat&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80 2x" src="https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress%2Cformat&rect=0%2C0%2C4000%2C2252&w=3840&fit=max&q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Best Practices</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/enabling-digital-transformation-through-devops/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Enabling Digital Transformation Through DevOps</span></a></div></div></li></ul></div></div></div></div></div></div></div><div class="styles-module__HXqOTa__newsletterContainer"><div class=" undefined styles-module__yaWGhq__blogNewsletter styles-module__yaWGhq__horizontalVersion"><div class="styles-module__yaWGhq__blogNewsletterSection"><div class="styles-module__yaWGhq__textContent"><img class="styles-module__yaWGhq__newsletterIconHorizontal" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aimnSAeQX7-eXL6I_icon--blog-letter-in-envelop.svg" alt="Letter in envelope icon" loading="lazy"/><h5 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__weight_medium">Sign up for our newsletter</h5><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__weight_regular styles-module__yaWGhq__description">Get all the content, tips, and news you can use.</p><div class="styles-module__WD-Msa__tos full-width-version-form-tos styles-module__yaWGhq__formTos styles-module__yaWGhq__fullWidthVersion"><p>By supplying my contact information, I authorize LaunchDarkly to contact me with personalized marketing communications about our products and services. See our<!-- --> <a href="https://launchdarkly.com/policies/privacy/">Privacy Policy</a> for more details, or<!-- --> <a href="https://go.launchdarkly.com/UnsubscribePage.html">Opt-Out</a> at any time.</p></div></div><div class="styles-module__yaWGhq__customForm" id="customNewsletterForm"><div class="styles-module__yaWGhq__formElements" id="customNewsletterFormElements"><input id="customNewsletterEmail" type="email" placeholder="Email address" aria-label="Email address" name="email" value=""/><button class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_dark styles-module__d4f9cW__size_default styles-module__yaWGhq__subscribeButton" type="button"><span class="styles-module__d4f9cW__label">Subscribe</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></button></div><div class="styles-module__yaWGhq__successMessage" id="customNewsletterSuccessMessage"></div></div></div></div></div><div class="styles-module__HXqOTa__g2BannerContainer"><a class="styles-module__MISuva__blogG2Banner" target="_self" tabindex="0" href="/g2-review/"><div class="styles-module__MISuva__blogG2BannerInner"><div><img class="styles-module__MISuva__blogG2BannerImage" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ainJTAeQX7-eXMEO_icon-bw--growing-up-arrow.svg" alt="Climbing up arrow" loading="lazy"/></div><div class="styles-module__MISuva__blogG2BannerContent"><h4 class="styles-module__J0n02W__variant_h4 styles-module__J0n02W__color_white styles-module__J0n02W__weight_medium">LaunchDarkly Tops G2 Grid for Feature Management</h4></div><div class="styles-module__MISuva__blogG2BannerButton"><button class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default" type="button"><span class="styles-module__d4f9cW__label">Learn more</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></button></div></div></a></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","@id":"https://launchdarkly.com/the-time-our-provider-screwed-us/#article","about":[{"@type":"Thing","name":"The Time Our Provider Screwed Us"}],"author":[{"@type":"Person","name":"Kim Harrison","url":"https://launchdarkly.com/blog/author/kimh/"}],"datePublished":"2020-11-30T05:57:45.000Z","dateModified":"2021-01-29T03:37:36.000Z","headline":"The Time Our Provider Screwed Us","description":"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. ","image":{"@type":"ImageObject","url":"https://launchdarkly.com/open-graph.jpg"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://launchdarkly.com/the-time-our-provider-screwed-us/#webpage"},"publisher":{"@id":"https://launchdarkly.com/#organization"}}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://launchdarkly.com/#organization","name":"LaunchDarkly","legalName":"LaunchDarkly","description":"LaunchDarkly helps teams safely manage code and AI agents in production with feature flags, progressive delivery, automated rollback, and runtime control.","url":"https://launchdarkly.com/","logo":{"@type":"ImageObject","url":"https://launchdarkly.com/schema-icon.png","width":"512","height":"512"},"sameAs":["https://twitter.com/LaunchDarkly","https://www.linkedin.com/company/launchdarkly","https://github.com/launchdarkly"]}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","description":"Breadcrumbs list","name":"Breadcrumbs","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://launchdarkly.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://launchdarkly.com/blog"},{"@type":"ListItem","position":3,"name":"The Time Our Provider Screwed Us","item":"https://launchdarkly.com/the-time-our-provider-screwed-us/"}]}</script></div></section><section class="styles-module__NFwUga__newSection styles-module__5aVuCq__resources undefined" data-name="Resources"><div class="styles-module__NFwUga__contentContainer "><header class="styles-module__5aVuCq__header"><h3 class="styles-module__J0n02W__variant_h3 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_semibold styles-module__5aVuCq__heading">Resources to get started.</h3></header><ul class="styles-module__5aVuCq__cards"><div class="styles-module__5aVuCq__card undefined"><a class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-check-out-the-blog-" href="/blog/"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Check out the blog.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Blog</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Read about LaunchDarkly news, product updates, and more.</p></div></a></div><div class="styles-module__5aVuCq__card undefined"><!--$?--><template id="B:a"></template><a href="https://launchdarkly.com/docs/home" class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-explore-our-docs-"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Explore our docs.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Docs</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Learn best practices for getting started with LaunchDarkly.</p></div></a><!--/$--></div><div class="styles-module__5aVuCq__card undefined"><a href="https://www.youtube.com/@LaunchDarkly" class="styles-module__5aVuCq__cardLink" target="_blank" tabindex="0" data-analytics="resources-watch-on-demand-" rel="nofollow noreferrer"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Watch on demand.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Videos</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Check out demos and tutorials to see LaunchDarkly in action.</p></div></a></div><div class="styles-module__5aVuCq__card undefined"><a class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-connect-at-events-" href="/events-webinars/"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Connect at events.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Events</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Explore ways to connect with us in person and virtually.</p></div></a></div></ul></div></section></main></div><a id="footer" tabindex="-1"></a><footer class="styles-module__-47ntW__footer " data-theme="dark"><div class="styles-module__-47ntW__footerInnerWrapper"><div class="styles-module__dkQbjG__footerTextMarquee"><div class="splide" extensions="[object Object]"><div class="splide__track"><ul class="splide__list"><li class="splide__slide"><div class="styles-module__dkQbjG__footerTextMarqueeItem"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/afp9m8BOoF08xpZG_icon--rotating-text-star.svg" alt="Star icon" loading="lazy"/><span>Ready to take control in prod?</span></div></li></ul></div></div></div><div class="styles-module__-47ntW__footerInner"><div class="styles-module__-47ntW__footerCards styles-module__-47ntW__footerRow"><div class="styles-module__-47ntW__logo styles-module__-47ntW__firstCol"><a class="styles-module__SHyKFW__logo styles-module__SHyKFW__logoOnly" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="footer-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 39 39"><path fill="#fff" d="M19.843 39c-.3 0-.6-.172-.772-.474-.128-.302-.128-.603.086-.862l9.129-12.626-15.986 6.55c-.129.043-.214.086-.343.086-.386 0-.728-.258-.814-.603-.129-.345.043-.733.343-.948l14.057-8.318L.814 20.383C.3 20.34 0 19.953 0 19.522c0-.388.257-.82.814-.862l24.729-1.422L11.486 8.92c-.3-.215-.472-.603-.343-.948.128-.344.428-.603.814-.603.129 0 .214.043.343.086l15.986 6.55-9.129-12.67c-.171-.258-.214-.602-.086-.861C19.2.172 19.5 0 19.843 0c.214 0 .428.086.6.259l18.171 18.228c.257.259.386.647.386.992 0 .344-.129.689-.386.99L20.443 38.742a.84.84 0 0 1-.6.259"></path></svg></a></div><div class="styles-module__-47ntW__footerCardsContainer styles-module__-47ntW__secondCol"><a class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardGreen" target="_self" tabindex="0" data-analytics="footer-cta-get-a-demo" href="/request-a-demo/"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowGreen"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>Get a demo</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTY1P9HI4UtaI_img-bg--footer-get-demo.svg" alt="Get a demo" loading="eager"/></div></div></a><!--$?--><template id="B:b"></template><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardPurple" target="_self" tabindex="0" data-analytics="footer-cta-free-trial"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowPurple"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>Free trial</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTI1P9HI4UtaH_img-bg--footer-free-trial.svg" alt="Free trial" loading="eager"/></div></div></a><!--/$--><a class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardOrange" target="_self" tabindex="0" data-analytics="footer-cta-codecontrol" href="/platform/code-control/"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowOrange"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>CodeControl</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwS41P9HI4UtaG_img-bg--footer-code-control.svg" alt="CodeControl" loading="eager"/></div></div></a><a class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardBlue" target="_self" tabindex="0" data-analytics="footer-cta-agentcontrol" href="/platform/agent-control/"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowBlue"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>AgentControl</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwSo1P9HI4UtaF_img-bg--footer-agent-control.svg" alt="AgentControl" loading="eager"/></div></div></a></div></div><div class="styles-module__-47ntW__footerRow undefined"><div class="styles-module__-47ntW__firstCol"></div><div class="styles-module__-47ntW__secondCol styles-module__-47ntW__footerLinks"><div class="styles-module__-47ntW__footerLinksColumn styles-module__-47ntW__newsletterColumn"><div class="styles-module__-47ntW__newsletterContainer"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Inboxes love LaunchDarkly.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__-47ntW__newsletterFooterText newsletter-footer-text">Get the latest on controlling code and agents in production, with tips, insights, and updates you can actually use.</p><div class="styles-module__-47ntW__newsletterForm newsletter-footer-mkto-form"><div class="mktoFormWrapper"><form id="mktoForm_2272"></form></div></div></div><div class="styles-module__-47ntW__socialMedia"><div class="styles-module__-47ntW__iconContainer"><a href="https://twitter.com/launchdarkly" target="_blank" tabindex="0" aria-label="twitter" data-analytics="footer-social-twitter" rel="nofollow noreferrer"><img alt="small twitter logo" data-analytics="footer-social-twitter" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4508c29-da0c-4e9b-bcae-205a95a6ba5d_logo--x-twitter.svg?auto=compress,format"/></a><a href="https://www.youtube.com/@LaunchDarkly" target="_blank" tabindex="0" aria-label="YouTube" data-analytics="footer-social-youtube" rel="nofollow noreferrer"><img alt="small YouTube logo" data-analytics="footer-social-youtube" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/276be984-0bd0-44ed-9e32-44a21a0c4fac_icon-youtube.svg"/></a><a href="https://www.linkedin.com/company/launchdarkly/mycompany/" target="_blank" tabindex="0" aria-label="LinkedIn" data-analytics="footer-social-linkedin" rel="nofollow noreferrer"><img alt="small LinkedIn logo" data-analytics="footer-social-linkedin" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b512fb1-6ecc-4e7f-bfe2-368f1a29898b_icon-LinkedIn.svg"/></a><a href="https://discord.com/invite/launchdarklycommunity" target="_blank" tabindex="0" aria-label="Discord" data-analytics="footer-social-discord" rel="nofollow noreferrer"><img alt="small Discord logo" data-analytics="footer-social-discord" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ZpaT7h5LeNNTxNRX_discord-logo-white.svg?auto=compress,format"/></a><a href="https://www.instagram.com/launchdarkly/" target="_blank" tabindex="0" aria-label="Instagram" data-analytics="footer-social-instagram" rel="nofollow noreferrer"><img alt="small Instagram logo" data-analytics="footer-social-instagram" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b8446e4-02c7-468e-bb32-79d0432dd1d0_instagram-icon-small.svg"/></a></div></div></div><div class="styles-module__-47ntW__footerLinksColumns"><div class="styles-module__-47ntW__footerLinksColumn"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm styles-module__5zGs1G__weight_medium styles-module__5zGs1G__textTransform_uppercase styles-module__-47ntW__footerLinksColumnTitle">Company</p><ul><li><a target="_self" tabindex="0" data-analytics="footer-company-about-us" href="/about-us/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">About Us</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-careers" href="/careers/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Careers</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-media-analysts" href="/press-and-analysts/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Media & Analysts</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-partner-program" href="/partner-program/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Partner Program</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-terms-policies" href="/policies/subscription-terms/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Terms & Policies</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-contact-us" href="/contact-us/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Contact Us</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-community" href="/community/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Community</span></a></li></ul></div><div class="styles-module__-47ntW__footerLinksColumn"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm styles-module__5zGs1G__weight_medium styles-module__5zGs1G__textTransform_uppercase styles-module__-47ntW__footerLinksColumnTitle">Support</p><ul class="styles-module__-47ntW__footerLinksColumnSupport"><li><!--$--><a href="https://support.launchdarkly.com/" rel="nofollow noopener noreferrer" target="_self" tabindex="0" data-analytics="footer-support-support-home"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Support home</span></a><!--/$--></li><li><a target="_self" tabindex="0" data-analytics="footer-support-professional-services" href="/services/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Professional Services</span></a></li><li><!--$--><a href="https://launchdarkly.com/docs/home" rel="" target="_self" tabindex="0" data-analytics="footer-support-documentation"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Documentation</span></a><!--/$--></li><li><!--$--><a href="https://status.launchdarkly.com/" rel="nofollow noopener noreferrer" target="_self" tabindex="0" data-analytics="footer-support-status"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Status</span></a><!--/$--></li><li><a href="#" data-analytics="footer-support-do-not-sell">Do not Sell or Share my Personal Information</a></li></ul></div><div class="styles-module__-47ntW__footerLinksColumn"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm styles-module__5zGs1G__weight_medium styles-module__5zGs1G__textTransform_uppercase styles-module__-47ntW__footerLinksColumnTitle">Why Us</p><ul><li><a target="_self" tabindex="0" data-analytics="footer-why-us-economic-impact-of-launchdarkly" href="/guides/forrester-tei-report-2026/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Economic Impact of LaunchDarkly</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-how-launchdarkly-works" href="/how-it-works/platform/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">How LaunchDarkly works</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-solutions" href="/solutions/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Solutions</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-trust-security" href="/security/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Trust & Security</span></a></li><li><!--$--><a href="https://trust.launchdarkly.com" rel="nofollow noopener noreferrer" target="_self" tabindex="0" data-analytics="footer-why-us-trust-center"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Trust Center</span></a><!--/$--></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-launchdarkly-vs-competitors" href="/compare/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">LaunchDarkly vs. Competitors</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-launchdarkly-on-aws" href="/solutions/launchdarkly-aws/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">LaunchDarkly on AWS</span></a></li></ul></div></div></div></div><div class="styles-module__-47ntW__footerMobileLogo"><a class="styles-module__SHyKFW__logo" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="footer-mobile-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 156 24"><g fill="#000" clip-path="url(#brand-dark_svg__a)"><path d="M9.33 18.729V16.45H2.578V5.272H0v13.457zm6.486-.424q.837-.636 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.488-1.245-1.409-.45-2.286-.45c-.479 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.233c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.851 0 1.542-.212 2.1-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874 2.33 2.33 0 0 1-1.276.371c-.452 0-.824-.106-1.09-.318m13.848 1.642c.585-.503 1.01-1.192 1.276-2.04v2.49h2.499V8.98h-2.498v4.556q0 .993-.319 1.748c-.319.755-.505.927-.904 1.192a2.23 2.23 0 0 1-1.356.424c-.558 0-.983-.159-1.302-.477-.292-.318-.452-.795-.452-1.404V8.98h-2.499v6.093c0 1.272.292 2.225.904 2.914s1.409 1.033 2.445 1.033c.904 0 1.621-.238 2.206-.742m9.011.45v-4.556q0-.993.319-1.748c.319-.755.505-.927.877-1.192.372-.291.824-.424 1.329-.424.558 0 .983.159 1.302.477.292.318.452.795.452 1.404v6.066h2.525v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.595.265-2.18.742-.558.503-.983 1.192-1.276 2.04v-2.49h-2.498v9.748h2.499zm15.257.212a8 8 0 0 0 .904-.212c.292-.079.532-.186.797-.265l.027-2.358c-.399.212-.824.344-1.276.45a6 6 0 0 1-1.356.159c-.665 0-1.249-.132-1.701-.371a2.24 2.24 0 0 1-1.01-1.033 3.25 3.25 0 0 1-.319-1.457 3.34 3.34 0 0 1 .319-1.457c.213-.424.558-.768 1.01-1.033s1.01-.371 1.648-.371a6 6 0 0 1 1.409.159c.452.106.851.265 1.249.45l-.027-2.437c-.292-.106-.558-.212-.824-.265a4.3 4.3 0 0 0-.904-.159 6.3 6.3 0 0 0-1.037-.079c-1.116 0-2.073.238-2.897.689a4.95 4.95 0 0 0-1.914 1.854c-.452.795-.664 1.669-.664 2.676 0 .98.239 1.881.691 2.649a4.65 4.65 0 0 0 1.914 1.801c.824.424 1.781.662 2.871.662.399.026.771 0 1.09-.053zm6.459-.212v-4.556q0-.993.319-1.748c.319-.755.505-.927.904-1.192a2.15 2.15 0 0 1 1.329-.424c.585 0 1.01.159 1.302.477s.452.795.452 1.404v6.066h2.499v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.621.265-2.18.742-.585.503-1.01 1.192-1.276 2.04V5.272h-2.472v13.457zm14.885 0c1.435 0 2.658-.265 3.668-.821a5.6 5.6 0 0 0 2.313-2.331c.532-1.006.797-2.199.797-3.55s-.266-2.543-.797-3.55-1.302-1.801-2.312-2.358-2.233-.821-3.668-.821H67.86v13.457h5.183zm-2.605-2.278v-8.9h2.578c1.302 0 2.313.397 3.03 1.166.744.795 1.09 1.881 1.09 3.285s-.372 2.517-1.09 3.285c-.744.768-1.754 1.165-3.03 1.165h-2.578zm15.922 1.854a4 4 0 0 0 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.489-1.245-1.409-.45-2.286-.45c-.478 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.18c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.824 0 1.489-.212 2.047-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874c-.372.238-.771.344-1.249.344-.452.027-.824-.079-1.116-.291zm11.031 2.093V14.57c0-1.086.239-1.907.691-2.464s1.09-.848 1.861-.848a3.3 3.3 0 0 1 1.037.159v-2.41c-.159-.053-.319-.079-.478-.106s-.346-.026-.532-.026c-.611 0-1.143.212-1.568.636s-.771 1.033-.983 1.775V8.954h-2.499v9.748h2.472v.026zm7.681 0v-3.152l.904-.848 2.924 4h2.977l-4.173-5.695 4.093-4.053h-3.136l-3.562 3.444V5.272h-2.472v13.457zm10.819 0V5.272h-2.499v13.457zm3.827 3.629c.93 0 1.675-.185 2.259-.556s1.064-1.033 1.462-1.96l4.492-10.861h-2.578l-2.631 6.808-2.712-6.808h-2.578l4.014 9.722-.213.503c-.133.318-.292.583-.531.715-.213.159-.559.238-1.011.238h-2.073v2.199zM144.092 24a.56.56 0 0 1-.478-.291c-.08-.185-.08-.371.053-.53l5.662-7.762-9.915 4.027c-.08.027-.133.053-.212.053a.52.52 0 0 1-.505-.371c-.08-.212.026-.45.212-.583l8.719-5.113-15.337-.874a.525.525 0 0 1-.505-.53.52.52 0 0 1 .505-.53l15.337-.874-8.719-5.113c-.186-.132-.292-.371-.212-.583s.265-.371.505-.371c.079 0 .132.026.212.053l9.915 4.026-5.662-7.788c-.106-.159-.133-.371-.053-.53a.5.5 0 0 1 .478-.291c.133 0 .266.053.372.159l11.271 11.205c.159.159.239.397.239.609s-.08.424-.239.609l-11.271 11.232a.53.53 0 0 1-.372.159z"></path></g><defs><clipPath id="brand-dark_svg__a"><path fill="#000" d="M0 0h156v24H0z"></path></clipPath></defs></svg></a></div><div class="styles-module__-47ntW__footerRow styles-module__-47ntW__footerBottom"><div class="styles-module__-47ntW__footerBottomLeft"></div><div class="styles-module__-47ntW__footerBottomRight"><a target="_self" tabindex="0" data-analytics="footer-terms-conditions" href="/terms-of-service/">Terms & Conditions</a><a target="_self" tabindex="0" data-analytics="footer-privacy-policy" href="/policies/privacy/">Privacy Policy</a><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm">©<!-- -->2026<!-- --> Catamorphic Co.</span></div></div></div></div></footer><!--$--><!--/$--><div id="modal" class="styles-module__9Rojna__modal"></div><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/chunks/webpack-6feccfddff7ef52e.js" id="_R_" async=""></script><div hidden id="S:0"><a href="https://academy.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-academy"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Academy</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
|
||
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><a href="https://support.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-help-center"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Help Center</h6><p>Explore help topics for everything LaunchDarkly.</p></div></div></a></div><script>$RC("B:1","S:1")</script><div hidden id="S:2"><a href="https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-request-support"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Request support</h6><p>Reach out to us for direct answers to your questions.</p></div></div></a></div><script>$RC("B:2","S:2")</script><div hidden id="S:3"><a href="https://launchdarkly.com/docs/home" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-docs-home"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Docs home</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:3","S:3")</script><div hidden id="S:4"><a href="https://launchdarkly.com/docs/home/getting-started" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-feature-flags-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Feature flags Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:4","S:4")</script><div hidden id="S:5"><a href="https://launchdarkly.com/docs/home/agentcontrol/quickstart" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-agentcontrol-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>AgentControl Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:5","S:5")</script><div hidden id="S:6"><a href="https://launchdarkly.com/docs/api/" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-api-docs"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>API docs</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:6","S:6")</script><div hidden id="S:7"><a href="https://launchdarkly.com/docs/blog" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-flagship-engineering-blog"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&fit=max&w=3840"/></div><span>Flagship engineering blog</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:7","S:7")</script><div hidden id="S:8"><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__SAuuzq__ctaInner js-primary-button-hover-parent" target="_self" tabindex="0" data-analytics="nav-developers-free-trial"><div class="styles-module__SAuuzq__ctaIconContainer"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover"><img alt="" loading="lazy" width="72" height="72" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&w=96&q=75 1x, /_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&w=256&q=75 2x" src="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&w=256&q=75"/></div></div><div class="styles-module__SAuuzq__ctaTextContainer"><p class="styles-module__SAuuzq__ctaTitle">Take control of your code and agents at runtime.</p><p>Control releases, experiments, and AI behavior in prod.</p></div><div class="styles-module__SAuuzq__ctaButton"><span class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default"><span class="styles-module__d4f9cW__label">Free trial</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></span></div></a></div><script>$RC("B:8","S:8")</script><div hidden id="S:9"><a href="https://app.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__stVVvG__pricingLink styles-module__stVVvG__mobileSignInLink" target="_self" tabindex="0" data-analytics="nav-mobile-sign-in"><span>Sign in</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a></div><script>$RC("B:9","S:9")</script><div hidden id="S:a"><a href="https://launchdarkly.com/docs/home" rel="" class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-explore-our-docs-"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&fit=max&w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&fit=max&w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&fit=max&w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Explore our docs.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Docs</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Learn best practices for getting started with LaunchDarkly.</p></div></a></div><script>$RC("B:a","S:a")</script><div hidden id="S:b"><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardPurple" target="_self" tabindex="0" data-analytics="footer-cta-free-trial"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowPurple"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>Free trial</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTI1P9HI4UtaH_img-bg--footer-free-trial.svg" alt="Free trial" loading="eager"/></div></div></a></div><script>$RC("B:b","S:b")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n18:I[57150,[],\"\"]\n:HL[\"/_next/static/media/06a57141b3ff4399-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/1c175694bc1e8ad8-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/415c659d58f62aff-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/751909690a1a74fa-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8fe56b4ac583f0e1-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/a205fd595a9beeab-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/c314d5394508c5c7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/cbde3fd2db275844-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/d865ae18e54dcb9c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/eb42eb886f642af5-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f5e01691c8be1cce-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/4b895a9a0ceca7ed.css\",\"style\"]\n:HL[\"/_next/static/css/6aeb3fbd013f7055.css\",\"style\"]\n:HL[\"/_next/static/css/baa31bc0bc2753e2.css\",\"style\"]\n:HL[\"/_next/static/css/b694ee22169cc940.css\",\"style\"]\n:HL[\"/_next/static/css/455e5680c78aaa64.css\",\"style\"]\n:HL[\"/_next/static/css/668223e4ce0896ff.css\",\"style\"]\n:HL[\"/_next/static/css/71e7e41975824f9a.css\",\"style\"]\n:HL[\"/_next/static/css/499e8ecba60a437c.css\",\"style\"]\n:HL[\"/_next/static/css/c13c7b31349c3e1e.css\",\"style\"]\n:HL[\"/_next/static/css/eb8c52289887f66e.css\",\"style\"]\n:HL[\"/_next/static/css/76ba66facbc12026.css\",\"style\"]\n:HL[\"/_next/static/css/61c845f39508ea49.css\",\"style\"]\n:HL[\"/_next/static/css/9506ad2d29f3da93.css\",\"style\"]\n:HL[\"/_next/static/css/c96dfd09a5295fdd.css\",\"style\"]\n:HL[\"/_next/static/css/ffc1747465c21b7c.css\",\"style\"]\n:HL[\"/_next/static/css/a3d1e33a3a179b4c.css\",\"style\"]\n:HL[\"/_next/"])</script><script>self.__next_f.push([1,"static/css/ab4a69f65a7a2b93.css\",\"style\"]\n:HL[\"/_next/static/css/5b017ffd652d07f8.css\",\"style\"]\n:HL[\"/_next/static/css/c2a2739e0e57e14c.css\",\"style\"]\n:HL[\"/_next/static/css/0e421a84dd333b11.css\",\"style\"]\n:HL[\"/_next/static/css/f188bfa3f9063907.css\",\"style\"]\n:HL[\"/_next/static/css/f08af977962d892c.css\",\"style\"]\n:HL[\"/_next/static/css/741f4cf49b054cf0.css\",\"style\"]\n:HL[\"/_next/static/css/a05c4c008283c998.css\",\"style\"]\n:HL[\"/_next/static/css/271699adbe3692a1.css\",\"style\"]\n:HL[\"/_next/static/css/6bcd99eac94adccc.css\",\"style\"]\n:HL[\"/_next/static/css/9860101428a5e484.css\",\"style\"]\n:HL[\"/_next/static/css/34a11c3f23439233.css\",\"style\"]\n:HL[\"/_next/static/css/b60911417b616c72.css\",\"style\"]\n:HL[\"/_next/static/css/e217cbe846d54f5a.css\",\"style\"]\n:HL[\"/_next/static/css/437c2c516d87ce24.css\",\"style\"]\n:HL[\"/_next/static/css/c240dbaacd91d7b6.css\",\"style\"]\n:HL[\"/_next/static/css/e2768b37f0a7179e.css\",\"style\"]\n:HL[\"/_next/static/css/3771f60faaafd2e7.css\",\"style\"]\n:HL[\"/_next/static/css/e22ba8bc372dffa3.css\",\"style\"]\n:HL[\"/_next/static/css/7a4ebd8c71fa9dec.css\",\"style\"]\n:HL[\"/_next/static/css/42eebaa13cfadd34.css\",\"style\"]\n:HL[\"/_next/static/css/0b0e39f220873667.css\",\"style\"]\n:HL[\"/_next/static/css/f70e0c2fa3894b2b.css\",\"style\"]\n:HL[\"/_next/static/css/2a1b94a1fafb21a0.css\",\"style\"]\n:HL[\"/_next/static/css/372992834c739f06.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"O_3hlC3LSW0FOlOFveGg2\",\"p\":\"\",\"c\":[\"\",\"blog\",\"the-time-our-provider-screwed-us\",\"?_bn=g\u0026_bt=704192411954\u0026creative=704192411954\u0026device=c\u0026gad_source=1\u0026gclid=REMOVED\u0026matchtype=e\u0026utm_adgroup=Brand_General\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"uid\",\"the-time-our-provider-screwed-us\",\"d\"],{\"children\":[\"__PAGE__?{\\\"_bn\\\":\\\"g\\\",\\\"_bt\\\":\\\"704192411954\\\",\\\"creative\\\":\\\"704192411954\\\",\\\"device\\\":\\\"c\\\",\\\"gad_source\\\":\\\"1\\\",\\\"gclid\\\":\\\"REMOVED\\\",\\\"matchtype\\\":\\\"e\\\",\\\"utm_adgroup\\\":\\\"Brand_General\\\"}\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4b895a9a0ceca7ed.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6aeb3fbd013f7055.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baa31bc0bc2753e2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b694ee22169cc940.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/455e5680c78aaa64.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"blog\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"uid\",\"the-time-our-provider-screwed-us\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/668223e4ce0896ff.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/71e7e41975824f9a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/499e8ecba60a437c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c13c7b31349c3e1e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/eb8c52289887f66e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/76ba66facbc12026.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/61c845f39508ea49.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"7\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9506ad2d29f3da93.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"8\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c96dfd09a5295fdd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"9\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ffc1747465c21b7c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"10\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a3d1e33a3a179b4c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"11\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ab4a69f65a7a2b93.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"12\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5b017ffd652d07f8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"13\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2a2739e0e57e14c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"14\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0e421a84dd333b11.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"15\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f188bfa3f9063907.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"16\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f08af977962d892c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"17\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/741f4cf49b054cf0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"18\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a05c4c008283c998.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"19\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/271699adbe3692a1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],\"$L6\",\"$L7\",\"$L8\",\"$L9\",\"$La\",\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\"],\"$L16\"]}],{},null,false]},null,false]},null,false]},null,false],\"$L17\",false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"19:I[24431,[],\"OutletBoundary\"]\n1b:I[15278,[],\"AsyncMetadataOutlet\"]\n1d:I[24431,[],\"ViewportBoundary\"]\n1f:I[24431,[],\"MetadataBoundary\"]\n20:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"22:I[41402,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"23:I[8083,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n25:I[46212,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n6:[\"$\",\"link\",\"20\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6bcd99eac94adccc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n7:[\"$\",\"link\",\"21\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9860101428a5e484.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n8:[\"$\",\"link\",\"22\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/34a11c3f23439233.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n9:[\"$\",\"link\",\"23\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b60911417b616c72.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\na:[\"$\",\"link\",\"24\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e217cbe846d54f5a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nb:[\"$\",\"link\",\"25\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/437c2c516d87ce24.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nc:[\"$\",\"link\",\"26\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c240dbaacd91d7b6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nd:[\"$\",\"link\",\"27\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e2768b37f0a7179e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\ne:[\"$\",\"link\",\"28\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/3771f60faaafd2e7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nf:[\"$\",\"link\",\"29\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e22ba8bc372dffa3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n10:[\"$\",\"link\",\"30\",{\"rel\":\"stylesh"])</script><script>self.__next_f.push([1,"eet\",\"href\":\"/_next/static/css/7a4ebd8c71fa9dec.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n11:[\"$\",\"link\",\"31\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/42eebaa13cfadd34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n12:[\"$\",\"link\",\"32\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0b0e39f220873667.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n13:[\"$\",\"link\",\"33\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f70e0c2fa3894b2b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n14:[\"$\",\"link\",\"34\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2a1b94a1fafb21a0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n15:[\"$\",\"link\",\"35\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/372992834c739f06.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n16:[\"$\",\"$L19\",null,{\"children\":[\"$L1a\",[\"$\",\"$L1b\",null,{\"promise\":\"$@1c\"}]]}]\n17:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$20\",null,{\"fallback\":null,\"children\":\"$L21\"}]}]}]]}]\n27:T79b,"])</script><script>self.__next_f.push([1,"\n const domainName = document.domain;\n const isStaging = domainName.indexOf('launchdarkly-nextjs.netlify.app') \u003e 0;\n const isLocal = domainName.indexOf('localhost') \u003e= 0;\n if (!isStaging \u0026\u0026 !isLocal) {\n var _0x4f3c3b=_0x28ed;(function(_0x27c1d5,_0x5b7285){var _0x4a3aaf=_0x28ed,_0x50f6dc=_0x27c1d5();while(!![]){try{var _0x25be67=-parseInt(_0x4a3aaf(0x135))/0x1*(-parseInt(_0x4a3aaf(0x12f))/0x2)+-parseInt(_0x4a3aaf(0x13a))/0x3*(-parseInt(_0x4a3aaf(0x12e))/0x4)+parseInt(_0x4a3aaf(0x13f))/0x5+-parseInt(_0x4a3aaf(0x130))/0x6*(parseInt(_0x4a3aaf(0x137))/0x7)+parseInt(_0x4a3aaf(0x131))/0x8+parseInt(_0x4a3aaf(0x139))/0x9+-parseInt(_0x4a3aaf(0x13c))/0xa*(parseInt(_0x4a3aaf(0x13e))/0xb);if(_0x25be67===_0x5b7285)break;else _0x50f6dc['push'](_0x50f6dc['shift']());}catch(_0x1fcfea){_0x50f6dc['push'](_0x50f6dc['shift']());}}}(_0x3a95,0xe2743));if(document[_0x4f3c3b(0x133)]!=_0x4f3c3b(0x13b)\u0026\u0026document[_0x4f3c3b(0x133)]!=_0x4f3c3b(0x136)){var l=location['href'],r=document[_0x4f3c3b(0x132)],m=new Image();location['protocol']=='https:'?m[_0x4f3c3b(0x13d)]=_0x4f3c3b(0x138)+encodeURI(l)+_0x4f3c3b(0x134)+encodeURI(r):m[_0x4f3c3b(0x13d)]='http://a1abbeef2a0f.o3n.io/files/0fuqyu7agr8q60qwy053kyf7f/image.gif?l='+encodeURI(l)+_0x4f3c3b(0x134)+encodeURI(r);}function _0x28ed(_0x47b123,_0x3d6cdb){var _0x3a951d=_0x3a95();return _0x28ed=function(_0x28edc0,_0x280ec2){_0x28edc0=_0x28edc0-0x12e;var _0x1620c4=_0x3a951d[_0x28edc0];return _0x1620c4;},_0x28ed(_0x47b123,_0x3d6cdb);}function _0x3a95(){var _0x130dd2=['57287318YqinYt','6717710lMIlzL','11324COWcrE','67920RoENBP','25998dHkLhN','11230248MZmNRI','referrer','domain','\u0026r=','49PVgtBh','www.launchdarkly.com','1253jAaJlq','https://a1abbeef2a0f.o3n.io/files/0fuqyu7agr8q60qwy053kyf7f/image.gif?l=','13376151BQtzMN','1074XfLrvY','launchdarkly.com','10hIxshK','src'];_0x3a95=function(){return _0x130dd2;};return _0x3a95();}\n }\n "])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en-US\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",\"cookie-consent-script\",{\"id\":\"cookie-consent-script\",\"data-cookieconsent\":\"ignore\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag() {\\n dataLayer.push(arguments);\\n }\\n gtag(\\\"consent\\\", \\\"default\\\", {\\n ad_storage: \\\"denied\\\",\\n ad_user_data: \\\"denied\\\",\\n ad_personalization: \\\"denied\\\",\\n analytics_storage: \\\"denied\\\",\\n functionality_storage: \\\"denied\\\",\\n personalization_storage: \\\"denied\\\",\\n security_storage: \\\"granted\\\",\\n wait_for_update: 500,\\n });\\n gtag(\\\"set\\\", \\\"ads_data_redaction\\\", true);\\n gtag(\\\"set\\\", \\\"url_passthrough\\\", true);\\n \"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_918804 __variable_81b511 __variable_3ebb29 __variable_a7dd04 __variable_479fb2\",\"children\":[[[\"$\",\"$L22\",\"cookiebot\",{\"id\":\"cookiebot\",\"strategy\":\"beforeInteractive\",\"src\":\"https://consent.cookiebot.com/uc.js\",\"data-cbid\":\"a9e2be18-730c-4afe-89dc-251a408727a0\",\"data-blockingmode\":\"auto\",\"type\":\"text/javascript\",\"data-georegions\":\"{'region':'AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SK, SI, ES, SE, GB','cbid':'d7afae1f-c20d-4849-be5c-a875c8c184a0'}\"}],[\"$\",\"$L22\",\"gtm-init\",{\"id\":\"gtm-init\",\"strategy\":\"afterInteractive\",\"data-cookieconsent\":\"ignore\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function(w,l){\\n w[l]=w[l]||[];\\n w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});\\n })(window,'dataLayer');\\n \"}}],[\"$\",\"$L22\",\"gtm\",{\"id\":\"gtm\",\"strategy\":\"afterInteractive\",\"data-cookieconsent\":\"ignore\",\"src\":\"https://www.googletagmanager.com/gtm.js?id=GTM-WRKKC89\"}]],[\"$\",\"div\",null,{\"className\":\"styles-module__4bne7a__layers\"}],[\"$\",\"$L23\",null,{}],\"$L24\",[\"$\",\"$L25\",null,{}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L26\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c13c7b31349c3e1e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/71e7e41975824f9a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/76ba66facbc12026.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9506ad2d29f3da93.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1644807d4ece19b2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"div\",null,{\"id\":\"modal\",\"className\":\"styles-module__9Rojna__modal\"}],[[\"$\",\"$L22\",\"canaryScript\",{\"id\":\"canaryScript\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"$27\"}}]],\"$L28\"]}]]}]\n"])</script><script>self.__next_f.push([1,"29:I[1254,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2a:I[79931,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2c:I[15667,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"4345\",\"static/chunks/app/not-found-497554e3668544b1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2d:I[27903,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"PrismicNextImage\"]\n"])</script><script>self.__next_f.push([1,"2e:I[55265,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"28:[\"$\",\"$L29\",null,{}]\n"])</script><script>self.__next_f.push([1,"26:[[\"$\",\"$L2a\",null,{\"document\":\"$undefined\"}],\"$L2b\",[\"$\",\"main\",null,{\"className\":\" styles-module__llGG9q__main \",\"children\":[[\"$\",\"$L2c\",null,{}],[\"$\",\"section\",null,{\"className\":\"styles-module__NFwUga__newSection styles-module__NFwUga__bgBlack styles-module__o0Pm3W__notFoundMain\",\"id\":\"$undefined\",\"data-name\":\"$undefined\",\"data-jump-id\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__NFwUga__contentContainer styles-module__o0Pm3W__container\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L2d\",null,{\"field\":{\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aixLLKlQnVZVETT4_img-bg--pink-cloud.png?auto=format,compress\",\"alt\":\"Pink Cloud background\",\"dimensions\":{\"width\":1920,\"height\":1080}},\"className\":\"styles-module__o0Pm3W__pinkCloud\",\"quality\":\"$undefined\",\"sizes\":\"$undefined\",\"alt\":\"$undefined\",\"fallbackAlt\":\"\",\"priority\":\"$undefined\",\"placeholder\":\"$undefined\",\"fill\":\"$undefined\",\"loading\":\"lazy\"}],[\"$\",\"div\",null,{\"className\":\"styles-module__o0Pm3W__contentContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__o0Pm3W__content\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"styles-module__J0n02W__variant_h1 styles-module__J0n02W__weight_bold styles-module__o0Pm3W__title\",\"children\":\"Oops, we seem to be hallucinating.\"}],[\"$\",\"p\",null,{\"className\":\"styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__weight_regular styles-module__o0Pm3W__description\",\"children\":\"Sorry about the 404 error, but this page doesn't exist.\"}],[\"$\",\"$L2e\",null,{\"className\":\"styles-module__d4f9cW__button styles-module__d4f9cW__variant_light styles-module__d4f9cW__size_default\",\"style\":\"$undefined\",\"href\":\"/\",\"onClick\":\"$undefined\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"eventName\":\"$undefined\",\"trackingId\":\"$undefined\",\"analyticsId\":\"$undefined\",\"persistExternalQueryParams\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__label\",\"children\":\"Return home\"}],[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__arrowBox false\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":12,\"fill\":\"none\",\"className\":\"styles-module__d4f9cW__arrow\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z\"}]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__o0Pm3W__videoContainer\",\"children\":[\"$\",\"video\",null,{\"autoPlay\":true,\"muted\":true,\"loop\":true,\"playsInline\":true,\"children\":[\"$\",\"source\",null,{\"src\":\"https://launchdarkly.cdn.prismic.io/launchdarkly/aixHeKlQnVZVETS0_AI-Bert_Dizzy_1080-vp9-chrome.webm\",\"type\":\"video/webm\"}]}]}]]}]]}]}]]}],\"$L2f\"]\n"])</script><script>self.__next_f.push([1,"1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#FFF\"}]]\n1a:null\n"])</script><script>self.__next_f.push([1,"30:I[78006,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"31:I[57947,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"32:I[17143,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"24:[\"$\",\"$L30\",null,{\"show\":true,\"cookieKey\":\"runtime-labs-workshop-09172026\",\"content\":\"[Hands-on workshop] Managing AI Agents in Production - Sep 17\",\"ctaText\":\"Save my seat\",\"ctaLink\":\"https://launchdarkly.com/webinars/runtime-labs-managing-ai-agents-in-production-sept-17/\"}]\n"])</script><script>self.__next_f.push([1,"2f:[\"$\",\"$L31\",null,{\"supportItems\":[{\"title\":\"Support home\",\"url\":\"https://support.launchdarkly.com/\"},{\"title\":\"Professional Services\",\"url\":\"/services/\"},{\"title\":\"Documentation\",\"url\":\"https://launchdarkly.com/docs/home\"},{\"title\":\"Status\",\"url\":\"https://status.launchdarkly.com/\"}],\"whyUsItems\":[{\"title\":\"Economic Impact of LaunchDarkly\",\"url\":\"https://launchdarkly.com/guides/forrester-tei-report-2026/\"},{\"title\":\"How LaunchDarkly works\",\"url\":\"/how-it-works.platform/\"},{\"title\":\"Solutions\",\"url\":\"/solutions/\"},{\"title\":\"Trust \u0026 Security\",\"url\":\"/security/\"},{\"title\":\"Trust Center\",\"url\":\"https://trust.launchdarkly.com\"},{\"title\":\"LaunchDarkly vs. Competitors\",\"url\":\"https://launchdarkly.com/compare/\"},{\"title\":\"LaunchDarkly on AWS\",\"url\":\"https://launchdarkly.com/solutions/launchdarkly-aws/\"}],\"companyItems\":[{\"title\":\"About Us\",\"url\":\"/about-us/\"},{\"title\":\"Careers\",\"url\":\"/careers/\"},{\"title\":\"Media \u0026 Analysts\",\"url\":\"/press-and-analysts/\"},{\"title\":\"Partner Program\",\"url\":\"/partner-program/\"},{\"title\":\"Terms \u0026 Policies\",\"url\":\"https://launchdarkly.com/policies/subscription-terms/\"},{\"title\":\"Contact Us\",\"url\":\"/contact-us/\"},{\"title\":\"Community\",\"url\":\"https://launchdarkly.com/community/\"}],\"snsLinks\":[{\"url\":\"https://twitter.com/launchdarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4508c29-da0c-4e9b-bcae-205a95a6ba5d_logo--x-twitter.svg?auto=compress,format\",\"iconAlt\":\"twitter\"},{\"url\":\"https://www.youtube.com/@LaunchDarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/276be984-0bd0-44ed-9e32-44a21a0c4fac_icon-youtube.svg\",\"iconAlt\":\"YouTube\"},{\"url\":\"https://www.linkedin.com/company/launchdarkly/mycompany/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b512fb1-6ecc-4e7f-bfe2-368f1a29898b_icon-LinkedIn.svg\",\"iconAlt\":\"LinkedIn\"},{\"url\":\"https://discord.com/invite/launchdarklycommunity\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ZpaT7h5LeNNTxNRX_discord-logo-white.svg?auto=compress,format\",\"iconAlt\":\"Discord\"},{\"url\":\"https://www.instagram.com/launchdarkly/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b8446e4-02c7-468e-bb32-79d0432dd1d0_instagram-icon-small.svg\",\"iconAlt\":\"Instagram\"}],\"useRefresShortFooter\":\"$undefined\",\"loadFooterNewsletter\":\"$undefined\",\"shortFooter\":true}]\n"])</script><script>self.__next_f.push([1,"2b:[\"$\",\"$L32\",null,{\"navigationDocument\":{\"id\":\"Z8jwdRIAACIAchAL\",\"uid\":null,\"url\":null,\"type\":\"main_navigation\",\"href\":\"https://launchdarkly-marketingsite.cdn.prismic.io/api/v2/documents/search?ref=aqQbiREAACwA_PkJ\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z8jwdRIAACIAchAL%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2025-03-06T23:22:48+0000\",\"last_publication_date\":\"2026-08-12T21:50:57+0000\",\"slugs\":[\"main-navigation\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"products_group\":[{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEidWJ-7kSC2w_icon--guarded-release-x24.svg\",\"id\":\"aCQJEidWJ-7kSC2w\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZkT8yxcAACQAayzv\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"eb9e562d-4750-4567-8060-b0378a8012b7\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guarded Releases\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Monitor and de-risk.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJESdWJ-7kSC2v_icon--experimentation-x24.svg\",\"id\":\"aCQJESdWJ-7kSC2v\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZS3e3xAAACYArUv0\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"859b7068-0b26-4b9b-be95-730781ae8e60\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make data-driven decisions.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aYTW2d0YXLCxVdmZ_observability-icon-pink-gradient.svg\",\"id\":\"aYTW2d0YXLCxVdmZ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aXzdMhEAACEAbMS3\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"a6113607-80f4-45f3-9d88-a7f9cd5474ad\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Detect, diagnose, and recover.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEydWJ-7kSC2x_icon--release-management-x24.svg\",\"id\":\"aCQJEydWJ-7kSC2x\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZK7UUREAACQAMsBn\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"bd2dad2e-cc7c-47a4-9c6b-d14e00a62722\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature Flags\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Scale great release processes.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"release-management\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJECdWJ-7kSC2u_icon--ai-x24.svg\",\"id\":\"aCQJECdWJ-7kSC2u\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aScrdxIAACUA_zBM\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"e1c3e064-69c5-4a8a-9e6d-d47afa6f9a84\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI Configs\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make innovative AI products.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"ai\",\"spans\":[],\"direction\":\"ltr\"}]}],\"overview_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format,compress\",\"id\":\"agwNv6YofJOwHWkd\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT1iRIAACMAW09R\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"the-runtime-control-layer-for-the-ai-era.\",\"first_publication_date\":\"2026-05-13T22:07:57+0000\",\"last_publication_date\":\"2026-07-29T17:52:40+0000\",\"uid\":\"how-it-works.platform\",\"url\":\"/how-it-works.platform/\",\"link_type\":\"Document\",\"key\":\"cb51a2ac-66b9-445c-add5-1bfd126fdaf1\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Platform overview\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format,compress\",\"id\":\"agpNAKYofJOwHTuE\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agJOJRIAACMAV0KE\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"feature-flags-for-real-time-control-in-production.\",\"first_publication_date\":\"2026-05-11T23:18:47+0000\",\"last_publication_date\":\"2026-07-09T17:32:44+0000\",\"uid\":\"how-it-works.feature-flags\",\"url\":\"/how-it-works.feature-flags/\",\"link_type\":\"Document\",\"key\":\"5b39f1f4-c3e9-4985-a6f4-09d007cdc71a\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format,compress\",\"id\":\"agpNA6YofJOwHTuH\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agUqVRIAACEAW5iJ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"observe-at-the-scale-that-you\",\"first_publication_date\":\"2026-05-14T02:28:03+0000\",\"last_publication_date\":\"2026-07-16T18:41:10+0000\",\"uid\":\"how-it-works.observability\",\"url\":\"/how-it-works.observability/\",\"link_type\":\"Document\",\"key\":\"fb0b6ba7-0f91-4639-a80e-a08103edd108\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format,compress\",\"id\":\"agpM_6YofJOwHTuD\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT6fRIAAI1IW1Zl\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"optimize-at-the-speed-that-you\",\"first_publication_date\":\"2026-05-13T23:15:56+0000\",\"last_publication_date\":\"2026-08-12T00:12:40+0000\",\"uid\":\"how-it-works.experimentation\",\"url\":\"/how-it-works.experimentation/\",\"link_type\":\"Document\",\"key\":\"026bc403-ba2c-4c10-a9a7-28dc7beb9c0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format,compress\",\"id\":\"agpM_qYofJOwHTuC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agPiLhIAACEAWZ_F\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"Agent Integration\"],\"lang\":\"en-us\",\"slug\":\"go-agent-native-from-day-1.\",\"first_publication_date\":\"2026-05-13T03:45:19+0000\",\"last_publication_date\":\"2026-07-02T20:40:47+0000\",\"uid\":\"how-it-works.agent-integrations\",\"url\":\"/how-it-works.agent-integrations/\",\"link_type\":\"Document\",\"key\":\"96423778-717a-4a35-b3d1-2966c0f15a99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Agent integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format,compress\",\"id\":\"agpNAqYofJOwHTuG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agXnzxIAAGfYXLYC\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"integrations\",\"first_publication_date\":\"2026-05-14T15:21:28+0000\",\"last_publication_date\":\"2026-05-19T04:39:17+0000\",\"uid\":\"integrations\",\"url\":\"/integrations/\",\"link_type\":\"Document\",\"key\":\"ac21f49d-de49-4c8f-9cab-03ff74f3aeae\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format,compress\",\"id\":\"agpNAaYofJOwHTuF\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agstuhIAAGVsZG8v\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"platform architecture\"],\"lang\":\"en-us\",\"slug\":\"built-for-runtime-control-at-scale.\",\"first_publication_date\":\"2026-05-18T15:48:56+0000\",\"last_publication_date\":\"2026-05-20T21:04:24+0000\",\"uid\":\"how-it-works.platform-architecture\",\"url\":\"/how-it-works.platform-architecture/\",\"link_type\":\"Document\",\"key\":\"654903e7-c950-4ee9-ad8d-28ced3798a0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Architecture\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_team_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format,compress\",\"id\":\"agpOrqYofJOwHTuK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZggxIAAGfYXWgr\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ai-coded-it-but-you-own-it-in-production.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T23:57:25+0000\",\"last_publication_date\":\"2026-07-15T15:24:08+0000\",\"uid\":\"solutions.release-ai-built-code\",\"url\":\"/solutions.release-ai-built-code/\",\"link_type\":\"Document\",\"key\":\"89e8e1ad-db87-4479-aeec-83186124bc80\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Release AI-built code\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format,compress\",\"id\":\"agpOrKYofJOwHTuI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVNRxIAACEAW8p2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"agents-make-decisions-you-own-the-results.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T04:20:19+0000\",\"last_publication_date\":\"2026-07-15T15:24:56+0000\",\"uid\":\"solutions.control-ai-agents\",\"url\":\"/solutions.control-ai-agents/\",\"link_type\":\"Document\",\"key\":\"c8ca2188-6dd5-4f79-b127-b32bd5afcc49\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Control AI agents\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format,compress\",\"id\":\"agpOraYofJOwHTuJ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZehRIAACEAXWU6\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-guessing.-optimize-model-performance-and-cost-in-real-time.\",\"first_publication_date\":\"2026-05-14T23:47:53+0000\",\"last_publication_date\":\"2026-07-15T15:25:55+0000\",\"uid\":\"solutions.optimize-ai-performance\",\"url\":\"/solutions.optimize-ai-performance/\",\"link_type\":\"Document\",\"key\":\"57b0c941-034c-46e0-80ef-722178945659\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Optimize AI performance \u0026 cost\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format,compress\",\"id\":\"agpOsKYofJOwHTuM\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVxxxIAAI1IW_7K\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-responding-and-automatically-fix-problems-in-production.\",\"first_publication_date\":\"2026-05-14T07:01:00+0000\",\"last_publication_date\":\"2026-07-07T00:03:00+0000\",\"uid\":\"solutions.self-heal-systems\",\"url\":\"/solutions.self-heal-systems/\",\"link_type\":\"Document\",\"key\":\"a777ddee-a6f5-485b-8cb0-df55680e5bd3\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Self-heal systems\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format,compress\",\"id\":\"agpOr6YofJOwHTuL\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZhwBIAACMAXWoU\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"experiment-at-ai-scale-without-losing-control.\",\"first_publication_date\":\"2026-05-15T00:01:50+0000\",\"last_publication_date\":\"2026-07-15T15:28:25+0000\",\"uid\":\"solutions.run-experiments\",\"url\":\"/solutions.run-experiments/\",\"link_type\":\"Document\",\"key\":\"0c20b758-07ba-4180-9002-028f2eb0c933\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Run experiments\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_industry_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format,compress\",\"id\":\"agpQmaYofJOwHTuS\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"af-1HRIAACEAU2aQ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"AI Engineer\"],\"lang\":\"en-us\",\"slug\":\"agents-break-in-production.-thats-where-control-matters.\",\"first_publication_date\":\"2026-05-09T23:06:03+0000\",\"last_publication_date\":\"2026-05-20T21:03:40+0000\",\"uid\":\"persona.ai-engineers\",\"url\":\"/persona.ai-engineers/\",\"link_type\":\"Document\",\"key\":\"fe8f38e4-584c-451d-b926-af442c252bea\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI engineers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format,compress\",\"id\":\"agpQmqYofJOwHTuT\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaOnBIAACMAXamc\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"development teams\"],\"lang\":\"en-us\",\"slug\":\"ship-faster.-stay-in-control.-fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-27T20:30:26+0000\",\"uid\":\"persona.development-teams\",\"url\":\"/persona.development-teams/\",\"link_type\":\"Document\",\"key\":\"dc747045-cd9a-4d86-aec3-d00c036dff99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Developers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format,compress\",\"id\":\"agpQm6YofJOwHTuU\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaRwhIAAGfYXa5B\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"devops\"],\"lang\":\"en-us\",\"slug\":\"prevent-incidents.fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-18T18:21:56+0000\",\"uid\":\"persona.devops-site-reliability-engineer-teams\",\"url\":\"/persona.devops-site-reliability-engineer-teams/\",\"link_type\":\"Document\",\"key\":\"95bbe00c-5ed4-4caf-a18e-830cfa416ced\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"DevOps \u0026 SRE\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format,compress\",\"id\":\"agpQnaYofJOwHTuW\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaJuhIAAGfYXaJy\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"product managers\"],\"lang\":\"en-us\",\"slug\":\"launch-confidently.-learn-what-works.-improve-continuously.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-05-19T01:10:37+0000\",\"uid\":\"persona.product-managers\",\"url\":\"/persona.product-managers/\",\"link_type\":\"Document\",\"key\":\"aaa44826-4691-462b-a8a1-acc80ad8fbdb\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product managers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format,compress\",\"id\":\"8Rpfg-gh7BMefouu\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"alem8REAACwAC87h\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"data scientists\"],\"lang\":\"en-us\",\"slug\":\"run-experiments-you-can-actually-trust.\",\"first_publication_date\":\"2026-07-15T18:45:45+0000\",\"last_publication_date\":\"2026-07-17T19:14:06+0000\",\"uid\":\"persona.data-scientists\",\"url\":\"/persona.data-scientists/\",\"link_type\":\"Document\",\"key\":\"f7bf52f5-fab6-4ea1-9d9c-e319463a6190\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Data scientists\",\"spans\":[],\"direction\":\"ltr\"}]}],\"learn_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format,compress\",\"id\":\"agpSN6YofJOwHTud\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"9ad95dc9-c5ec-4aab-ac8a-7b7405aec915\",\"url\":\"https://launchdarkly.com/blog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format,compress\",\"id\":\"agpSOaYofJOwHTuf\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"1b0edfb5-d056-42ae-a4c2-dd530e49f057\",\"url\":\"https://launchdarkly.com/guides/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guides \u0026 ebooks\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format,compress\",\"id\":\"agpSOKYofJOwHTue\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"YQxWXxIAACkAIPjQ\",\"type\":\"events\",\"tags\":[\"events\",\"webinars\"],\"lang\":\"en-us\",\"slug\":\"events\",\"first_publication_date\":\"2021-08-05T21:26:24+0000\",\"last_publication_date\":\"2026-09-11T15:17:28+0000\",\"uid\":\"events-webinars\",\"url\":\"/events-webinars/\",\"link_type\":\"Document\",\"key\":\"d1154925-59b3-4c22-afcc-e0efad605e91\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Events \u0026 webinars\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format,compress\",\"id\":\"agpSOqYofJOwHTug\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"c4b22447-de6e-4d1e-9b7a-11748b8055aa\",\"url\":\"https://www.youtube.com/@LaunchDarkly\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Videos\",\"spans\":[],\"direction\":\"ltr\"}]}],\"success_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format,compress\",\"id\":\"agpSQ6YofJOwHTui\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"8a7c9deb-617c-4160-adeb-5b432b051ecf\",\"url\":\"https://academy.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Academy\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format,compress\",\"id\":\"agpSRKYofJOwHTuj\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ajGF7RcAADAA88aj\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"trusted-by-industry-leading-teams.\",\"first_publication_date\":\"2026-06-16T17:59:03+0000\",\"last_publication_date\":\"2026-06-23T21:13:13+0000\",\"uid\":\"customer-stories\",\"url\":\"/customer-stories/\",\"link_type\":\"Document\",\"key\":\"d11dbfa0-bb2d-461c-b5c3-03e978db76b6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Customer stories\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format,compress\",\"id\":\"agpSRqYofJOwHTul\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZSgkThAAACcAC-sT\",\"type\":\"new_pages\",\"tags\":[\"services\",\"professional services\"],\"lang\":\"en-us\",\"slug\":\"launchdarkly-professional-services\",\"first_publication_date\":\"2023-10-12T16:52:47+0000\",\"last_publication_date\":\"2026-07-08T15:43:17+0000\",\"uid\":\"services\",\"url\":\"/services/\",\"link_type\":\"Document\",\"key\":\"93fcdada-dd96-49ca-b8f3-a466eb109f19\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Professional services\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format,compress\",\"id\":\"agpSRaYofJOwHTuk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZMggHhEAACYAn2e4\",\"type\":\"new_pages\",\"tags\":[\"partner program\",\"partner program page\"],\"lang\":\"en-us\",\"slug\":\"lets-build-better-software-together.\",\"first_publication_date\":\"2023-07-31T21:59:14+0000\",\"last_publication_date\":\"2026-07-08T15:56:45+0000\",\"uid\":\"partner-program\",\"url\":\"/partner-program/\",\"link_type\":\"Document\",\"key\":\"c693eb6c-d924-4446-98dc-e50e30a73e31\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Partners\",\"spans\":[],\"direction\":\"ltr\"}]}],\"get_help_group\":[{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format,compress\",\"id\":\"agpTiKYofJOwHTu2\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"671d49cc-49d6-4614-90a4-3c31313a2f47\",\"url\":\"https://support.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Help Center\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Explore help topics for everything LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format,compress\",\"id\":\"agpTiaYofJOwHTu3\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"b1c38405-1e18-4080-81ee-a86756bec156\",\"url\":\"https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Request support\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Reach out to us for direct answers to your questions.\",\"spans\":[],\"direction\":\"ltr\"}]}],\"resources_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format,compress\",\"id\":\"agpSVKYofJOwHTuo\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"79ea2804-386d-45ba-ae92-9de4e6a20aa2\",\"url\":\"https://launchdarkly.com/docs/home\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Docs home\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format,compress\",\"id\":\"agpSVaYofJOwHTup\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"d55987b1-30ac-4d93-907a-c50f827814d5\",\"url\":\"https://launchdarkly.com/docs/home/getting-started\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format,compress\",\"id\":\"agpSUqYofJOwHTum\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"f3e899b1-5149-4b7f-a205-8d8be0d0d0ca\",\"url\":\"https://launchdarkly.com/docs/home/agentcontrol/quickstart\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format,compress\",\"id\":\"agpSU6YofJOwHTun\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"98e0f384-0d91-4ddc-b989-908d24e47a4d\",\"url\":\"https://launchdarkly.com/docs/api/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"API docs\",\"spans\":[],\"direction\":\"ltr\"}]}],\"workflow_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format,compress\",\"id\":\"agpSZqYofJOwHTut\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"daebf9c5-8c24-4a14-9df2-0a7f80d7dfce\",\"url\":\"https://launchdarkly.com/changelog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product Updates\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format,compress\",\"id\":\"agpSZaYofJOwHTus\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"4a2ede12-b83e-4114-bbc3-4a738b3d8ccb\",\"url\":\"https://launchdarkly.com/sample-size-calculator/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Power analysis calculator\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format,compress\",\"id\":\"agpSZKYofJOwHTur\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"0eb1c344-46c1-466a-bc84-f3bb4c46290b\",\"url\":\"https://launchdarkly.com/docs/blog\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Flagship engineering blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format,compress\",\"id\":\"agpSY6YofJOwHTuq\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"84663d21-e4f8-4631-81cd-6da440a8b828\",\"url\":\"https://launchdarkly.com/community/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Community\",\"spans\":[],\"direction\":\"ltr\"}]}],\"banner_group\":[{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Solutions\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo now\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"bdb970f8-f1f4-424b-ae6b-5160b38903a2\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Resources\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4d1ad24c-3879-42e8-86de-2ab76c2778ad\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Platform\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe \u0026 control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"35310a7f-4223-4c71-b058-f0f99ba04936\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":178,\"height\":120},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/abRT8lxvIZEnjqhK_developer-tab-free-trial.png?auto=format,compress\",\"id\":\"abRT8lxvIZEnjqhK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Developers\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Take control of your AI at runtime.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"Control releases, experiments, and AI behavior in prod.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Free trial\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4a0a8a27-41ee-4993-8274-dab982a68d7d\",\"url\":\"https://app.launchdarkly.com/signup\"}}],\"new_products_group\":[{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format,compress\",\"id\":\"agpUVqYofJOwHTu-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agTAhBIAACEAWwQ2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ship-confidently-with-automatic-recovery-and-continuous-improvement-built-in.\",\"first_publication_date\":\"2026-05-13T18:19:33+0000\",\"last_publication_date\":\"2026-05-19T05:42:39+0000\",\"uid\":\"platform.code-control\",\"url\":\"/platform.code-control/\",\"link_type\":\"Document\",\"key\":\"31f8582d-1543-426b-bfe9-b2e3aa405ab6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"CodeControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Ship confidently, with automated control built in.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format,compress\",\"id\":\"agpUVaYofJOwHTu9\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agSf7RIAAI1IWtRB\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"one-place-to-control-agent-behavior.\",\"first_publication_date\":\"2026-05-13T16:04:01+0000\",\"last_publication_date\":\"2026-06-01T17:57:35+0000\",\"uid\":\"platform.agent-control\",\"url\":\"/platform.agent-control/\",\"link_type\":\"Document\",\"key\":\"a6029978-2730-4f8c-aa21-9c15c2e2fbff\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"One place to keep your agent behavior under control.\",\"spans\":[],\"direction\":\"ltr\"}]}]}},\"showBanner\":true,\"noNav\":\"$undefined\",\"addRiskMeterLogo\":\"$undefined\",\"hideLinks\":\"$undefined\",\"useSnowflakeHeader\":\"$undefined\",\"EoDNav\":\"$undefined\",\"useAiTheme\":\"$undefined\",\"isHomepage\":\"$undefined\",\"useRefreshDesign\":\"$undefined\",\"useWhiteLogo\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"36:I[80622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"$L2a\",null,{\"document\":{\"id\":\"X5iWWREAAB0AriB-\",\"uid\":\"the-time-our-provider-screwed-us\",\"url\":\"/blog/the-time-our-provider-screwed-us/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22X5iWWREAAB0AriB-%22%29+%5D%5D\",\"tags\":[\"Security\",\"Test In Production\"],\"first_publication_date\":\"2020-11-30T05:57:45+0000\",\"last_publication_date\":\"2021-01-29T03:37:36+0000\",\"slugs\":[\"the-time-our-provider-screwed-us\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":null,\"title\":[{\"type\":\"heading1\",\"text\":\"The Time Our Provider Screwed Us\",\"spans\":[]}],\"author\":{\"id\":\"X2uhoxEAAGj1rnPl\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"kim-harrison\",\"first_publication_date\":\"2020-09-23T19:27:36+0000\",\"last_publication_date\":\"2020-09-23T19:27:36+0000\",\"uid\":\"kimh\",\"url\":\"/blog/author/kimh/\",\"data\":{\"author_name\":[{\"type\":\"heading1\",\"text\":\"Kim Harrison\",\"spans\":[]}],\"uid\":\"kimh\",\"author_image\":{\"dimensions\":{\"width\":2000,\"height\":2000},\"alt\":\"Kim Harrison\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/4e587f76-fe2b-4228-bfcf-8d4f2208836f_kimHarrison.jpeg?auto=compress,format\u0026rect=0,0,96,96\u0026w=2000\u0026h=2000\",\"id\":\"X2uhmhEAAGj1rnO6\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":20.833333333333332,\"background\":\"#fff\"}},\"author_bio\":[{\"type\":\"paragraph\",\"text\":\"Kim is a writer and editor. She’s pretty excited about the technology that LaunchDarkly is building and sharing that story with the community. Before LaunchDarkly, Kim did marketing for other SaaS companies, like Intuit and Pentaho. She earned her BA in sociology from UC Berkeley.\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"a1e80b28-1ee3-4165-9e8e-c1fd0889f392\",\"isBroken\":false},\"timestamp\":\"2018-11-13T00:00:00+0000\",\"additional_authors\":[],\"categories\":[{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"3e846ae3-66d2-40b2-ba74-719ee3c08c80\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]}],\"exclude_recent\":null,\"hide_date\":null,\"enable_table_of_content\":null,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1060},\"alt\":\"The Time Our Provider Screwed Us\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress,format\u0026rect=0,0,1113,590\u0026w=2000\u0026h=1060\",\"id\":\"X5iWgxEAAB0AriMk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1.7969452142715454,\"background\":\"transparent\"}},\"related_posts\":[],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"In October we cohosted a special Test in Production session with Honeycomb.io. Since our monthly session fell one night before Halloween, we decided to invite speakers to share their scariest stories of operational outages and other horrors. Though stories of epic failure can be hard to hear, they are invaluable learning experiences.\",\"spans\":[{\"start\":65,\"end\":77,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://honeycomb.io/\"}}]},{\"type\":\"paragraph\",\"text\":\"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. As a result of Adobe getting hacked, Mongo HQ was compromised, and as a customer, CircleCI was also affected. At one point the team decided they had to completely shut down their service, and no one had any idea how that would turn out.\",\"spans\":[{\"start\":35,\"end\":39,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://darklang.com\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$236f1c01-968d-45b4-bd51-7b21b7685b37\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“So it started with a missing IAM key. Now an IAM key is an AWS identity and access management key. And those aren't things you lose. You don't leave them in your door; they're not physical keys, and so that fact that one of our AWS keys is missing is perhaps a cause for alarm.” - Paul Biggar, CTO and Co-founder of Dark\",\"spans\":[]}]},\"items\":[{}],\"id\":\"simple_quote$b500db04-73a4-4af7-bf7c-788fc23c30d4\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Watch the video below to hear how Paul's team handled this event. Learn how they got through the incident with sage advice around transparency from the “Master of Disaster”, Jesse Robbins. If you're interested in joining us at a future Meetup, you can sign up here.\",\"spans\":[{\"start\":252,\"end\":264,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.meetup.com/Test-in-Production/\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$f42227fb-4b5d-4e98-aee6-88390c404396\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"video_type\":null,\"youtube_id\":[{\"type\":\"paragraph\",\"text\":\"uDi3zqb3gAA\",\"spans\":[]}]},\"items\":[{}],\"id\":\"youtube_video$1fe3d569-0861-4599-a3db-e44bee55a98f\",\"slice_type\":\"youtube_video\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"TRANSCRIPT\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Paul Biggar: So it started with a missing IAM key. Now an IAM key is an AWS identity and access management key. And those aren't things you lose. You don't leave them in your door; they're not physical keys, and so that fact that one of our AWS keys is missing is perhaps a cause for alarm.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Let me back up a little bit and tell you a little bit about context here. My name's Paul Biggar, I'm the CTO of a company called Dark. Dark, darklang.com, makes it easier to code. Our goal is making it a 100 times easier to code. We are a programming language, an editor, and an infrastructure that attempts to take all of the accidental complexity from coding. But the \\\"we\\\" in this story is CircleCI. I was the CEO and founder of CircleCI, and five years ago when this happened, I was in charge. I should point out that current CEO of CircleCI would like me to point that I do not work there, I do not speak for CircleCI, and I'm not a company representative. Bear that in mind.\",\"spans\":[{\"start\":141,\"end\":153,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://darklang.com/\"}}]},{\"type\":\"paragraph\",\"text\":\"Five years ago, I'm in this building. CircleCI is a Heavybit company. We were two floors up ... when we had the almost company-ending event, the scary event of our first major, and our biggest, security incident. And it all started with a missing IAM key. We looked for all the places the IAM key could have gone. There was no scripts running, there's ... No one got drunk and went to the dashboard and deleted it, so we treated this, as you might ... This is a fully-fledged security incident. This is a scary moment. So we took every single key that we had, every single vendor that we used, and we recycled them. Our standard security policy. And it takes about 24 hours to do that; there's a lot of keys. And we're looking for how could this have gone wrong?\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Coincidentally, we got an email from our hosted database provider, Mongo HQ, saying, \\\"Oh, we've had a security incident. But don't worry, you weren't affected.\\\" It's Tuesday at two p.m. We've been looking since Monday, and we think that maybe there's a bit of a coincidence here, that we got this email. And so we got on the phone with them, and this is five years ago, I don't remember all the details, so I'm filling in the narrative a bit. So let's say we got on the phone with them, and they told us that, \\\"Oh, actually you were affected, and your database was accessed by the attackers two days ago.\\\"\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"It's been two days, and we saw some other blogs that came out, people reporting their security incidents; Buffer was affected, Intercom was affected, and we have a lot of important data in our database, as do you all. We had user accounts with things like build logs and notifications and things that aren't that important. CircleCI makes continuous integration, and continuous delivery. We run your builds, so we have all the things that we need to run your builds such as the important keys to run your deploys. We have Heroku, access keys and SSH keys for all of our customers. We had 1,000 customers at this point. We have access tokens, and SSH keys for GitHub, so access to all of your repositories. And things like AWS and Stripe, and other keys that you might just have as part of your build.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"So the amount of data we have is terrifying, the amount of the access we have. And what's really one of the scariest things about this for me, is things that were leveraged to get here. So Mongo HQ got compromised, and so we got compromised. But Mongo HQ got compromised because Adobe got compromised. An executive from Mongo HQ was using the same password that was in the Adobe password breach. If there's one lesson from this, is to go home and make sure that you're not using the same password for any one of your work accounts as any other account at all, and make sure that everyone else in your company is also not doing that.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"But Adobe got hacked, so Mongo HQ got hacked, so Circle got hacked, and then what's next? So we're terrified of this. We have very important customers; we're ... One example that's publicly known is that Stripe was our customer at the time. That's a lot of payment stuff that goes beyond that. So we made a pretty quick decision. That's five p.m. we got off the phone, and we just turned everything off. We turned off every one of our machines, we turned off our builds ... I don't even remember if we let the running builds finish, I think we just turned every machine off.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"And that was possibly a company-ending move, possibly a career-ending move. I had no idea at the time how this was going to turn out. So we turned it off. Now, we know we need to tell customers, we know we need to bring it back up, we know we need to do a security review, make sure everything's okay. This isn't exactly our first rodeo, but it's one of our first rodeos, and this is a bigger rodeo than any of us had ever been in for. We didn't really know how to deal with it.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"And in probably the largest bit of luck I'd ever had in my entire life, there was a guy in this building, in Heavybit at the time, he's one of the Heavybit partners, he's a guy called Jesse Robbins. And Jesse Robbins is the CEO of Orion. He was previously the CEO of Chef, and before that he had the title ... I'm not sure if it's an actual title or just a nickname, but it was Master of Disaster at a company you might have heard of called Amazon.com. And he had sat through and been in charge of and all that sort of thing, 35 separate security incidents. This was literally the most qualified human being on the planet to help us solve our problem.\",\"spans\":[{\"start\":441,\"end\":451,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://amazon.com/\"}}]},{\"type\":\"paragraph\",\"text\":\"So we got very lucky, and here's what Jesse told us to do. This is ... He literally went on the white board ... I'm not expecting you to read this; I'm going to tell you what it says ... And he told us what to do, so on the right, we see a circle. That is a clock face. And every 15 minutes, I'm to check in with the team and see what the team has discovered. And every 30 minutes, at zero past the hour and at 30 past the hour, we are to update customers. Great, I know what to do.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"On the left, Jesse pointed out that we needed an incident commander. That's me, Paul. And this is very good, because I was a big proponent, I think lots of were around the 2013 mark, of flat organizational structures, and so I hadn't really got a handle of this whole being in charge thing. The fact that someone else came in and said, \\\"No, no, no, you are in charge\\\": extremely useful. And he also laid out the order of our priorities. Number one priority; safety of customers. Number two priority: communicate with customers. Number three priority: recovery of service.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"I think a reasonable person could have put those in a different order, especially under the pressure and time constraints of the potential company-ending situation. So I was very happy to have those in order. If this is ever going to happen to you, I'd memorize them, maybe put it on an index card in your pocket, in case this ever happens.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The last thing he said is to make sure that we log everything, that we go slow, and that we code review and communicate. His point there is that if we're going to bring our site back up, if we're going to do all the things that we need to do in order to save our business and do the right thing for our customers and all that, we can't be making quick, bad decisions. You can't just upload whatever code is on your computer now, because I have to do this now, I have to fix it. So we set up a Slack channel ... This was pre-Slack; it was a HipChat channel, where all of our communications went. Every single communication that we had about this went in that chatroom. Which came in extremely useful the next day, when I had to write a blog post that detailed exactly what had happened and all the steps that we did to fix it and remediate this, and I had an exact time stamps of all the things that had happened.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"So one of the things that we had to do, was we had of these customer keys. What are we going to do with all these AWS keys, the GitHub keys, the Heroku keys? What we did, was we contacted those companies, we contacted GitHub, and we said, \\\"GitHub, we have a security incident, an active, ongoing security incident, and all of these keys are potentially compromised.\\\" And there's a fairly obvious thing that we wanted to do here, which is delete all the keys. But they're not our keys. They're our customers' keys, and we don't know if they're using them for other stuff. They shouldn't be using them for other stuff, but people are people. So they're probably using them for other stuff. We don't really have any moral authority to delete all the keys, but it's definitely the right thing for our customers that these keys be deleted.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Fortunately, GitHub and Heroku and AWS and so on took this off of our hands. We sent them the keys, and they deleted them. Takes an hour or two delete all those keys. We were a couple of hours in, and we had most of the security things dealt with, we'd cycled all of our own keys, we'd checked our own things for intrusion logs, and then of course it's time to start the system back up. All the meanwhile, basically what I'm doing the whole time is emailing customers who have emailed me and replying to customers and tweeting things, and generally giving people an update throughout the night.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"But it's night at the moment, this happened literally five years ago tonight, and it's the middle of the night, and most of our customers don't really work in the middle of the night. Most of our customers were in San Francisco or in this time zone at least. We had some European customers who were starting to complain, but we're a couple of hours from the bulk of our people coming back up, and we have not turned on the system in two years. We had turned the whole system on two years ago, and then we turned it all off, and I don't know. We spun it up, and we spun it down, and we scaled it, but we had not restarted it ever. I don't know how they did that. Sorry. But it happened.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Came back up, and the next day we wrote a very transparent blog post. The whole time, we were as transparent as possible. Our customers are developers. Developers like transparency. And we talked to a couple of PR people who dealt with incident response and that sort of thing, and they had advised us to be vague and to avoid legal liability, and all that sort of thing. We decided not to do that; we decided to lay out everything, exact time stamps for when something happened, just do our best, and be as transparent as humanly possible with our customers.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The outcome was we lost almost no customers. We lost two large customers, we lost ,000 in MRR, which was less than one percent of what we were making ... On the other hand, Mongo HQ, which had not told us the right things, and not told their other customers the right things, lost I'm told ... I don't know this from an official source, but I heard they lost half their revenue. So the distinction between the ... doing transparency well, and doing transparency badly.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The other thing that happened is of course companies fundraise, and they raise money from people, and they have investors. And we were two months from fundraising, and this large stain on our blog, where we posted the incident, was a pretty scary thing. And even though we got through the incident without much loss, there still could have been two months from having to shut the company down because we were out of cash. But fortunately, the investors talked to all the customers ... not all of them, but they talked to customers. And they looked at our blog, and they looked at our fairly professional response to the whole thing, and they decided to give us a lot of money to keep the thing going.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"So that's the scary story of Halloween five years ago, at the time we nearly lost our entire company. And it all started with a missing IAM key. Thank you.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Yes, our hosted database provider, which we did not have access to, told us that it was fixed. It's not the favorite way that we would certify to ourselves that we were no longer compromised, but we did not have much choice in the matter.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Yes, definitely. So one of them, and I talked about this in the write-up, and it came up at the time, and I had it in the speech but I somehow forgot to get through it, is that we were not storing all those keys encrypted at rest. So we should have had all of them ... It would have to be symmetrically encrypted, but if you accessed our database, you should not have been able to access those things, and that was a big mistake that we made at the time, and we were too old to be making that mistake. I think we were two years old at the time, and that was maybe a year and a half too long to really have that problem, and possibly even longer than that.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The first thing is we went through this, and we learned how it's supposed to be done, and that's extremely valuable. So the thing I'm going to do if this happens again, is I'm going to do the exact script that we did before. I think one thing as well, is that there's now more information about how this is done. There's a book, there's the SRE book, for example, that goes into detail about incident response and that kind of thing, so there's that sort of thing, but there's ... I think basically, the one takeaway that I have for this that's going to affect everything that I do in the future, is making sure that we have utmost transparency, and also to encrypt our keys at rest.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Thank you.\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$153301fd-1b08-4266-a0a9-065d1caf622a\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"The Time Our Provider Screwed Us\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. \",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{}}}}],\"$L33\",\"$L34\",\"$L35\"]\n"])</script><script>self.__next_f.push([1,"1c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"The Time Our Provider Screwed Us | LaunchDarkly\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. \"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"4\",{\"name\":\"generator\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"5\",{\"name\":\"referrer\",\"content\":\"origin-when-cross-origin\"}],[\"$\",\"meta\",\"6\",{\"name\":\"creator\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"7\",{\"name\":\"publisher\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"8\",{\"name\":\"robots\",\"content\":\"index\"}],[\"$\",\"meta\",\"9\",{\"name\":\"googlebot\",\"content\":\"index\"}],[\"$\",\"link\",\"10\",{\"rel\":\"canonical\",\"href\":\"https://launchdarkly.com/blog/the-time-our-provider-screwed-us/\"}],[\"$\",\"meta\",\"11\",{\"name\":\"format-detection\",\"content\":\"telephone=no, address=no, email=no\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:title\",\"content\":\"The Time Our Provider Screwed Us | LaunchDarkly\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:description\",\"content\":\"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. \"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:url\",\"content\":\"https://launchdarkly.com/blog/the-time-our-provider-screwed-us/\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:site_name\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image\",\"content\":\"https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:alt\",\"content\":\"LaunchDarkly - Feature management platform\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:site\",\"content\":\"@LaunchDarkly\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:title\",\"content\":\"The Time Our Provider Screwed Us | LaunchDarkly\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:description\",\"content\":\"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. \"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:alt\",\"content\":\"LaunchDarkly - Feature management platform\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"96x96\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/icon.png?8354b0c15ee5b065\",\"type\":\"image/png\",\"sizes\":\"96x96\"}],[\"$\",\"link\",\"32\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?8354b0c15ee5b065\",\"type\":\"image/png\",\"sizes\":\"96x96\"}],[\"$\",\"$L36\",\"33\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"21:\"$1c:metadata\"\n"])</script><script>self.__next_f.push([1,"38:I[61689,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"39:I[36552,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"PreloadChunks\"]\n"])</script><script>self.__next_f.push([1,"3a:I[47358,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"34:[\"$\",\"div\",null,{\"className\":\"styles-module__ZkjjmG__body styles-module__ZkjjmG__isRefreshDesign\",\"children\":[\"$\",\"main\",null,{\"className\":\"styles-module__ZkjjmG__main \",\"children\":[[\"$\",\"section\",null,{\"className\":\"styles-module__NFwUga__newSection styles-module__NFwUga__bgLight\",\"id\":\"$undefined\",\"data-name\":\"$undefined\",\"data-jump-id\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__NFwUga__contentContainer \",\"style\":\"$undefined\",\"children\":[\"$L37\",[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__blogContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__content\",\"children\":[[\"$\",\"p\",null,{\"className\":\"styles-module__J0n02W__variant_textXsmallCaps styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_medium\",\"children\":\"Nov 13, 2018\"}],[\"$\",\"h1\",null,{\"className\":\"styles-module__J0n02W__variant_h3 styles-module__J0n02W__weight_semibold styles-module__HXqOTa__blogTitle\",\"children\":\"The Time Our Provider Screwed Us\"}],\"\",[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__authorContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__5zAopa__author \",\"children\":[[\"$\",\"$L2e\",null,{\"href\":\"/blog/author/kimh\",\"className\":\"styles-module__5zAopa__authorImage\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image post-details-author-image\",\"children\":[\"$\",\"$L2d\",null,{\"field\":{\"dimensions\":\"$5:0:props:document:data:author:data:author_image:dimensions\",\"alt\":\"Kim Harrison\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/4e587f76-fe2b-4228-bfcf-8d4f2208836f_kimHarrison.jpeg?auto=compress,format\u0026rect=0,0,96,96\u0026w=2000\u0026h=2000\",\"id\":\"X2uhmhEAAGj1rnO6\",\"edit\":\"$5:0:props:document:data:author:data:author_image:edit\"},\"className\":\"styles-module__nv1SBG__image\",\"quality\":80,\"sizes\":\"$undefined\",\"alt\":\"$undefined\",\"fallbackAlt\":\"\",\"priority\":false,\"placeholder\":\"$undefined\",\"fill\":\"$undefined\",\"loading\":\"lazy\"}]}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__5zAopa__authorDetails\",\"children\":[[\"$\",\"$L2e\",null,{\"href\":\"/blog/author/kimh\",\"className\":\"styles-module__5zAopa__authorName\",\"children\":\"Kim Harrison\"}],[\"$\",\"div\",null,{\"className\":\"styles-module__5zAopa__authorJobTitle\",\"children\":\"LaunchDarkly\"}]]}]]}],[]]}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image styles-module__HXqOTa__featuredImage\",\"children\":[\"$\",\"$L2d\",null,{\"field\":{\"dimensions\":\"$5:0:props:document:data:featured_image:dimensions\",\"alt\":\"The Time Our Provider Screwed Us\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/MGE1MDNhODUtMDZmNS00NmVkLWJiZjktNWQ0NzVkNDEyZTg3_paul-bigger-tip-header.png?auto=compress,format\u0026rect=0,0,1113,590\u0026w=2000\u0026h=1060\",\"id\":\"X5iWgxEAAB0AriMk\",\"edit\":\"$5:0:props:document:data:featured_image:edit\"},\"className\":\"styles-module__nv1SBG__image\",\"quality\":80,\"sizes\":\"$undefined\",\"alt\":\"$undefined\",\"fallbackAlt\":\"\",\"priority\":false,\"placeholder\":\"$undefined\",\"fill\":\"$undefined\",\"loading\":\"eager\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__staticBar\",\"children\":[\"$\",\"$L38\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__blogMainContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__body\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__blogContentWrapper\",\"children\":[\"$\",\"article\",null,{\"className\":\"blog-post-main-content\",\"children\":[[[\"$\",\"div\",\"wysiwyg$236f1c01-968d-45b4-bd51-7b21b7685b37\",{\"data-ld-slice-index\":0,\"data-ld-slice-type\":\"wysiwyg\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L39\",null,{\"moduleIds\":[\"slicesBlog/index.ts -\u003e ./Wysiwyg\"]}],[\"$\",\"$L3a\",null,{\"data\":\"$5:0:props:document:data:body:0\",\"extraData\":\"$undefined\",\"params\":{\"uid\":\"the-time-our-provider-screwed-us\"},\"searchParams\":{},\"id\":\"wysiwyg$236f1c01-968d-45b4-bd51-7b21b7685b37\",\"type\":\"Wysiwyg\",\"index\":0,\"noContainer\":true}]]}],[\"$\",\"div\",\"simple_quote$b500db04-73a4-4af7-bf7c-788fc23c30d4\",{\"data-ld-slice-index\":1,\"data-ld-slice-type\":\"simple_quote\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L39\",null,{\"moduleIds\":[\"slicesBlog/index.ts -\u003e ./SimpleQuote\"]}],[\"$\",\"section\",null,{\"data-jump-id\":\"$undefined\",\"data-name\":\"$undefined\",\"data-theme\":\"$undefined\",\"className\":\"style-module__REJINa__section style-module__REJINa__spacing_bottom_none style-module__REJINa__spacing_top_none styles-module__6nQgMq__simpleQuote\",\"children\":\"$L3b\"}]]}],\"$L3c\",\"$L3d\",\"$L3e\"],\"$L3f\"]}]}]}],\"$L40\"]}],\"$L41\"]}],\"$L42\",\"$L43\",\"$L44\"]}]}],\"$L45\"]}]}]\n"])</script><script>self.__next_f.push([1,"47:I[13428,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"48:I[36815,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"49:I[16367,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"4a:I[89179,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"4b:I[99934,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"4d:I[637,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"46:T5c5,"])</script><script>self.__next_f.push([1,"M60 33V39.2124H58.099C56.5677 39.2124 55.3531 39.4513 54.4554 39.9292C53.5578 40.4071 52.8977 41.2301 52.4752 42.3982C52.0528 43.5133 51.8416 45.0266 51.8416 46.9381V52.8319L49.5446 48.3717C49.9142 48.1062 50.4422 47.8938 51.1287 47.7345C51.8152 47.5221 52.5281 47.4159 53.2673 47.4159C55.0099 47.4159 56.462 47.9735 57.6238 49.0885C58.7855 50.1504 59.3663 51.6372 59.3663 53.5487C59.3663 55.354 58.8119 56.8938 57.703 58.1681C56.5941 59.3894 55.0099 60 52.9505 60C51.6304 60 50.3894 59.708 49.2277 59.1239C48.1188 58.4867 47.2211 57.4248 46.5347 55.9381C45.8482 54.3982 45.5049 52.3009 45.5049 49.646V48.292C45.5049 44.5221 46.0066 41.5221 47.0099 39.292C48.066 37.0619 49.571 35.469 51.5248 34.5133C53.4785 33.5044 55.8548 33 58.6535 33H60ZM42.495 33V39.2124H40.5941C39.0627 39.2124 37.8482 39.4513 36.9505 39.9292C36.0528 40.4071 35.3927 41.2301 34.9703 42.3982C34.5479 43.5133 34.3366 45.0266 34.3366 46.9381V52.8319L32.0396 48.3717C32.4092 48.1062 32.9373 47.8938 33.6238 47.7345C34.3102 47.5221 35.0231 47.4159 35.7624 47.4159C37.505 47.4159 38.9571 47.9735 40.1188 49.0885C41.2805 50.1504 41.8614 51.6372 41.8614 53.5487C41.8614 55.354 41.3069 56.8938 40.198 58.1681C39.0891 59.3894 37.505 60 35.4455 60C34.1254 60 32.8845 59.708 31.7228 59.1239C30.6139 58.4867 29.7162 57.4248 29.0297 55.9381C28.3432 54.3982 28 52.3009 28 49.646V48.292C28 44.5221 28.5017 41.5221 29.505 39.292C30.5611 37.0619 32.066 35.469 34.0198 34.5133C35.9736 33.5044 38.3498 33 41.1485 33H42.495Z"])</script><script>self.__next_f.push([1,"3b:[\"$\",\"figure\",null,{\"className\":\"styles-module__n0QSmq__quoteFigure\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"styles-module__n0QSmq__badge\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 72 72\",\"fill\":\"none\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"rect\",null,{\"width\":\"72\",\"height\":\"72\",\"rx\":\"8\",\"fill\":\"currentColor\"}],[\"$\",\"path\",null,{\"d\":\"$46\",\"fill\":\"#F8F8F8\"}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__n0QSmq__body\",\"children\":[[\"$\",\"blockquote\",null,{\"className\":\"styles-module__n0QSmq__content styles-module__n0QSmq__injectQuotes\",\"children\":[\"$\",\"div\",null,{\"className\":\"$undefined\",\"children\":[[\"$\",\"p\",\"372\",{\"className\":\"styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md\",\"children\":[[\"$\",\"$1\",\".$371\",{\"children\":[[\"$\",\"$1\",\".$.$0__line\",{\"children\":[[\"So it started with a missing IAM key. Now an IAM key is an AWS identity and access management key. And those aren't things you lose. You don't leave them in your door; they're not physical keys, and so that fact that one of our AWS keys is missing is perhaps a cause for alarm.\"]]}]]}]]}]]}]}],[\"$\",\"figcaption\",null,{\"className\":\"styles-module__n0QSmq__attribution\",\"children\":\"Paul Biggar, CTO and Co-founder of Dark\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"3c:[\"$\",\"div\",\"wysiwyg$f42227fb-4b5d-4e98-aee6-88390c404396\",{\"data-ld-slice-index\":2,\"data-ld-slice-type\":\"wysiwyg\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L39\",null,{\"moduleIds\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:0:props:moduleIds\"}],[\"$\",\"$L3a\",null,{\"data\":\"$5:0:props:document:data:body:2\",\"extraData\":\"$undefined\",\"params\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:params\",\"searchParams\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:searchParams\",\"id\":\"wysiwyg$f42227fb-4b5d-4e98-aee6-88390c404396\",\"type\":\"Wysiwyg\",\"index\":2,\"noContainer\":true}]]}]\n"])</script><script>self.__next_f.push([1,"3d:[\"$\",\"div\",\"youtube_video$1fe3d569-0861-4599-a3db-e44bee55a98f\",{\"data-ld-slice-index\":3,\"data-ld-slice-type\":\"youtube_video\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L39\",null,{\"moduleIds\":[\"slicesBlog/index.ts -\u003e ./YoutubeVideo\"]}],[\"$\",\"$L47\",null,{\"data\":\"$5:0:props:document:data:body:3\",\"extraData\":\"$undefined\",\"params\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:params\",\"searchParams\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:searchParams\",\"id\":\"youtube_video$1fe3d569-0861-4599-a3db-e44bee55a98f\",\"type\":\"YoutubeVideo\",\"index\":3,\"noContainer\":true}]]}]\n"])</script><script>self.__next_f.push([1,"3e:[\"$\",\"div\",\"wysiwyg$153301fd-1b08-4266-a0a9-065d1caf622a\",{\"data-ld-slice-index\":4,\"data-ld-slice-type\":\"wysiwyg\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L39\",null,{\"moduleIds\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:0:props:moduleIds\"}],[\"$\",\"$L3a\",null,{\"data\":\"$5:0:props:document:data:body:4\",\"extraData\":\"$undefined\",\"params\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:params\",\"searchParams\":\"$34:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:searchParams\",\"id\":\"wysiwyg$153301fd-1b08-4266-a0a9-065d1caf622a\",\"type\":\"Wysiwyg\",\"index\":4,\"noContainer\":true}]]}]\n"])</script><script>self.__next_f.push([1,"3f:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__mobileCta\",\"children\":[\"$\",\"h5\",null,{\"className\":\"styles-module__HXqOTa__footerTitle\",\"children\":\"Like what you read?\"}]}]\n40:[\"$\",\"section\",null,{\"className\":\"styles-module__o_kpTq__sidebar\",\"children\":[[\"$\",\"$L48\",null,{\"data\":\"$5:0:props:document:data:body\"}],false,[[\"$\",\"div\",null,{\"className\":\"styles-module__o_kpTq__sidebarNewsletter\",\"children\":[\"$\",\"$L49\",null,{\"sidebarVersion\":true}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__o_kpTq__shareLinks\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__o_kpTq__shareContainer\",\"children\":[\"$\",\"$L4a\",null,{\"title\":\"The Time Our Provider Screwed Us\",\"showIcons\":true}]}]}]]]}]\n4c:T102b,"])</script><script>self.__next_f.push([1,"const express = require(\"express\");\nconst path = require(\"path\");\nconst serveStatic = require(\"serve-static\");\nconst bodyParser = require(\"body-parser\");\nrequire(\"dotenv\").config();\nconst app = express();\n\n\nconst twilio = require(\"twilio\");\n\n\n// add the following line to import the LaunchDarkly Server SDK\nconst LaunchDarkly = require(\"@launchdarkly/node-server-sdk\");\n\n\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\nconst twilioClient = twilio(accountSid, authToken);\nconst verifyServiceSid = process.env.VERIFY_SERVICE_SID;\n\n\nasync function createSMSVerification(phoneNumber) {\n const verification = await twilioClient.verify.v2\n .services(verifyServiceSid)\n .verifications.create({\n channel: \"sms\",\n to: phoneNumber,\n });\n\n\n console.log(\"Twilio verification created:\", verification.sid);\n}\n\n\n// add the following line to initialize the LaunchDarkly client\nconst ldClient = LaunchDarkly.init(process.env.LAUNCHDARKLY_SDK_KEY);\n\n\napp.use(serveStatic(path.join(__dirname, \"public\")));\napp.use(bodyParser.urlencoded({ extended: false }));\n\n\nasync function formatPhoneNumber(phoneNumber) {\n try {\n const lookup = await twilioClient.lookups.v2\n .phoneNumbers(phoneNumber)\n .fetch();\n return lookup.phoneNumber;\n } catch (error) {\n console.error(\"Error formatting phone number:\", error);\n return phoneNumber; // Return original number if lookup fails\n }\n}\n\n\nasync function checkVerificationCode(phoneNumber, verificationCode) {\n try {\n const verificationCheck = await twilioClient.verify.v2\n .services(verifyServiceSid)\n .verificationChecks.create({\n to: phoneNumber,\n code: verificationCode,\n });\n\n\n console.log(`Verification status: ${verificationCheck.status}`);\n return verificationCheck.status === \"approved\";\n } catch (error) {\n console.error(\"Error checking verification code:\", error);\n return false;\n }\n}\n\n\n// modify this function to add a LaunchDarkly flag evaluation\n// and logic to use the flag to determine whether to show the extra verification step\napp.post(\"/verify\", async (req, res) =\u003e {\n const context = {\n kind: \"user\",\n anonymous: true,\n key: \"anonymous-123\",\n };\n const extraVerification = await ldClient.variation(\n \"extra-verification-new-users\",\n context,\n false\n );\n console.log(\"extraVerification\", extraVerification);\n\n\n if (extraVerification === false) {\n return res.redirect(\"/success.html\");\n }\n const phoneNumber = req.body[\"phone\"];\n // Use Twilio Lookup to format the phone number as E.164\n const e164PhoneNumber = await formatPhoneNumber(phoneNumber);\n await createSMSVerification(e164PhoneNumber);\n // Redirect to the verification form page with the phone number as a query parameter\n // so the user doesn't have to re-enter it\n const encodedPhoneNumber = encodeURIComponent(e164PhoneNumber);\n res.redirect(`/verification-form.html?phone=${encodedPhoneNumber}`);\n});\n\n\napp.post(\"/submit-verification-code\", async (req, res) =\u003e {\n const verificationCode = req.body[\"verification-code\"];\n const phoneNumber = req.body[\"phone\"];\n\n\n if (!phoneNumber || !verificationCode) {\n return res\n .status(400)\n .send(\"Phone number and verification code are required.\");\n }\n\n\n const isVerified = await checkVerificationCode(phoneNumber, verificationCode);\n\n\n if (isVerified) {\n res.redirect(\"/success.html\");\n } else {\n res.status(400).send(\"Invalid verification code. Please try again.\");\n }\n});\n\n\n// Add the waitForInitialization function to ensure the client is ready before starting the server\nconst timeoutInSeconds = 5;\nldClient.waitForInitialization({ timeout: timeoutInSeconds }).then(() =\u003e {\n const port = 3000;\n const server = app.listen(port, function (err) {\n if (err) console.log(\"Error in server setup\");\n console.log(`Server listening on http://localhost:${port}`);\n });\n});\n\n\n// Add the following new function to gracefully close the connection to the LaunchDarkly server.\nprocess.on(\"SIGTERM\", () =\u003e {\n debug(\"SIGTERM signal received: closing HTTP server\");\n ld.close();\n server.close(() =\u003e {\n debug(\"HTTP server closed\");\n ldClient.close();\n });\n});"])</script><script>self.__next_f.push([1,"41:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__relatedContent\",\"children\":[\"$\",\"$L4b\",null,{\"type\":\"blog_post\",\"cards\":[{\"id\":\"Z9nrRBEAACMAk9z9\",\"uid\":\"spring-2025-customer-census\",\"url\":\"/blog/spring-2025-customer-census/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z9nrRBEAACMAk9z9%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2025-03-20T20:22:23+0000\",\"last_publication_date\":\"2025-03-20T20:39:36+0000\",\"slugs\":[\"transforming-software-development-key-findings-from-our-spring-2025-customer-census\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Transforming software development: Key findings from our Spring 2025 Customer Census\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"Z50IJhAAACkAwpYE\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"emily-coleman\",\"first_publication_date\":\"2025-01-31T17:30:54+0000\",\"last_publication_date\":\"2025-01-31T17:30:54+0000\",\"uid\":\"emily-coleman\",\"url\":\"/blog/author/emily-coleman/\",\"link_type\":\"Document\",\"key\":\"f5890eac-c0a4-4a87-a4c1-0c8358418d52\",\"isBroken\":false},\"timestamp\":\"2025-03-20T20:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZYXWnREAACEAzxnZ\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"research-report\",\"first_publication_date\":\"2024-01-03T23:42:03+0000\",\"last_publication_date\":\"2024-01-03T23:42:03+0000\",\"uid\":\"research-report\",\"url\":\"/blog/category/research-report/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Research Report\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b7b68f89-a796-4477-8c6d-107b840f92d2\",\"isBroken\":false}},{\"category\":{\"id\":\"Z5QhcBcAACkATlPb\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"developer-productivity\",\"first_publication_date\":\"2025-01-24T23:25:38+0000\",\"last_publication_date\":\"2025-01-24T23:25:38+0000\",\"uid\":\"developer-productivity\",\"url\":\"/blog/category/developer-productivity/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Developer productivity\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"71eafa95-8ad8-48c3-b170-416a9add1a25\",\"isBroken\":false}},{\"category\":{\"id\":\"Z5Qf9RcAACgATlGk\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"risk-mitigation\",\"first_publication_date\":\"2025-01-24T23:19:22+0000\",\"last_publication_date\":\"2025-01-24T23:19:22+0000\",\"uid\":\"risk-mitigation\",\"url\":\"/blog/category/risk-mitigation/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Risk mitigation\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"07b1acc7-42f2-47cf-ad5d-4f01ad7e341e\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"aa7fd2d3-a795-4b3e-8f47-c51f21df6fce\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b1fd5a63-04de-4c56-8b96-8eb872703670\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"9f12349b-789d-4924-9ce4-407b34178776\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1689},\"alt\":\"Spring 2025 LaunchDarkly customer census\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format,compress\u0026rect=0,0,4000,2252\u0026w=3000\u0026h=1689\",\"id\":\"Z9x1DTiBA97GivdG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"Zypo9REAAB8AyH8i\",\"type\":\"blog_post\",\"tags\":[\"release management\"],\"lang\":\"en-us\",\"slug\":\"release-management-guide-what-it-is--why-it-matters\",\"first_publication_date\":\"2024-11-05T19:34:13+0000\",\"last_publication_date\":\"2026-09-10T22:08:39+0000\",\"uid\":\"release-management-guide\",\"url\":\"/blog/release-management-guide/\",\"link_type\":\"Document\",\"key\":\"a218bf83-04ca-4630-8b30-992ed639b597\",\"isBroken\":false}},{\"post\":{\"id\":\"Z9L6yxIAACAA71k8\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"gentle-deployments-mitigate-risky-releases-at-alayacare\",\"first_publication_date\":\"2025-03-13T16:03:08+0000\",\"last_publication_date\":\"2025-03-13T17:12:00+0000\",\"uid\":\"gentle-deployments-alayacare\",\"url\":\"/blog/gentle-deployments-alayacare/\",\"link_type\":\"Document\",\"key\":\"e98693e8-5670-4551-b485-e3072020dd41\",\"isBroken\":false}},{\"post\":{\"id\":\"ZgMI8REAACIAB6ro\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"5-best-practices-for-getting-started-with-launchdarkly\",\"first_publication_date\":\"2024-03-27T15:59:57+0000\",\"last_publication_date\":\"2025-03-12T22:00:58+0000\",\"uid\":\"5-best-practices-for-getting-started-with-launchdarkly\",\"url\":\"/blog/5-best-practices-for-getting-started-with-launchdarkly/\",\"link_type\":\"Document\",\"key\":\"8d2972c9-5a31-4ba1-8ead-8a9a85da4690\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"In January 2025, we partnered with UserEvidence to ask our users to quantify the impact LaunchDarkly has had on their release process, developer experience, and time and cost savings. The responses we received from users showed how they and their teams use LaunchDarkly to drive tangible results across their business. \",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e1502abb-ecfc-4cb2-86f6-4371a61bb110\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Key highlights customers reported\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Key highlights customers reported:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"24.2% average faster time to market for new features\\nSpeed is everything when it comes to delivering value. With LaunchDarkly, teams can push smaller, safer updates quickly. No more big bang releases every quarter—just quick, iterative releases that get into customers’ hands faster, enabling swifter feedback.\",\"spans\":[{\"start\":0,\"end\":53,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"16% average reduction in downtime\\nUnplanned downtime caused by a buggy software release eats up time, frustrates users, and keeps teams from moving forward. Since adopting LaunchDarkly, users have streamlined deployments and minimized disruption, which means teams spend less time troubleshooting and more time building.\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"8.86% average increase in freed-up developer time\\nDeveloper time is precious, and the opportunity cost is high when they spend time resolving problems instead of building the next great feature. LaunchDarkly users report getting more time back and benefitting from an improved developer experience.\",\"spans\":[{\"start\":0,\"end\":50,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"46% of LaunchDarkly users reduced customer churn by 6% or more\\nCustomer churn due to buggy releases or frustration with long development cycles directly impacts the bottom line. For many organizations, a 6% or higher lift in customer churn can represent millions in retained revenue.\",\"spans\":[{\"start\":0,\"end\":63,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9b0a5694-81ec-4c4c-9b11-bbea3c96149e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Tackling big challenges with LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Tackling big challenges with LaunchDarkly\",\"spans\":[{\"start\":0,\"end\":41,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Every team faces roadblocks, and it’s no different when it comes to software delivery. Long development cycles, production bugs, and limited ability to target and test features to customers were among the top reasons why customers chose LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading5\",\"text\":\"Controlled, faster deployments\",\"spans\":[{\"start\":0,\"end\":30,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The stakes for software deployment can feel impossibly high; do you increase your deployment frequency to meet the constant demands from customers or prioritize maintaining a stable environment? LaunchDarkly allows customers to shift their perspective on deployments, leave the late-night war rooms in the past, and ship new features without bracing for impact. 57% of users say they reduced downtime by at least 11% since the adoption of LaunchDarkly.\",\"spans\":[{\"start\":362,\"end\":452,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$dbc8b6ea-5618-41a8-afc4-2b8a413807a3\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly enables our team to deploy features faster and more safely by allowing us to toggle functionality without redeploying code. It has significantly reduced deployment risk and errors, helping us test in production with feature flags. As a result, we’ve accelerated our release cycles and improved user experience by gradually rolling out changes based on real-time feedback.” – Marti David, Software Engineer, DTN\",\"spans\":[{\"start\":0,\"end\":1,\"type\":\"strong\"},{\"start\":386,\"end\":424,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$d0987acb-6f71-4c81-8362-bbebf3f767ad\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Simplified feature flag management\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"One of the standout features of LaunchDarkly is leaving behind cumbersome feature flag management that contributes to technical debt. Instead, you can get back to developing the features that matter to your organization.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$6303b215-3a1d-434a-8932-1c272668390b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“[LaunchDarkly] has great capabilities, and even if you only need a basic subset of what is on offer, these things are hard to get right and will ultimately cause a lot of distraction from achieving the core goals of the project.” — Software Engineer, enterprise technology company\",\"spans\":[{\"start\":233,\"end\":281,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$8cce876b-b892-4203-ba90-b394134f11a3\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly has helped us manage features in a way that was previously very difficult. It's saved us more than once when we needed to quickly enable a feature without deployment. It's kept us organized as a development team working in parallel with product” – Jay Beaudoin, Application Developer, IDEXX\",\"spans\":[{\"start\":262,\"end\":304,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$4f29a68e-b1d6-47ac-a87d-b19b8d590491\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Experimentation and A/B testing\",\"spans\":[{\"start\":0,\"end\":31,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With LaunchDarkly A/B testing and Experimentation features, teams can test new ideas on a subset of users, gathering insights and data before full rollout. This means fewer wasted resources and a better overall customer experience.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$2b08110f-da84-490e-8977-dd814c32f0ff\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"LaunchDarkly unlocked the ability for us to test in production prior to big releases, experiment with A/B testing, and better control feature flags.” – Lead Project Manager, enterprise hospitality company\",\"spans\":[{\"start\":153,\"end\":205,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$5bcf28d4-a12c-4a5b-9d4b-e3584a090202\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly has been great for our development team. Your feature flag platform not only streamlines our rollouts but also empowers us to experiment and innovate really easily. The intuitive interface and robust functionality have saved us time releasing value to our customers.” – Staff Developer, small business internet software \u0026 services company\",\"spans\":[{\"start\":284,\"end\":352,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$933500a1-8348-4aff-bce6-49fef9c68032\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"The bigger picture of better customer experiences\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"The bigger picture of better customer experiences\",\"spans\":[{\"start\":0,\"end\":49,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The impact of LaunchDarkly is not just faster deployments or fewer bugs—these improvements have a ripple effect on the entire organization.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading5\",\"text\":\"Releases attuned to customer needs\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With feature flags, teams can release updates at the right time for the right users, leading to more tailored experiences and a smoother customer journey.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$b3d33f0f-efcc-4664-af48-a396269d9467\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“I like how easy it is to be able to configure features for a single org or for an affiliation (think group of related orgs.) I can do this (being a non-dev person) super easy and don't have to bug my dev team.” – Jessica Pitzel, Director of Product Management, SportsEngine\",\"spans\":[{\"start\":214,\"end\":274,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$fd8c3aa2-604a-45d2-80ba-ee55062c1cc1\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly allows us to release without worry and to specific customers, which is super helpful for our business! We use it for feature development/testing but also to provision functionality.” – Software Engineer, small business insurance company\",\"spans\":[{\"start\":199,\"end\":250,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$9c908038-3a2b-4050-86d8-5c8e7eb1265c\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Fewer release-related customer support tickets\",\"spans\":[{\"start\":0,\"end\":46,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Faster, safer deployments mean fewer issues slip through the cracks. When features are released with more precision and less risk, customers experience fewer issues and less downtime. Our users reported an average 7.31% reduction in customer support inquiries after implementing LaunchDarkly.\",\"spans\":[{\"start\":184,\"end\":292,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$db835341-7b92-408d-a7b4-bf01e2361c85\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“[LaunchDarkly has] been instrumental in getting deployments out safely, as we can always gate features behind a flag and roll back if needed.” – David Rajec, Software Engineer, TruckSmarter\",\"spans\":[{\"start\":146,\"end\":190,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$c9fc336a-de3b-4a85-a9aa-4f72e160a15d\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Stronger customer retention and satisfaction\",\"spans\":[{\"start\":0,\"end\":44,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"It’s clear that customers are happier with more frequent, more stable releases. Users reported higher customer retention and an average 7.87% reduction in customer churn.\",\"spans\":[{\"start\":80,\"end\":170,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$0313efe1-c53e-42b0-b5aa-ea8239884906\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly impacts our team by allowing us to deploy features to specific users, usually internal testers, before deploying them to everyone on our platform. This has sped up deploy time by 15ish percent since we can deploy without worry and activate features independently.” – Software Engineer, small business diversified consumer services company\",\"spans\":[{\"start\":281,\"end\":352,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$9fe091be-7c11-4340-943d-ab9dfb18d589\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“The best part of LaunchDarkly is the ease in which targeting can be set up on an environment-by-environment basis and the ability to schedule our flag changes to coincide with a release (decoupled), so our team members don't have to flip flag switches at night.” – Senior Software Engineer, large enterprise food \u0026 staples retailing company\",\"spans\":[{\"start\":0,\"end\":1,\"type\":\"strong\"},{\"start\":266,\"end\":341,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$561da766-8459-4eff-8fa6-b56994dbc906\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"With faster feature releases, safer deployments, and enhanced customer experiences, it’s evident that our customers view LaunchDarkly as more than just a feature flagging tool—it’s a catalyst for driving meaningful business outcomes and accelerating transformation.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"About the survey\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly Customer Census was conducted by UserEvidence (userevidence.com) between January 24 and February 14, 2025, using an email invitation distributed to current LaunchDarkly users by LaunchDarkly and UserEvidence.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$096a84db-f772-4801-82e7-a953ed4ce8a0\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Key findings from our Spring 2025 Customer Census\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Discover key insights from our Spring 2025 Customer Census. See what users said about how LaunchDarkly helps them deploy faster, cut downtime, and improve developer productivity.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":\"Spring 2025 LaunchDarkly customer census\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format,compress\",\"id\":\"Z9x1DTiBA97GivdG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZxFSDhEAAB4ADqfn\",\"uid\":\"spam-mitigation-launchdarkly-twilio-verify-expressjs\",\"url\":\"/blog/spam-mitigation-launchdarkly-twilio-verify-expressjs/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZxFSDhEAAB4ADqfn%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2024-10-17T18:50:52+0000\",\"last_publication_date\":\"2024-10-18T21:57:29+0000\",\"slugs\":[\"mitigating-signup-spam-spikes-with-launchdarkly-and-twilio-verify-in-an-expressjs-app\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Mitigating signup spam spikes with LaunchDarkly and Twilio Verify in an ExpressJS app\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"ZuHn-RMAACIAX79d\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"tilde-thurium\",\"first_publication_date\":\"2024-09-11T18:57:08+0000\",\"last_publication_date\":\"2024-09-11T18:57:08+0000\",\"uid\":\"tilde-thurium\",\"url\":\"/blog/author/tilde-thurium/\",\"link_type\":\"Document\",\"key\":\"aa81ab57-f738-49f5-bbd7-423f0fd18fea\",\"isBroken\":false},\"timestamp\":\"2024-10-17T18:05:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"84ed0813-6dd4-434f-980a-5ffd47418b2f\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"031acb8d-cd1f-4db4-a38e-a2d219de83c0\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\" In this tutorial, we’ll build an ExpressJS demo app that has the flexibility to toggle extra verification layers on during spam attacks. \\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This demo combines Twilio Verify, a fraud verification API that can be used across many communications channels, with LaunchDarkly feature flags. Take that, spammers.\",\"spans\":[],\"direction\":\"ltr\"}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1689},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format,compress\u0026rect=0,0,4000,2252\u0026w=3000\u0026h=1689\",\"id\":\"ZxLZuYF3NbkBXux-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Introduction\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Web and mobile applications that allow users to sign up must balance ease of onboarding with signup spam. Often the signup spam comes in waves over a few hours or days, rather than in a constant stream. In this tutorial, we’ll build an ExpressJS demo app that has the flexibility to toggle extra verification layers on during spam attacks. \",\"spans\":[{\"start\":236,\"end\":245,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://expressjs.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nThis demo combines Twilio Verify, a fraud verification API that can be used across many communications channels, with LaunchDarkly feature flags. Take that, spammers.\",\"spans\":[{\"start\":20,\"end\":33,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify\",\"target\":\"_blank\"}},{\"start\":119,\"end\":145,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/guides/flags/creating-flags\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$6b3826f0-9d5d-4fd3-b692-e49d9a463341\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Development configuration and dependencies\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Development configuration and dependencies\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"To complete this tutorial you'll need:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A LaunchDarkly account. Sign up for a free one here\",\"spans\":[{\"start\":2,\"end\":22,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup\",\"target\":\"_blank\"}},{\"start\":24,\"end\":51,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A Twilio account. You can use a free trial account, although some features will show up slightly differently\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://login.twilio.com/u/signup\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A developer environment with git, npm, and Node.js installed\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A cell phone that can receive SMS messages\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$8cbe5bc8-51d3-4b33-af0f-afa2c195d62d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"What is verification?\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"What is verification?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"When a user adds new credentials to their account, that’s verification. Verification can happen during sign-up or when updating an account to add a new phone number or email address.\\n\",\"spans\":[{\"start\":58,\"end\":70,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Verification is different from authentication (although you can use the Verify API for both.) Authentication happens on an ongoing basis during potentially risky interactions, such as:\",\"spans\":[{\"start\":31,\"end\":45,\"type\":\"em\"},{\"start\":47,\"end\":91,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/developer-best-practices\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"when a user logs in to their account \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"high-dollar transactions\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"password reset flows\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"deleting data\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In our verification flow, the user enters their phone number during signup. They will be sent a verification code. Once they receive the code, they enter it into a form on the app to prove that the phone number belongs to them. \\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Although we’re only using SMS here to keep things simple, Twilio Verify supports many other channels such as email and WhatsApp. To learn more about verification, read Twilio’s docs.\",\"spans\":[{\"start\":109,\"end\":114,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/email\",\"target\":\"_blank\"}},{\"start\":119,\"end\":127,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/whatsapp\",\"target\":\"_blank\"}},{\"start\":163,\"end\":181,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This tutorial starts with an example app that includes a signup flow. This app was inspired by my pet rabbit, Hester, who cares deeply about optimizing carrot acquisition processes. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"First we’ll get the example app up and running. Then we’ll add Twilio credentials and test the verification flow. Finally, let’s add a LaunchDarkly feature flag to enable and disable the extra verification step at will.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$f5b1ac06-e886-4d54-8443-500de43d55a2\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Getting started with an ExpressJS and Twilio Verify example application\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Getting started with an ExpressJS and Twilio Verify example application\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Run the following commands in your terminal to clone the repository, install dependencies, and start the server.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$23c29d6b-19f7-4a32-8f0a-216894a7dd36\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"language\":null,\"code_sample\":[{\"type\":\"preformatted\",\"text\":\"git clone https://github.com/annthurium/expressjs-twilio-verify-starter \\ncd expressjs-twilio-verify-starter\\nnpm install\\nnpm start\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"code_block$be45fbbc-8100-4525-8370-829f876560ca\",\"slice_type\":\"code_block\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Open http://localhost:3000/signup.html in a browser and you’ll see this form:\",\"spans\":[{\"start\":5,\"end\":38,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://localhost:3000/signup.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFTGoF3NbkBXsDK_hesters-bunny-mart-signup.png?auto=format,compress\",\"alt\":\"Signup form for \\\"Hester's Bunny Food Mart\\\" that contains a password field, phone number field, and Submit button.\",\"copyright\":null,\"dimensions\":{\"width\":1100,\"height\":744},\"id\":\"ZxFTGoF3NbkBXsDK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$3cc3164e-3305-4577-8981-cf60a4c28728\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"To sign up, the user will input their phone number and a password. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This form isn’t fully plumbed yet. When the full tutorial has been completed, Twilio will send the user a verification code via SMS. On the next page of the form, the user will input that verification code to complete the signup process.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFTcoF3NbkBXsDX_Screenshot2024-10-16at12.45.38PM.png?auto=format,compress\",\"alt\":\"Verification form for Hester's Bunny food mart. It contains an input field for the SMS verification, and a Submit button.\",\"copyright\":null,\"dimensions\":{\"width\":1096,\"height\":522},\"id\":\"ZxFTcoF3NbkBXsDX\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$545a5843-ee5b-4577-99dc-919b9e8a1065\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Note: this demo is front end only. To connect to a proper backend, you’d most likely reach for an authentication SDK like Auth0 or Clerk. Rolling your own security features is a risky choice.\",\"spans\":[{\"start\":122,\"end\":127,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://auth0.com/docs/quickstart/spa\",\"target\":\"_blank\"}},{\"start\":131,\"end\":136,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://clerk.com/docs/quickstarts/overview\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"You can’t actually go through the dummy signup flow until we add Twilio credentials, so let’s tackle that.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$aef27a5d-fa68-4123-a301-8bafcf8aca18\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Creating a Twilio Verify service\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Creating a Twilio Verify service\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Log in to your Twilio account or create a new one.\",\"spans\":[{\"start\":0,\"end\":29,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/login\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Open the env.example file in your editor. Grab your Twilio account SID and auth token from the console. \",\"spans\":[{\"start\":9,\"end\":20,\"type\":\"em\"},{\"start\":52,\"end\":70,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://help.twilio.com/articles/14726256820123-What-is-a-Twilio-Account-SID-and-where-can-I-find-it-\",\"target\":\"_blank\"}},{\"start\":75,\"end\":85,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://help.twilio.com/articles/223136027-Auth-Tokens-and-How-to-Change-Them\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nIf you’re using a free trial account, you’ll find these right in the center of your screen:\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFUkoF3NbkBXsDp_CleanShot2024-10-17at11.29.31-1-.jpeg?auto=format,compress\",\"alt\":\"screenshot of the Twilio Console for a trial account, demonstrating where to copy the Account SID and auth token from.\",\"copyright\":null,\"dimensions\":{\"width\":3044,\"height\":2010},\"id\":\"ZxFUkoF3NbkBXsDp\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$d60c41e2-d622-4c06-8e0d-7633328fdfe1\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Paste these credentials into your .env.example file. Rename the file to .env and save it. This step ensures that you don’t accidentally commit credentials to source control and compromise security.\",\"spans\":[{\"start\":34,\"end\":46,\"type\":\"em\"},{\"start\":72,\"end\":76,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Go to this link to create a new Verify Service so we can configure our verification flow.\",\"spans\":[{\"start\":0,\"end\":46,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://console.twilio.com/us1/develop/verify/services\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFW1IF3NbkBXsFB_create-verify-service-empty-state.png?auto=format,compress\",\"alt\":\"Screenshot of the Twilio console, in an empty state, waiting for Verify services to be created.\",\"copyright\":null,\"dimensions\":{\"width\":2704,\"height\":1362},\"id\":\"ZxFW1IF3NbkBXsFB\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$e23e7b79-37b3-4f87-83df-d10db897c090\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Name your service “launchdarkly-signup-form.” When Twilio sends your users the verification code, it will show them the service name. Select the “SMS” verification channel. Check the box that says “Authorize the use of friendly name” to ensure that you have the right to this name and that it can be used in SMS communication.\",\"spans\":[{\"start\":19,\"end\":43,\"type\":\"em\"},{\"start\":198,\"end\":232,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Optional but recommended: enable Fraud Guard. On the next screen, you’ll see a Verify service SID. Copy and paste that value into your .env file and save it.\",\"spans\":[{\"start\":26,\"end\":44,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/preventing-toll-fraud/sms-fraud-guard\",\"target\":\"_blank\"}},{\"start\":135,\"end\":139,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFXiIF3NbkBXsFV_CleanShot2024-10-17at11.37.52-1-.jpeg?auto=format,compress\",\"alt\":\"Screenshot of Twilio Verify service settings, where the Verify Service SID can be found. \",\"copyright\":null,\"dimensions\":{\"width\":2438,\"height\":1660},\"id\":\"ZxFXiIF3NbkBXsFV\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$4cbc5b39-0890-4544-a239-8b629ca8a7f0\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Open index.js in your code editor. Uncomment line 12 to initialize the Twilio server.\",\"spans\":[{\"start\":5,\"end\":13,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$23d0aca0-564f-49ed-b770-60ec95b3f265\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"language\":\"JavaScript\",\"code_sample\":[{\"type\":\"preformatted\",\"text\":\"const twilioClient = twilio(accountSid, authToken);\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"code_block$2a476959-4c40-4e13-886c-ae9a7b7c0e52\",\"slice_type\":\"code_block\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Testing the SMS verification flow\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Restart the server just in case it didn’t automatically pick up the new variables. Reload http://localhost:3000/signup.html in your browser. Type your cell phone number and a password into the form. Click “Submit.”\",\"spans\":[{\"start\":90,\"end\":123,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://localhost:3000/signup.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"On your cell phone, you should receive a SMS verification code from Twilio: “Your launchdarkly-signup-form verification code is: 12345”. If your Twilio account is in free trial mode, this message will say SAMPLE APP instead of the Verify Service name.\",\"spans\":[{\"start\":77,\"end\":134,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Part of Verify's magic is that you don’t need to provision a phone number—the API automatically handles that for you.\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This app uses Twilio Lookup’s phone number formatting capabilities to gracefully handle imperfectly formatted user input. It also passes the user’s phone number back through to the verification form, so they don’t need to retype it.\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Type the verification code into the form and click “Submit.” You’ll see a confirmation page.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFYBYF3NbkBXsFe_Screenshot2024-10-16at11.34.59AM.png?auto=format,compress\",\"alt\":\"Hester's Bunny Food Mart successful signup confirmation page.\",\"copyright\":null,\"dimensions\":{\"width\":1320,\"height\":544},\"id\":\"ZxFYBYF3NbkBXsFe\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$f16ec4ea-d445-4895-8532-35eb84ef42ae\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Adding a LaunchDarkly flag to conditionally enable SMS verification\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Adding a LaunchDarkly flag to conditionally enable SMS verification\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Head over to the LaunchDarkly app. Click on either of the “Create flag” buttons.\",\"spans\":[{\"start\":17,\"end\":33,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZvybKLVsGrYSwQsk_create-flag-buttons-empty-state.png?auto=format,compress\",\"alt\":\"empty state of the LaunchDarkly app showing two \\\"Create flag\\\" buttons.\",\"copyright\":null,\"dimensions\":{\"width\":2238,\"height\":1072},\"id\":\"ZvybKLVsGrYSwQsk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$a66859bc-5b7c-48d3-8088-07c70d312fe2\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Create a flag using this configuration:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Name: extra-verification-new-users\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Description: When flag is enabled, require verification of the user’s phone number in order to complete the signup flow.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Configuration: Custom\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Type: boolean\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFY2oF3NbkBXsGJ_flag-configuration.png?auto=format,compress\",\"alt\":\"Flag configuration screenshot.\",\"copyright\":null,\"dimensions\":{\"width\":1738,\"height\":1222},\"id\":\"ZxFY2oF3NbkBXsGJ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$d5306302-93c9-4992-8926-03047ea2506d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Set up the variations like so:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"extra verification on: true\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"extra verification off: false\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFZBIF3NbkBXsGL_flag-variations.png?auto=format,compress\",\"alt\":\"Screenshot of flag variations configuration.\",\"copyright\":null,\"dimensions\":{\"width\":1756,\"height\":752},\"id\":\"ZxFZBIF3NbkBXsGL\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$34f9a769-0523-439c-87a4-4a0cff671e93\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Click “Create flag” at the bottom of the page. Turn your flag On. Click \\\"Review and save.\\\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFZ2YF3NbkBXsG8_extra-verification-flag-on.png?auto=format,compress\",\"alt\":\"Screenshot showing how to toggle the extra-verification-new-users flag On.\",\"copyright\":null,\"dimensions\":{\"width\":1600,\"height\":850},\"id\":\"ZxFZ2YF3NbkBXsG8\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$1fcd7757-807b-4d56-821a-3f45d947781a\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"If LaunchDarkly is configured to require confirmation, you'll need to add a comment to explain why you're enabling the flag. In this case it's a spam attack. Type the comment. Click “Save changes.”\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFaWIF3NbkBXsHP_flag-confirmation-modal.png?auto=format,compress\",\"alt\":\"Screenshot of flag changes confirmation modal.\",\"copyright\":null,\"dimensions\":{\"width\":1020,\"height\":1092},\"id\":\"ZxFaWIF3NbkBXsHP\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$b315d643-3700-40be-8ffd-a7a0d08fdee4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"You’ll need the LaunchDarkly SDK key to evaluate a feature flag in the app. Click the menu with 3 dots. Select “SDK Key” from the dropdown menu to copy it. Paste the SDK key into your .env file. Save the .env file, which is the last configuration step.\",\"spans\":[{\"start\":184,\"end\":188,\"type\":\"em\"},{\"start\":204,\"end\":208,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFaloF3NbkBXsHa_sdk-key-copy-it.png?auto=format,compress\",\"alt\":\"Screenshot demonstrating where to copy your LaunchDarkly SDK key.\",\"copyright\":null,\"dimensions\":{\"width\":2064,\"height\":1056},\"id\":\"ZxFaloF3NbkBXsHa\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$c74e3670-32ce-4e04-ab65-0aa437030184\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Next, we’ll tweak this code to add a LaunchDarkly feature flag. Open index.js. You can copy the whole file, or modify the commented functions and lines below for a more detailed understanding.\",\"spans\":[{\"start\":69,\"end\":77,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$52ed38ae-76e2-41cb-a70e-27d56396d859\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"language\":null,\"code_sample\":[{\"type\":\"preformatted\",\"text\":\"$4c\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"code_block$a436312d-60d9-4266-a251-b0ffdc56acb5\",\"slice_type\":\"code_block\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"If you go through the signup flow at http://localhost:3000/signup.html, SMS verification should be enabled by default. 💥\",\"spans\":[{\"start\":37,\"end\":70,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://localhost:3000/signup.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Try turning off the feature flag. In the LaunchDarkly app, toggle the extra-verification-new-users flag off.\",\"spans\":[{\"start\":70,\"end\":98,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFbc4F3NbkBXsIh_toggle-flag-off.png?auto=format,compress\",\"alt\":\"Screenshot showing how to toggle the extra-verification-new-users flag Off.\",\"copyright\":null,\"dimensions\":{\"width\":2078,\"height\":1032},\"id\":\"ZxFbc4F3NbkBXsIh\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$b067ba60-a81d-4498-8c7d-5f6fcdc4db72\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"If you try again, the signup flow should take you straight through to the success page rather than requiring SMS verification.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$3366d423-9e6f-4bbe-8f4b-b0ed9124c518\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Conclusion: using LaunchDarkly feature flags to stop fraudulent signup requests\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Conclusion: using LaunchDarkly feature flags to stop fraudulent signup requests\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you’ve been following along, you’ve integrated LaunchDarkly feature flags into your signup flow to conditionally enable Twilio Verify during spam spikes. Nice job!\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"As engineers, we often wrangle two opposing forces such as ease of use and fraud. Tooling that is flexible enough to let us make adjustments based on local conditions is hugely helpful, especially when dealing with a mission-critical path like signups.\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you enjoyed this post, you might be interested in:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Using LaunchDarkly with anonymous contexts\",\"spans\":[{\"start\":0,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/observability/anonymous-contexts/?q=unauth\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Upgrade your APIs safely with Progressive Rollouts in an ExpressJS Application\",\"spans\":[{\"start\":0,\"end\":78,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/upgrade-api-safely-progressive-rollouts-expressjs/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Creating customized user experiences using Express JS and LaunchDarkly segment targeting\",\"spans\":[{\"start\":0,\"end\":88,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/email-targeting-express-js/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nThanks for reading! If you have any questions, or you want to see some cute rabbit pics, you can reach me via email (tthurium@launchdarkly.com), X/Twitter, Mastodon, Discord or LinkedIn.\",\"spans\":[{\"start\":146,\"end\":155,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://x.com/annthurium\",\"target\":\"_blank\"}},{\"start\":157,\"end\":165,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://tech.lgbt/@annthurium\",\"target\":\"_blank\"}},{\"start\":167,\"end\":174,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://discord.com/invite/launchdarklycommunity\",\"target\":\"_blank\"}},{\"start\":178,\"end\":186,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.linkedin.com/in/annthurium/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFb_YF3NbkBXsIr_PXL_20241009_044845226.MP.jpg?auto=format%2Ccompress\u0026rect=0%2C0%2C3072%2C2304\u0026w=2000\u0026h=1500\",\"alt\":\"Hester the golden dutch rabbit and Ellie the v0id cat. They have a complex sibling rivalrly.\",\"copyright\":null,\"dimensions\":{\"width\":2000,\"height\":1500},\"id\":\"ZxFb_YF3NbkBXsIr\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$6a70304d-be03-40f1-8276-bfe04e5c9f6f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Mitigating signup spam spikes with LaunchDarkly and Twilio Verify in an ExpressJS app\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"In this tutorial, we’ll build an ExpressJS demo app that has the flexibility to toggle extra verification layers on during spam attacks. \",\"spans\":[{\"start\":33,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://expressjs.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nThis demo combines Twilio Verify, a fraud verification API that can be used across many communications channels, with LaunchDarkly feature flags. Take that, spammers.\",\"spans\":[{\"start\":20,\"end\":33,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify\",\"target\":\"_blank\"}},{\"start\":119,\"end\":145,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/guides/flags/creating-flags\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format,compress\",\"id\":\"ZxLZuYF3NbkBXux-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZrLjHBcAACYASrIn\",\"uid\":\"2024-survey-impact-launchdarkly-customer-outcomes\",\"url\":\"/blog/2024-survey-impact-launchdarkly-customer-outcomes/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZrLjHBcAACYASrIn%22%29+%5D%5D\",\"tags\":[\"Feature Management\",\"Experimentation\"],\"first_publication_date\":\"2024-08-07T03:30:04+0000\",\"last_publication_date\":\"2024-10-04T23:44:21+0000\",\"slugs\":[\"2024-survey-impact-of-launchdarkly-on-customer-outcomes\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"2024 Survey: Impact of LaunchDarkly on Customer Outcomes\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"X2ujuBEAACIArn1H\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"matt-delaney\",\"first_publication_date\":\"2020-09-23T19:36:28+0000\",\"last_publication_date\":\"2024-09-16T21:43:53+0000\",\"uid\":\"mattdel\",\"url\":\"/blog/author/mattdel/\",\"link_type\":\"Document\",\"key\":\"96cdfadf-42af-4936-ba1b-466e2bcead46\",\"isBroken\":false},\"timestamp\":\"2024-08-08T02:58:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZYXWnREAACEAzxnZ\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"research-report\",\"first_publication_date\":\"2024-01-03T23:42:03+0000\",\"last_publication_date\":\"2024-01-03T23:42:03+0000\",\"uid\":\"research-report\",\"url\":\"/blog/category/research-report/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Research Report\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0f1915c3-58f9-4304-860a-787578dbed71\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"4cb96d6d-2910-46a4-8b74-ad52c9324f29\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"56795fc7-a211-4562-9772-c0b80934b9ed\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b3738e77-2d7d-408b-96d1-b62f32518dd3\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"7b8a182e-e6e7-4e2a-ae08-d04b8888242c\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"New Survey 2024: Impact of LaunchDarkly on Customer Outcomes featured blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format,compress\u0026rect=0,0,4001,2315\u0026w=3000\u0026h=1736\",\"id\":\"ZrLjPkaF0TcGIvJI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"Zp6LnREAAB4ALB9r\",\"type\":\"blog_post\",\"tags\":[\"Feature Management\",\"Feature Flags\",\"Experimentation\"],\"lang\":\"en-us\",\"slug\":\"the-impact-of-feature-management-on-software-engineering-and-business-performance\",\"first_publication_date\":\"2024-07-22T17:02:50+0000\",\"last_publication_date\":\"2025-01-08T22:01:15+0000\",\"uid\":\"2024-survey-impact-of-feature-management\",\"url\":\"/blog/2024-survey-impact-of-feature-management/\",\"link_type\":\"Document\",\"key\":\"424c33af-f729-4641-9858-f66762dcccc8\",\"isBroken\":false}},{\"post\":{\"id\":\"ZTBnHhYAACUAeYCy\",\"type\":\"blog_post\",\"tags\":[\"feature mangement\",\"feature flag platform\",\"feature flags\",\"feature flag management\",\"feature flagging service\"],\"lang\":\"en-us\",\"slug\":\"manufacturing-feature-flags-build-vs.-buy...and-duct-tape\",\"first_publication_date\":\"2023-10-19T04:00:58+0000\",\"last_publication_date\":\"2026-09-04T18:21:10+0000\",\"uid\":\"manufacturing-feature-flags-build-vs-buy\",\"url\":\"/blog/manufacturing-feature-flags-build-vs-buy/\",\"link_type\":\"Document\",\"key\":\"49486c4f-4240-461a-8890-e63c672b8088\",\"isBroken\":false}},{\"post\":{\"id\":\"Zc5ZchEAACEABhB4\",\"type\":\"blog_post\",\"tags\":[\"Build vs Buy\",\"Feature Management\",\"Feature Flags\",\"feature flag platform\",\"feature flag management\",\"feature flagging service\"],\"lang\":\"en-us\",\"slug\":\"5-ways-launchdarkly-outshines-diy-feature-flags\",\"first_publication_date\":\"2024-02-15T19:12:14+0000\",\"last_publication_date\":\"2026-07-22T16:39:04+0000\",\"uid\":\"5-ways-launchdarkly-outshines-diy-feature-flags\",\"url\":\"/blog/5-ways-launchdarkly-outshines-diy-feature-flags/\",\"link_type\":\"Document\",\"key\":\"ad0e8437-99bb-4de8-82cc-15187023eb2d\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"LaunchDarkly drives high innovation velocity, operational efficiency, and revenue growth\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In April 2024, LaunchDarkly enlisted Wakefield Research, a third-party firm, to conduct a survey of 250 LaunchDarkly customers. The results show unequivocally that the LaunchDarkly feature management and experimentation platform drives positive business outcomes for customers. They also reveal trends in use cases, adoption levels, and feature management maturity. \",\"spans\":[{\"start\":37,\"end\":55,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://wakefieldresearch.com/\",\"target\":\"_blank\"}},{\"start\":168,\"end\":228,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/product/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Explore the survey results below to discover the tangible business impact of LaunchDarkly. And see how you compare to surveyed customers in terms of software engineering performance and feature management maturity.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(We also ran a survey comparing software engineering and business performance between LaunchDarkly customers and non-customers. View the results here if you're interested)\",\"spans\":[{\"start\":0,\"end\":171,\"type\":\"em\"},{\"start\":128,\"end\":170,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/2024-survey-impact-of-feature-management/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$7ef18d52-a744-4627-8de7-6d4109273e33\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Tangible business impact\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Tangible business impact\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Innovation velocity, cost-savings, and revenue growth\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$30840afd-ef49-4a8a-9328-5549ce2808f5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"95% of surveyed customers agree that “LaunchDarkly has a positive impact on organizational performance such as revenue, customer satisfaction, and operational efficiency.\\\"\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$ea56bff0-4d5a-4520-9597-7fa9503e427b\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"This finding echoes what we often hear from customers: they regard LaunchDarkly as an indispensable solution in their DevOps stack that makes a big impact across multiple areas of the business.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9b1a7e92-a9e0-4cb5-95c7-13258d1d2554\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"90% of surveyed customers agree that LaunchDarkly has helped increase their innovation velocity.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$7e5ccc61-d861-495b-95dd-edeff075dfee\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly helps customers increase their innovation velocity by 1) reducing the risk of delivering software dramatically, and 2) giving customers extreme control over what, when, and to whom they release. Here are a few examples: \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Autodesk increases release velocity by 500%\",\"spans\":[{\"start\":0,\"end\":8,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/how-autodesk-manages-mobile-app-releases-with-launchdarkly/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Paramount improves developer productivity 100x\",\"spans\":[{\"start\":0,\"end\":9,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/paramount-improves-developer-productivity-100x/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Christian Dior shortens time to market from 15 minutes to instant updates\",\"spans\":[{\"start\":0,\"end\":14,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/dior/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Customers reported that LaunchDarkly has helped increase revenue, in some cases by over 50%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"11% of customers estimate that LaunchDarkly has helped increase revenue growth by more than 50% \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"41% estimate an increase between 10% to 49%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"33% estimate an increase of up to 10%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“In your estimation, how much has LaunchDarkly helped increase revenue growth tied to your software products?”\",\"spans\":[{\"start\":0,\"end\":110,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$4acd677a-1278-4675-bde4-6f1fc73cae4b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1156},\"alt\":\"Impact of LaunchDarkly on revenue growth chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLlyUaF0TcGIvJQ_24-07-WakefieldSurveyJuly2024-LDCustomers-RevenueGrowth-3-.png?auto=format,compress\",\"id\":\"ZrLlyUaF0TcGIvJQ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$33e69f1c-b8ba-4d9d-bcf1-13a8b6c6a842\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly helps customers increase revenue by enabling them to ship valuable software innovations faster. Also, the LaunchDarkly targeting engine enables them to deliver personalized experiences to users, in turn, increasing engagement and satisfaction. What’s more, developers and product managers can easily run beta tests and experiments with LaunchDarkly. By collecting and acting upon data early on, they end up releasing features that perform exceedingly well in the market. All of this can help drive revenue.\",\"spans\":[{\"start\":165,\"end\":197,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/targeting/\",\"target\":\"_blank\"}},{\"start\":317,\"end\":327,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\",\"target\":\"_blank\"}},{\"start\":332,\"end\":343,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/experimentation/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"LaunchDarkly reduces the operational costs of software delivery\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"8% of customers say LaunchDarkly has reduced their operational costs by over 50%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"59% say LaunchDarkly has reduced their operational costs between 11% and 50%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"26% say LaunchDarkly has reduced their operational costs up to 10%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“In your estimation, by how much has LaunchDarkly helped reduce your operational costs tied to software delivery?”\",\"spans\":[{\"start\":0,\"end\":114,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$3f51ca9f-9d4c-4056-8703-6998a642f360\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1285},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLmLEaF0TcGIvJU_24-07-WakefieldSurveyJuly2024-LDCustomers-Cost-savings-2-.png?auto=format,compress\",\"id\":\"ZrLmLEaF0TcGIvJU\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$c70b7eca-2ddf-49ca-be66-9a7429c1fcb0\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly reduces the operational costs of software delivery by eliminating \\\"big-bang\\\" releases. A big-bang release looks like this:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Dozens—or hundreds—of highly-paid engineering personnel assemble at midnight or on the weekend to execute a major software launch. The launch includes updates from multiple development teams, all of whom had to a) run their changes through extensive pre-production testing, and b) wait for QA to approve every team's changes before merging their feature branches with the mainline—at which point costly merge conflicts arise. The fear of the release causing an outage looms large with a big-bang release.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With LaunchDarkly feature flags, developers can safely test their code in a realistic production environment. This spares them the expense of maintaining staging environments that unreliably simulate production. What's more, teams—or even individual developers—can safely merge and deploy their code as soon as it's ready. And a single person can release that code patch whenever they choose. Should the patch degrade system performance, one person can disable it instantly in LaunchDarkly. Where there once was fear, there now is confidence...and lower operational costs.\",\"spans\":[{\"start\":5,\"end\":31,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/feature-flags/\",\"target\":\"_blank\"}},{\"start\":55,\"end\":108,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a99a50e9-4c6d-4120-a987-f9d4b72334bd\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Software delivery and operational performance\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Software delivery and operational performance\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"See how you compare to LaunchDarkly customers when it comes to deployment frequency, MTTR, software reliability, and other engineering performance markers.\",\"spans\":[{\"start\":63,\"end\":83,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-frequency/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Deployment frequency\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“For the primary software service or application that your team works on, how often do you deploy new code to production?”\",\"spans\":[{\"start\":0,\"end\":122,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$bca5a5d4-a095-4721-bb88-838784b7e5ce\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1275},\"alt\":\"Deployment frequency LaunchDarkly customers chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLnPEaF0TcGIvJZ_24-07-WakefieldSurveyJuly2024-LDCustomers-DeploymentFrequency-1-.png?auto=format,compress\",\"id\":\"ZrLnPEaF0TcGIvJZ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$40ba6017-0434-40f8-83bb-36448c285e0a\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Mean time to recover (MTTR) from incidents\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“When a software incident occurs in the primary software service or application that your team works on, what is your mean time to recover (MTTR) from the incident?”\",\"spans\":[{\"start\":0,\"end\":165,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$21d4cdfc-9e95-4ef8-b795-669c06bc7d78\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1185},\"alt\":\"MTTR LaunchDarkly customers chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLngEaF0TcGIvJa_24-07-WakefieldSurveyJuly2024-LDCustomers-MTTR-2-.png?auto=format,compress\",\"id\":\"ZrLngEaF0TcGIvJa\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$89661739-58f9-4598-a133-07144715146b\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"A majority of LaunchDarkly customers (86%) recover from incidents in a day or less, with 42% recovering within an hour, if not minutes.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Frequency of software reliability issues\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How often is the primary software service or application you work on unavailable, slow, or operating incorrectly?”\",\"spans\":[{\"start\":0,\"end\":115,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$7adbde6b-4634-4970-9b28-48633c33f94e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1163},\"alt\":\"Frequency of software reliability issues LaunchDarkly chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLnx0aF0TcGIvJb_24-07-WakefieldSurveyJuly2024-LDCustomers-Frequencyofsoftwarereliabilityissues-1-.png?auto=format,compress\",\"id\":\"ZrLnx0aF0TcGIvJb\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$4a766d0f-0092-4810-ad49-5bd70092bb05\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Number of people required to execute a release (release overhead)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How many people (developers, IT operators, QA engineers, development managers, etc.) are typically required to execute a software release?”\",\"spans\":[{\"start\":0,\"end\":140,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5134f1a7-6676-483c-a203-ced2b19773f4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1140},\"alt\":\"Number of people required to execute a release - LaunchDarkly customers - chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLoF0aF0TcGIvJm_24-07-WakefieldSurveyJuly2024-LDCustomers-executearelease-1-.png?auto=format,compress\",\"id\":\"ZrLoF0aF0TcGIvJm\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$e4362860-5227-4ee2-bf9d-0282bd996d1f\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Interestingly, nearly 70% of customers only require five people or less to execute a software release. This suggests that, for our customers, the overhead associated with delivering software—at least in terms of labor resources—is quite low. It’s not uncommon for engineering teams to require dozens, if not hundreds, of engineering personnel to execute a release. The fact that most LaunchDarkly customers can count on one hand the number of people they need for a launch is significant.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$11d1c857-e316-4d6b-bb14-b77283602390\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Feature management maturity and usage trends\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Feature management maturity and usage trends\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Use cases\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How does your team use LaunchDarkly?”\",\"spans\":[{\"start\":0,\"end\":38,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$d85551c2-d407-4c53-ae67-5b74150cfa44\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1465},\"alt\":\"Feature management use cases chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrpnNkaF0TcGI336_24-07-WakefieldSurveyJuly2024-LDCustomers-Usecases-2-.png?auto=format,compress\",\"id\":\"ZrpnNkaF0TcGI336\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$551eca86-ff5d-4f85-b9a9-1a737400de7e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The top 3 most popular use cases for LaunchDarkly were dark launches, testing in production (canary tests), and progressive delivery.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Dark launches - turning features on/off for all users\",\"spans\":[{\"start\":0,\"end\":13,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/guide-to-dark-launching/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Testing in production (canary tests) - testing features with a subset of users to measure operational impact\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}},{\"start\":23,\"end\":35,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Progressive delivery - gradually releasing to increasingly large segments (includes percentage rollouts)\",\"spans\":[{\"start\":0,\"end\":20,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Beta tests - testing features with a subset of external users to gather qualitative feedback\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Experimentation - running A/B and multivariate tests to gather quantitative data\",\"spans\":[{\"start\":0,\"end\":15,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/a-guide-to-experimentation-in-launchdarkly/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Long-term operational controls - using permanent flags for things like load shedding during high-traffic periods\",\"spans\":[{\"start\":39,\"end\":54,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/guides/7-best-practices-for-short-term-and-permanent-feature/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Trunk-based development – smaller, more frequent updates to a main trunk\",\"spans\":[{\"start\":0,\"end\":23,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/introduction-to-trunk-based-development/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Entitlements and plan management - controlling feature/product access based on things like customer tier\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/managing-entitlements-in-launchdarkly/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Level of LaunchDarkly adoption\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“Which best describes your organization's level of adoption of LaunchDarkly?”\",\"spans\":[{\"start\":0,\"end\":77,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$7ba15a39-506e-4486-b3d6-4795de596c6d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":967},\"alt\":\"Level of LaunchDarkly adoption chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLpAUaF0TcGIvJp_24-07-WakefieldSurveyJuly2024-LDCustomers-LaunchDarklyadoption-4-.png?auto=format,compress\",\"id\":\"ZrLpAUaF0TcGIvJp\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$f9221370-c68c-4b39-90e0-22b871d47fb7\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"A majority of LaunchDarkly customers (87%) have standardized their use of the platform on at least one team. Twenty-four percent have centralized and standardized their use of the platform across their entire organization, which represents a high degree of feature management maturity. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Feature flag usage\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“For what percentage of code changes (frontend and backend) does your team use LaunchDarkly feature flags?”\",\"spans\":[{\"start\":0,\"end\":107,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$818bde3f-3c6e-4f26-8f3d-7d16c2853137\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1199},\"alt\":\"Feature flag usage chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLpPUaF0TcGIvJr_24-07-WakefieldSurveyJuly2024-LDCustomers-Changesinvolvingfeatureflags-1-.png?auto=format,compress\",\"id\":\"ZrLpPUaF0TcGIvJr\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$45b15a3d-520a-430d-83a0-4e0402e8bb27\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Roughly one-fifth of LaunchDarkly customers (19%) use feature flags for more than 50% of software changes that they push to production. But most customers use flags for fewer than 50% of changes.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Integrations \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How many of the LaunchDarkly integrations (e.g., with Datadog, Github, Jira Cloud, Slack, etc.) does your team use?”\",\"spans\":[{\"start\":0,\"end\":117,\"type\":\"em\"},{\"start\":17,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/integrations/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$fb321783-b472-4106-a34b-24b569b849c6\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1157},\"alt\":\"Number of integrations chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLphUaF0TcGIvJs_24-07-WakefieldSurveyJuly2024-LDCustomers-Numberofintegrations-2-.png?auto=format,compress\",\"id\":\"ZrLphUaF0TcGIvJs\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$89d03b44-f880-4ef1-a3f0-5d7e8c35536a\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly helps streamline critical workflows with 60+ integrations with popular tools in the modern DevOps tool chain like Datadog, GitHub, Jira Cloud, ServiceNow, and Slack. Currently, a majority of customers (89%) only leverage between zero and five integrations. \",\"spans\":[{\"start\":54,\"end\":70,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/integrations/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Automation\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“Which of the LaunchDarkly automation features does your team use?”\",\"spans\":[{\"start\":0,\"end\":67,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$39acd060-f9a4-4051-a4e6-39592f0f7526\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1352},\"alt\":\"Automation features\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLpwkaF0TcGIvKa_24-07-WakefieldSurveyJuly2024-LDCustomers-Automationfeatures-2-.png?auto=format,compress\",\"id\":\"ZrLpwkaF0TcGIvKa\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$0f21ada7-956c-416d-9a1f-59da02f8a49e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly offers several capabilities that automate workflows in software delivery, remediation, and change management. Far and away, the most popular of those automation capabilities are Approvals (41% of customers use Approvals) and Slack alerts (40% of customers).\",\"spans\":[{\"start\":46,\"end\":64,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/automation/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Approvals - automatically require and issue flag change approvals\",\"spans\":[{\"start\":0,\"end\":9,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/releases/approvals\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic Slack alerts of flag updates and/or change approvals\",\"spans\":[{\"start\":10,\"end\":22,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/slack\",\"target\":\"_blank\"}},{\"start\":46,\"end\":62,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/slack/approvals\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Scheduling of software releases in advance\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/releases/scheduled-changes\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Flag triggers/Automatic kill switches - automatically turn ‘off’ a flag when your observability tool detects a critical service issue\",\"spans\":[{\"start\":0,\"end\":37,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/releases/triggers\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Release Assistant - deliver features through repeatable release pipelines that follow an ordered set of environments and targeting rules\",\"spans\":[{\"start\":0,\"end\":17,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/release-assistant-automation-monitoring-ux-improvements/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic flag syncing with Jira Cloud\",\"spans\":[{\"start\":28,\"end\":38,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/jira\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic generation of ServiceNow tickets\",\"spans\":[{\"start\":24,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/servicenow\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$b7e2657d-8682-4d06-8cf1-5fb343dfcf3e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers have spoken. The LaunchDarkly platform has a material impact on the bottom line, improving everything from operational efficiency and innovation velocity to revenue growth and customer satisfaction. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In a software-powered world, LaunchDarkly enables product delivery teams to ship software faster, more intelligently, and with less risk. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you’re interested in seeing a live demo of the LaunchDarkly feature management and experimentation platform, request a demo here. You may also start a free trial of the product. To learn more about LaunchDarkly and how it may transform the way you deliver software, visit launchdarkly.com.\",\"spans\":[{\"start\":112,\"end\":131,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}},{\"start\":154,\"end\":164,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}},{\"start\":275,\"end\":291,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://launchdarkly.com\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"---\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"About the survey\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly Customer Survey was conducted by Wakefield Research (www.wakefieldresearch.com) among 250 DevOps and IT Professionals, between April 23rd and May 1st, 2024, using an email invitation distributed by LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Respondents spanned multiple industries, company sizes, and annual revenue amounts. They also ranged from individual contributors to C-level executives, including job titles such as Software Developer, VP of Engineering, IT Director, Platform Engineer, CTO, and more. Results of any sample are subject to sampling variation.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$901c3745-8357-47ff-b910-9a7fc2e21976\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"2024 Survey: Impact of LaunchDarkly on Customer Outcomes\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Learn how LaunchDarkly drives high innovation velocity, operational efficiency, and revenue growth for customers. View the full survey results.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4001,\"height\":2315},\"alt\":\"New Survey 2024: Impact of LaunchDarkly on Customer Outcomes featured blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format,compress\",\"id\":\"ZrLjPkaF0TcGIvJI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"Zp6LnREAAB4ALB9r\",\"uid\":\"2024-survey-impact-of-feature-management\",\"url\":\"/blog/2024-survey-impact-of-feature-management/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Zp6LnREAAB4ALB9r%22%29+%5D%5D\",\"tags\":[\"Feature Management\",\"Feature Flags\",\"Experimentation\"],\"first_publication_date\":\"2024-07-22T17:02:50+0000\",\"last_publication_date\":\"2025-01-08T22:01:15+0000\",\"slugs\":[\"the-impact-of-feature-management-on-software-engineering-and-business-performance\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"The Impact of Feature Management on Software Engineering and Business Performance\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"X2ujuBEAACIArn1H\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"matt-delaney\",\"first_publication_date\":\"2020-09-23T19:36:28+0000\",\"last_publication_date\":\"2024-09-16T21:43:53+0000\",\"uid\":\"mattdel\",\"url\":\"/blog/author/mattdel/\",\"link_type\":\"Document\",\"key\":\"46b48557-4a94-4106-9506-9a5114312421\",\"isBroken\":false},\"timestamp\":\"2024-07-22T16:39:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZYXWnREAACEAzxnZ\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"research-report\",\"first_publication_date\":\"2024-01-03T23:42:03+0000\",\"last_publication_date\":\"2024-01-03T23:42:03+0000\",\"uid\":\"research-report\",\"url\":\"/blog/category/research-report/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Research Report\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"314fa96b-2786-4b4d-9084-9d4c542bfa87\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"db583f70-8653-4f99-ad72-65a2c46cc29d\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"c1307806-fb7d-4f3f-a417-86d687727dee\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"72f597df-92f0-4ebc-9eb9-fa1f1f540875\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"c0c9c19e-59de-4da3-a9c3-0d7b8f811f09\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"34b44d3c-db41-43b9-97f0-60d6a1d8d390\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"Featured-image-charts-purple-hues-Impact-of-Feature-Management-on-Business-and-Engineering-Performance\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format%2Ccompress\u0026rect=0%2C0%2C4001%2C2315\u0026w=3000\u0026h=1736\",\"id\":\"Zp6MZx5LeNNTxXj7\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZTBnHhYAACUAeYCy\",\"type\":\"blog_post\",\"tags\":[\"feature mangement\",\"feature flag platform\",\"feature flags\",\"feature flag management\",\"feature flagging service\"],\"lang\":\"en-us\",\"slug\":\"manufacturing-feature-flags-build-vs.-buy...and-duct-tape\",\"first_publication_date\":\"2023-10-19T04:00:58+0000\",\"last_publication_date\":\"2026-09-04T18:21:10+0000\",\"uid\":\"manufacturing-feature-flags-build-vs-buy\",\"url\":\"/blog/manufacturing-feature-flags-build-vs-buy/\",\"link_type\":\"Document\",\"key\":\"a75cdc32-3fb2-4c1c-b18d-c303c1ef2d21\",\"isBroken\":false}},{\"post\":{\"id\":\"Zkn9-RAAAB4AUBoU\",\"type\":\"blog_post\",\"tags\":[\"a/b testing\",\"GenAI\",\"Experimentation\",\"AI\",\"Release Guardian\"],\"lang\":\"en-us\",\"slug\":\"galaxy-24-product-release\",\"first_publication_date\":\"2024-05-20T18:29:18+0000\",\"last_publication_date\":\"2024-09-16T21:08:22+0000\",\"uid\":\"galaxy-2024-product-release\",\"url\":\"/blog/galaxy-2024-product-release/\",\"link_type\":\"Document\",\"key\":\"3ec22a00-1ba8-4a7d-8217-1e050ace37db\",\"isBroken\":false}},{\"post\":{\"id\":\"ZUFUUhAAACIACoVc\",\"type\":\"blog_post\",\"tags\":[\"DevOps\",\"Feature Flags\",\"Mobile\",\"Targeting\"],\"lang\":\"en-us\",\"slug\":\"the-next-devops-frontier-how-5-leading-companies-ship-software-faster\",\"first_publication_date\":\"2023-10-31T19:31:07+0000\",\"last_publication_date\":\"2026-08-24T19:08:38+0000\",\"uid\":\"the-next-devops-frontier-how-5-leading-companies-ship-software-faster\",\"url\":\"/blog/the-next-devops-frontier-how-5-leading-companies-ship-software-faster/\",\"link_type\":\"Document\",\"key\":\"d86c40e7-826a-4f2c-a186-83826104d349\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"An observational analysis of a survey of 500 DevOps and IT professionals\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Studies from researchers at DORA and McKinsey show that strong software delivery and operational practices contribute to positive business outcomes. But how does feature management affect software delivery and operational performance? And which types of feature management systems yield the greatest benefits? These are the questions we set out to answer in a recent survey of 500 DevOps and IT professionals. \",\"spans\":[{\"start\":28,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://dora.dev/guides/how-to-empower-software-delivery-teams/\",\"target\":\"_blank\"}},{\"start\":37,\"end\":45,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In April 2024, LaunchDarkly enlisted Wakefield Research, a third-party firm, to conduct a survey of 250 LaunchDarkly customers and 250 non-customers—with the goal of comparing software engineering performance and business outcomes.\",\"spans\":[{\"start\":37,\"end\":55,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://wakefieldresearch.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The results show a clear performance gap between customers and non-customers. On average, LaunchDarkly customers:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deploy more frequently (84% more)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Recover faster from incidents (46% more likely to recover within a day)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Experience better software reliability (48% better)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Have higher customer satisfaction (95% better)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Spend less time on pre-production testing and debugging (63% less time at a minimum)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deliver software with less overhead\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a5bc5a56-6384-438a-a05a-c8a214e16c77\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1801,\"height\":1488},\"alt\":\"Bar chart comparing engineering performance of LaunchDarkly customers and non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6sAB5LeNNTxYTp_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Softwareengineeringperformance-3-.png?auto=format,compress\",\"id\":\"Zp6sAB5LeNNTxYTp\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$1e65e283-0518-48bd-bf47-98c4767fe93e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Read on for a detailed breakdown of the survey results across the following categories: innovation velocity, software reliability and customer satisfaction, and release overhead.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$aa063b73-2c6b-49cb-a187-075440e01b98\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Innovation velocity \",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Innovation velocity\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers deploy code 84% more frequently\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9bdd8bed-7ebc-4bb8-a73f-e455b78dd35b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":802},\"alt\":\"Deployment frequency pie chart - LD customers vs. Non-LD customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6O4x5LeNNTxXlg_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Deployseveraltimesaweekormore.png?auto=format,compress\",\"id\":\"Zp6O4x5LeNNTxXlg\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$25fdc5c2-cad6-4d83-b4ac-8120fef06c57\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"On average, LaunchDarkly customers have a much higher deployment velocity than non-customers. According to the survey, 59% of customers deploy several times a week or more frequently, with 20% deploying “on demand.” In contrast, only 32% of non-customers deploy to production several times a week or more frequently. And only 3% deploy “on demand.” \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If we treat software “innovation” in a broad sense, spanning incremental and radical innovations, we can conclude that LaunchDarkly customers have a higher developer innovation velocity than non-customers.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Why is that? First off, LaunchDarkly feature flags provide safeguards and control that, in turn, give development teams the confidence to ship changes faster. LaunchDarkly enables many customers to do trunk-based development and low-risk continuous delivery. \",\"spans\":[{\"start\":37,\"end\":50,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_blank\"}},{\"start\":201,\"end\":224,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/introduction-to-trunk-based-development/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers can also use targeting capabilities to run low-risk early access programs to quickly validate new innovations. Moreover, LaunchDarky’s experimentation features give teams confidence that the innovations they ship will deliver the intended business impact. \",\"spans\":[{\"start\":23,\"end\":45,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/targeting/\",\"target\":\"_self\"}},{\"start\":131,\"end\":169,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/experimentation/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Lastly, customers’ use of feature flags may indicate a wider trend of adopting modern development practices. All of these modern development practices combined contribute to a faster pace of innovation.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$32354320-b42c-452e-98ac-54f90f153949\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Reliability and customer satisfaction\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Software reliability and customer satisfaction\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$070fb2c2-a648-46eb-8b1a-102519681971\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1419},\"alt\":\"Bar chart comparing software reliability and user satisfaction between LaunchDarkly customers and non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6sYB5LeNNTxYU2_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Softwarereliabilityandusersatisfaction.png?auto=format,compress\",\"id\":\"Zp6sYB5LeNNTxYU2\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$c9c2a07f-dc05-4099-9367-a8e1f0c84608\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers outperformed non-customers in multiple categories tied to software reliability and user satisfaction. Customers had a superior mean time to recover (MTTR) from incidents, fewer reliability issues overall, and less negative customer feedback related to unreliable software.\",\"spans\":[{\"start\":150,\"end\":177,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZtC8cBAAAB8AJLMF\",\"type\":\"blog_post\",\"tags\":[\"mean time to restore\",\"MTTR\",\"dora metrics\"],\"lang\":\"en-us\",\"slug\":\"mean-time-to-restore-mttr-what-it-is--how-to-reduce-it\",\"first_publication_date\":\"2024-09-11T23:24:30+0000\",\"last_publication_date\":\"2026-09-10T15:40:06+0000\",\"uid\":\"mean-time-to-restore-mttr\",\"url\":\"/blog/mean-time-to-restore-mttr/\",\"link_type\":\"Document\",\"isBroken\":false}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$0432cfd2-2300-4281-8271-b474a26a08cf\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"MTTR\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Customers are 46% more likely to recover from an incident in a day or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"86% of LaunchDarkly customers recover from software incidents within a day or less, compared to 59% of non-customers. With LaunchDarkly, individual developers can instantly disable broken code by using feature flags as kill switches. In fact, they can do so at runtime without needing to push a fix through their deployment pipeline. When using Flag Triggers, which leverages integrations with application performance monitoring (APM) and observability tools, customers can remediate software issues automatically.\",\"spans\":[{\"start\":219,\"end\":232,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-kill-switch-software-development/\",\"target\":\"_blank\"}},{\"start\":345,\"end\":358,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/launched-automatic-kill-switches-using-flag-triggers/\",\"target\":\"_blank\"}},{\"start\":500,\"end\":513,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With the introduction of Release Guardian, customers can natively monitor operational metrics at the feature level and automatically disable features that degrade system performance.\",\"spans\":[{\"start\":25,\"end\":41,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/meet-release-guardian/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"All of these capabilities contribute to the impressive recovery times posted by LaunchDarkly customers.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$bc30ae03-6b0d-4424-a491-e03e0b051c38\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Software reliability\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers have 48% better software reliability\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$61dcf13b-b3e9-4018-97df-715fb94bb041\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1801,\"height\":858},\"alt\":\"Bar chart comparing software reliability between LD customers and non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6smR5LeNNTxYVx_Neverexperiencesoftwarereliabilityissues.png?auto=format,compress\",\"id\":\"Zp6smR5LeNNTxYVx\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$92229792-1cf4-4e07-97d8-f8404a0c1f9d\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"On average, non-customers have less reliable software systems than customers. For 56% of non-customers, their primary software service or application is unavailable, slow, or operating incorrectly often or all the time. The same is true of only 5% of LaunchDarkly customers. \",\"spans\":[{\"start\":197,\"end\":218,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Similarly, only 26% of non-customers rarely or never experience reliability issues. Whereas, 70% of LaunchDarkly customers rarely or never experience reliability issues. \",\"spans\":[{\"start\":37,\"end\":53,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly platform is equipped with safety nets, controls, and automatic remediation capabilities—all of which contribute to software reliability and availability. It is, therefore, unsurprising to see exceptional levels of operational health among LaunchDarkly customers. \",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5e855224-3f2b-4f65-8ccb-d1227052af8e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"User satisfaction\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers report nearly 2x fewer user complaints\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers hear far less negative user feedback regarding software reliability than non-customers. 56% of non-customers receive negative user feedback often or all the time, whereas the same is true of only 11% of LaunchDarkly customers. On the flip side, only 23% of non-customers rarely or never get negative feedback. But nearly half (45%) of LaunchDarkly customers rarely or never hear user dissatisfaction with the reliability and operational performance of their software.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In the context of software reliability, LaunchDarkly customers have nearly 2x greater customer satisfaction among their users than non-customers.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$89a67f5f-d3d8-4ed1-9dd3-d26fe4fa7fb4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"56% of non-customers (vs. 11% of LaunchDarkly customers) receive negative user feedback about unreliable software often or all the time.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$fedcd1dd-bdae-43a1-801e-6774e3eadb6d\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The superior MTTR of LaunchDarkly customers may partly explain why they hear fewer user complaints. Another reason may be that they use LaunchDarkly to progressively deliver changes to small subsets of users, including through canary tests in production. In doing so, they shrink the blast radius of errors. Even when a release throws a bug, the impact is confined to a few users. By the time the change has been released to a large audience, the defects have been identified and fixed, resulting in a better experience for the majority of users.\",\"spans\":[{\"start\":152,\"end\":173,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/\",\"target\":\"_blank\"}},{\"start\":227,\"end\":239,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5c2feeed-c0de-4ef8-9625-13864becd424\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Overhead of releases\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"The overhead of software releases\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$ef08aa92-6811-4235-bea0-a4c845e6f300\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1801,\"height\":1182},\"alt\":\"Chart comparing the overhead of releasing software - LD customers vs. non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6tUB5LeNNTxYYu_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Overheadofreleases.png?auto=format,compress\",\"id\":\"Zp6tUB5LeNNTxYYu\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$a88e9dce-12f9-4a42-8b68-591627bead1b\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers require far less overhead than non-customers to execute software releases, particularly when it comes to labor costs. What’s more, customers spend significantly less time on non-innovative work such as testing code in pre-production environments and fixing bugs.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$f0b8e7a6-8d9f-48d3-9f63-3bd7cfa03149\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Labor costs\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Nearly 70% of LaunchDarkly customers (vs. 1% of non-customers) can execute a software release with 5 people or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly significantly reduces the number of personnel needed to execute software releases. Indeed, a majority of customers (68%) require only 1-5 people to ship software. Whereas, almost zero non-customers (1%) can say the same. This 6700% difference between customers and non-customers underscores the efficiency gains of LaunchDarkly, which allow teams to dedicate more resources to innovation and less to deployment logistics.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$04ff9161-c11c-4cbb-970c-1aac04f71b67\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"60% of non-customers require more than 25 people to execute a release, and 28% require 50+ people.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$80f90014-bfc4-4cd4-9bbc-185ca823e16b\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Even when only considering the high hourly wages of software developers and engineering leaders, we can assume that the overhead of releasing software for LaunchDarkly customers is significantly lower than for non-customers.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly platform makes releasing software safe and uneventful. If you ship a buggy feature, you can deactivate it in real time with the flip of a toggle. Also, you can decouple deployments from releases. That is, you can wrap a code change in a feature flag, merge it with the mainline, and then allow the mainline to get deployed to production—all without releasing the code change to end users. Later, you or another individual can release that change by toggling on the corresponding flag in LaunchDarkly. \",\"spans\":[{\"start\":4,\"end\":25,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/product/\",\"target\":\"_blank\"}},{\"start\":177,\"end\":211,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Such a release pattern enables lightweight software delivery and helps explain why most LaunchDarkly customers need so few people for releases.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5ebdf769-496a-4fe7-8d56-06ebe76f197b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Time on non-innovative work\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers spend 63% less time on pre-production testing and bug fixing (at a minimum)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Nearly three-quarters of LaunchDarkly customers (74%) spend 25% or less of their time on fixing or testing code. In contrast, the same is only true of 30% of non-customers. In other words, 70% of non-customers spend more than 25% of their time on fixing or testing code—i.e., non-innovative work.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Let’s attempt to put this in perspective. For every 100 non-customers, 70 spend at least 26% of their time on non-innovative work. If we assume an average total compensation for 1 FTE software engineer of $150K/year, that’s $2.73M a year spent on undifferentiated, non-innovative drudgery. For LaunchDarkly customers, that figure drops by $1.72M.\",\"spans\":[{\"start\":80,\"end\":88,\"type\":\"em\"},{\"start\":290,\"end\":346,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$be696eb4-e466-4a90-8ac8-e06a6abbe4e8\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers devote far less time, effort, and money to non-innovative software testing and bug fixing.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$cf8f8ac1-134c-49da-9051-a19a29e69022\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly allows customers to safely test code in production with a small subset of users. Owing to the fail-safes and control mechanisms in LaunchDarkly, teams spend less time vetting features in artificial staging environments. Instead, they rapidly ship changes to production, see how they perform in a live environment, and disable them if needed.\",\"spans\":[{\"start\":40,\"end\":63,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The survey results demonstrate the benefits of using LaunchDarkly's feature management and experimentation platform: customers have a high developer innovation velocity, recover faster, experience greater software reliability, foster high customer satisfaction, and maintain low overhead when releasing and managing software. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly is a platform for high-velocity engineering teams to release, monitor, and optimize great software in production. It is associated with high software engineering performance and positive business outcomes. Those who adopt the platform can expect to gain a competitive edge.\",\"spans\":[{\"start\":66,\"end\":73,\"type\":\"strong\"},{\"start\":75,\"end\":82,\"type\":\"strong\"},{\"start\":88,\"end\":96,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"To progress on your journey to engineering excellence, request a live demo of the LaunchDarkly platform or start using the product for free.\",\"spans\":[{\"start\":55,\"end\":74,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_self\"}},{\"start\":107,\"end\":139,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"* * * * * *\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$d73f0cab-0726-435b-bd22-05d521c95453\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"About the survey\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"About the survey\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly Survey of Non-Customers was conducted by Wakefield Research (www.wakefieldresearch.com) among 250 DevOps and IT Professionals, between April 17th and May 2nd, 2024, using an email invitation and an online survey. The LaunchDarkly Customer Survey was conducted by Wakefield Research among 250 DevOps and IT Professionals, between April 23rd and May 1st, 2024, using an email invitation distributed by LaunchDarkly.\",\"spans\":[{\"start\":78,\"end\":103,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://wakefieldresearch.com/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Respondents spanned multiple industries, company sizes, and annual revenue amounts. They also ranged from individual contributors to C-level executives, including job titles such as Software Developer, VP of Engineering, IT Director, Platform Engineer, CTO, and more. Results of any sample are subject to sampling variation.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e10e2e41-ce9c-478a-b23b-309033bc5ad6\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Appendix 1 - Inferior performance of homegrown feature flag systems\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Appendix 1 - The inferior performance of those with homegrown feature flag systems\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Homegrown feature flag systems associated with worse MTTR\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e7ff1159-ecb5-43e0-88fd-6c4212a18cd6\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":871},\"alt\":\"Comparing MTTR - Homegrown systems\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6vFh5LeNNTxYf9_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-MTTRofaweekorlonger.png?auto=format,compress\",\"id\":\"Zp6vFh5LeNNTxYf9\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$a1ce5cc6-5c8c-4b81-a85b-c95f36396fc1\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The non-customer segment was divided into those who use a paid feature management service (Service) and those who use a homegrown in-house system (Homegrown). Interestingly, the Homegrown group performed worse than the Service group in their mean time to recover (MTTR) from incidents. 46% of the Homegrown group take a week or longer to recover compared to 38% of the Service group.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In many cases, homegrown feature flags are essentially configuration files. This typically means that, if you need to turn “off” a buggy feature, you have to change an environment variable in a config file and then push the update through your deployment pipeline, causing delays. Moreover, in some cases, homegrown systems are not designed to work efficiently across microservices and multiple platforms (web, mobile, etc.). \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Typically, with a commercial feature flagging service, if you toggle off a flag, it disables every instance of the feature across your microservices and platforms. But with homegrown systems, you may have to disable several instances of a feature manually, slowing remediation.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"***Determine whether to build or buy a feature management system.***\",\"spans\":[{\"start\":0,\"end\":68,\"type\":\"em\"},{\"start\":24,\"end\":36,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/build-vs-buy/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Homegrown systems associated with even worse user satisfaction\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$25885673-4858-44bd-942c-29d9e5566b54\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":863},\"alt\":\"Negative user feedback - comparing performance - homegrown flag systems\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6vUx5LeNNTxYgr_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Hearnegativefeedback.png?auto=format,compress\",\"id\":\"Zp6vUx5LeNNTxYgr\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$b4490caa-68da-4285-bd64-6d272d48e192\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The survey revealed that 84% of those with homegrown feature flagging systems hear negative user feedback at least sometimes, compared to 71% of those with a Service and only 55% of LaunchDarkly customers. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The association between homegrown systems and poor user satisfaction parallels that of the former association with slow incident recovery times. Generally speaking, homegrown systems lack the scale, sophistication, and performance of a professional feature management platform. And these deficiencies contribute to (or at least fail to sufficiently mitigate) prolonged outages, higher change failure rates, and other operational issues.\",\"spans\":[{\"start\":385,\"end\":405,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZuMbmBMAACAAYXSY\",\"type\":\"blog_post\",\"tags\":[\"dora metrics\",\"CI/CD\",\"DevOps\",\"automation\"],\"lang\":\"en-us\",\"slug\":\"change-failure-rate-what-it-is--how-to-measure\",\"first_publication_date\":\"2024-09-12T16:59:34+0000\",\"last_publication_date\":\"2026-09-10T15:31:55+0000\",\"uid\":\"change-failure-rate\",\"url\":\"/blog/change-failure-rate/\",\"link_type\":\"Document\",\"isBroken\":false}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5f5cef1a-1093-4ce7-931c-7ea85f3f4af0\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Appendix 2 - How we calculated the statistics\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Appendix 2 - How we calculated the statistics\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers deploy 84% more frequently than non-customers\",\"spans\":[{\"start\":0,\"end\":68,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-59% of customers deploy several times a week or more frequently\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-32 % of non-customers deploy several times a week or more frequently\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relative percentage difference:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(59% - 32%)/32% = .843 * 100 = ~84%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers are 46% more likely than non-customers to recover from an incident in a day or less\",\"spans\":[{\"start\":0,\"end\":93,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-86% of customers recover from software incidents within a day or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-59% of non-customers recover from software incidents within a day or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relative percentage difference:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(86%-59%)/59% = .457 * 100 = ~46%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers have 48% better software reliability than non-customers\",\"spans\":[{\"start\":0,\"end\":65,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-Reliability issues often or all the time: Non-customers = 56%, Customers = 5%; Difference: 56% - 5% = 51%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-Rarely or never experience reliability issues: Non-customers = 6%; Customers = 70%; Difference: 70% - 26% = 44%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Combined Summary Metric: (51% + 44%)/2 = 47.5% (round up to 48%)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers report nearly 2x fewer user complaints than non-customers\",\"spans\":[{\"start\":0,\"end\":67,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-Rarely or never hear negative user feedback: Customers = 45%; non-customers = 23%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relative percentage difference:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(45% - 23%)/23 * 100 = 95.6% (~2x)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers spend 63% less time on non-innovative work than non-customers (at a minimum)\",\"spans\":[{\"start\":0,\"end\":86,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"70% of non-customers (70% of 250 people = 175 people) say they spend more than 25% of their time on fixing and testing code. 26% of customers (65 people) say the same. We’re assuming total working hours of 2080 hours/person/year. When looking at the group of people who spend “more than 25% of their time” on non-innovative work, it means that some of those people may only spend 26% of their time on such work, others may spend 35% of their time, while others still may spend 50% of their time on non-innovative work. For the sake of this calculation, I’m going to use 26%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Non-Customers\",\"spans\":[{\"start\":0,\"end\":13,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\".26 * 2080 = 520 hours/person/year\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"520 * 175 people = 94,640 hours/year\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LD Customers\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"520 * 65 people = 35,152 hours/year\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Final Calculation:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"94640 – 35152/94640 = 0.628 (~63%). Thus, at a minimum, LD customers spend 63% less time on non-innovative work.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Sample costs of releasing software based on survey results\",\"spans\":[{\"start\":0,\"end\":58,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For every 100 non-customers, 70 spend at least 26% of their time on non-innovative work. If we assume an average total compensation for 1 FTE software engineer of $150K/year, that’s $2.73M a year spent on undifferentiated, non-innovative drudgery.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(.26 * $150,000) * 70 = $2,730,000\",\"spans\":[{\"start\":6,\"end\":17,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For LaunchDarkly customers, that figure drops by $1.72M.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(.26 * $150,000) * 26 = $1,014,000 → $2,730,000 - $1,014,000 = $1,716,000 ($1.72M)\",\"spans\":[{\"start\":7,\"end\":19,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$10214088-e79f-4825-9039-ec5989d26e2f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Impact of Feature Management on Engineering and Business Performance\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Discover the transformative effects of feature management on software engineering and business performance. A 2024 survey compares LaunchDarkly customers to non-customers, uncovering insights into innovation, recovery times, operational efficiency, and more. \",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4001,\"height\":2315},\"alt\":\"Featured-image-charts-purple-hues-Impact-of-Feature-Management-on-Business-and-Engineering-Performance\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format,compress\",\"id\":\"Zp6MZx5LeNNTxXj7\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"Zo1hqBEAACEAi0h4\",\"uid\":\"cicd-best-practices-devops\",\"url\":\"/blog/cicd-best-practices-devops/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Zo1hqBEAACEAi0h4%22%29+%5D%5D\",\"tags\":[\"CI/CD\",\"DevOps\",\"Automated Testing\",\"Best Practices\",\"CICD\"],\"first_publication_date\":\"2024-07-09T16:37:41+0000\",\"last_publication_date\":\"2026-08-24T18:40:55+0000\",\"slugs\":[\"ultimate-guide-to-cicd-best-practices-to-streamline-devops\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Ultimate Guide to CI/CD Best Practices to Streamline DevOps\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"ZlpO7REAACEAEp08\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"jesse-sumrak\",\"first_publication_date\":\"2024-05-31T22:28:00+0000\",\"last_publication_date\":\"2025-06-24T00:33:30+0000\",\"uid\":\"jesse-sumrak\",\"url\":\"/blog/author/jesse-sumrak/\",\"link_type\":\"Document\",\"key\":\"1892184c-61dd-472e-858f-01ae9a16e2e4\",\"isBroken\":false},\"timestamp\":\"2024-07-09T16:10:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"Z5QhcBcAACkATlPb\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"developer-productivity\",\"first_publication_date\":\"2025-01-24T23:25:38+0000\",\"last_publication_date\":\"2025-01-24T23:25:38+0000\",\"uid\":\"developer-productivity\",\"url\":\"/blog/category/developer-productivity/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Developer productivity\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"43aad591-319b-428a-adfd-2fe3ca8ef65f\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"3e737e8a-9e9e-4f9a-9d3a-335fb476c6d5\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"d4420ff7-dc4e-4c24-b4c9-c1ea39d27d74\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"737ebbe4-d58c-4606-8201-d23c30bf6be2\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASLBAAACIAVlA9\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"best-practices\",\"first_publication_date\":\"2020-12-21T03:10:54+0000\",\"last_publication_date\":\"2021-01-22T04:01:23+0000\",\"uid\":\"best-practices\",\"url\":\"/blog/category/best-practices/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Best Practices\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"f3e27266-d57c-4361-9678-0980679a0b40\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"Light green infinity loop CI/CD best practices blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format%2Ccompress\u0026rect=1%2C0%2C3999%2C2314\u0026w=3000\u0026h=1736\",\"id\":\"Zo1hWB5LeNNTw9CB\",\"edit\":{\"x\":1,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZloxyhEAAB8AEnVm\",\"type\":\"blog_post\",\"tags\":[\"CI/CD\",\"DevOps\",\"Continuous Delivery\",\"Progressive Delivery\",\"continuous integration\"],\"lang\":\"en-us\",\"slug\":\"devops-vs.-cicd-complete-guide-to-better-software-delivery\",\"first_publication_date\":\"2024-05-31T20:41:41+0000\",\"last_publication_date\":\"2026-08-24T18:17:58+0000\",\"uid\":\"devops-vs-cicd\",\"url\":\"/blog/devops-vs-cicd/\",\"link_type\":\"Document\",\"key\":\"2161a5a5-dc55-4a66-b46d-a9a812eb5783\",\"isBroken\":false}},{\"post\":{\"id\":\"X5iWWREAAB0AriCm\",\"type\":\"blog_post\",\"tags\":[\"CI/CD\",\"Feature Management\",\"Continuous Delivery\",\"Progressive Delivery\",\"Devops\"],\"lang\":\"en-us\",\"slug\":\"what-is-progressive-delivery-all-about\",\"first_publication_date\":\"2020-11-30T05:57:45+0000\",\"last_publication_date\":\"2026-09-04T20:58:16+0000\",\"uid\":\"what-is-progressive-delivery-all-about\",\"url\":\"/blog/what-is-progressive-delivery-all-about/\",\"link_type\":\"Document\",\"key\":\"c13abc5f-9e5e-4f65-9d54-65ad569364e5\",\"isBroken\":false}},{\"post\":{\"id\":\"ZU2XLBAAACAAjSNc\",\"type\":\"blog_post\",\"tags\":[\"Feature Flags\",\"Feature Flagging Best Practices\",\"Test In Production\",\"testing in production\",\"beta testing\",\"Targeting\",\"Kill Switch\"],\"lang\":\"en-us\",\"slug\":\"dont-ship-software-on-weekends-ever-again.-heres-the-secret\",\"first_publication_date\":\"2023-11-29T15:10:15+0000\",\"last_publication_date\":\"2024-05-28T16:58:39+0000\",\"uid\":\"5-best-practices-to-ship-fast-without-ruining-your-weekends\",\"url\":\"/blog/5-best-practices-to-ship-fast-without-ruining-your-weekends/\",\"link_type\":\"Document\",\"key\":\"eb391b61-d9de-4699-9618-437842063e3e\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Continuous Integration and Continuous Delivery (CI/CD) have become fundamental practices for reliably delivering high-quality software at scale. CI/CD provides the framework to streamline development processes, reduce risks, and accelerate time to market.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"CI/CD isn't just a set of tools and processes—it's a shift in how software is developed, tested, and deployed. It automates repetitive tasks while delivering consistent quality, helping your development teams deliver features and fixes more rapidly (and with greater confidence).\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Here's why CI/CD matters:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Accelerated Software Delivery: Automating the build, test, and deployment processes allows for faster and more frequent releases.\",\"spans\":[{\"start\":0,\"end\":30,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Improved Code Quality: Continuous integration frequently merges and tests code to catch bugs early and maintain high code quality throughout development.\",\"spans\":[{\"start\":0,\"end\":22,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Better Collaboration: CI/CD creates a culture of shared responsibility and collaboration between development and operations teams, breaking down silos and improving overall workflows.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Fewer Deployment Risks: CI/CD reduces the risk associated with large-scale deployments by deploying smaller, incremental changes. Feature flags and automated rollbacks improve stability and control.\",\"spans\":[{\"start\":0,\"end\":23,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Faster Feedback Loops: Automated testing and continuous monitoring provide immediate feedback on code changes to let developers identify and address issues quickly.\",\"spans\":[{\"start\":0,\"end\":22,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Below, we'll walk you through all the CI/CD best practices that'll help you streamline DevOps workflows.\",\"spans\":[{\"start\":87,\"end\":103,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/devops-vs-cicd/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$c691b7db-25ad-4c84-bf5f-f08fdac1e09f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"CI/CD best practices to streamline DevOps workflows\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Implementing CI/CD is a transformative step towards more reliable (and efficient) software delivery. However, implementing it alone isn't enough—you'll need to follow a handful of best practices to create secure and scalable CI/CD pipelines.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$f9e3a119-b862-4f23-bb2a-8ac31bf5d613\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"1. Commit frequently\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"1. Commit frequently\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"One of the foundational principles of CI/CD is to commit code changes frequently. This practice keeps changes small, manageable, and easier to integrate, leading to a more stable and reliable codebase. Frequent, smaller commits minimize the risk of large, complex merges and reduce the likelihood of conflicts and bugs.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\\"Think big, act small,\\\" says Darrin Eden, a Senior Software Engineer at LaunchDarkly. \\\"The most frequent source of outages is code deployments. Make the smallest change possible that helps build shared knowledge and trust. If possible, avoid batching changes and deploy a single change at a time. Build in adaptive capacity for people to be resilient while responding to incidents.\\\"\",\"spans\":[{\"start\":24,\"end\":40,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.linkedin.com/in/darrin-eden/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$1a3ee58c-d20f-4861-8713-d7eb3329a64c\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"2. Optimize pipeline stages\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"2. Optimize pipeline stages\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The first step in optimizing your CI/CD pipeline is identifying stages where delays or inefficiencies occur. Use monitoring tools to track the performance of each stage and pinpoint areas that slow down the process. Once identified, work on eliminating these bottlenecks by refining processes, optimizing resource allocation, or parallelizing tasks.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Running tasks in parallel drastically reduces pipeline execution time. For example, you can run unit tests, integration tests, and static code analysis simultaneously rather than sequentially. This approach leverages available resources more efficiently and speeds up the overall pipeline.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Regularly monitor the performance of your CI/CD pipeline. Use metrics and logs to track key performance indicators (KPIs) such as build time, test duration, and deployment frequency. Continuously analyze this data to identify areas for improvement and make necessary adjustments to maintain optimal performance.\",\"spans\":[{\"start\":161,\"end\":181,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-frequency/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Caching and reusing build artifacts saves significant time during the pipeline execution. For example, if you have dependencies or libraries that don't change often, cache them so they don't need to be rebuilt or downloaded every time. This reduces redundancy and speeds up the build process.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a0d0398a-0d32-4354-a7de-3701d34c098c\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"3. Build code artifacts once \",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"3. Build code artifacts once \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Build your code once and then use the same build artifacts across all environments. This approach maintains consistency, reduces duplication, and minimizes the risk of inconsistencies between environments.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Multiple builds can lead to subtle differences in the artifacts, even if the source code hasn't changed. These differences can cause inconsistencies that are hard to diagnose and resolve.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Using the same artifacts across development, testing, staging, and production environments helps you eliminate discrepancies from multiple builds. This consistency guarantees that what you test is exactly what you deploy, reducing the risk of unexpected issues in production.\",\"spans\":[{\"start\":45,\"end\":52,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/test-environments-101-definition-types-and-best/\",\"target\":\"_self\"}},{\"start\":54,\"end\":61,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-staging-environment/\",\"target\":\"_self\"}},{\"start\":67,\"end\":90,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-production-environment/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Here are a few best practices to keep in mind:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Centralized Artifact Repository: Store build artifacts in a centralized repository. Tools like JFrog Artifactory or Nexus Repository Manager can manage and distribute these artifacts across your pipeline stages.\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"strong\"},{\"start\":95,\"end\":112,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://jfrog.com/artifactory/\",\"target\":\"_blank\"}},{\"start\":116,\"end\":140,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.sonatype.com/products/sonatype-nexus-repository\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Immutable Artifacts: Once an artifact is built, help it remain immutable. Any changes to the code should trigger a new build, resulting in a new artifact version.\",\"spans\":[{\"start\":0,\"end\":20,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automated Build Processes: Automate your build process to consistently create and store artifacts. Use CI/CD tools like Jenkins, GitLab CI, or AWS CodePipeline to manage and automate these builds.\",\"spans\":[{\"start\":0,\"end\":26,\"type\":\"strong\"},{\"start\":120,\"end\":127,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/\",\"target\":\"_blank\"}},{\"start\":129,\"end\":138,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.gitlab.com/ee/ci/\",\"target\":\"_blank\"}},{\"start\":143,\"end\":159,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codepipeline/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"LaunchDarkly Deployments: Use LaunchDarkly's feature flags to decouple deployment from release and deploy consistent build artifacts across environments while controlling feature rollouts.\",\"spans\":[{\"start\":0,\"end\":26,\"type\":\"strong\"},{\"start\":62,\"end\":94,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For AI and ML workloads specifically, see our article on CI/CD pipelines for containerized AI development.\",\"spans\":[{\"start\":57,\"end\":105,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/best-ci-cd-pipelines-for-containerized-ai-development/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$c7c19ce8-d163-420c-8e8a-ff1557b44168\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"4. Automate tests\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"4. Automate tests\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Automated testing keeps your code reliable, maintainable, and ready for deployment at any time. Here are a few automated tests you should run to improve your CI/CD pipeline:\",\"spans\":[{\"start\":0,\"end\":17,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/automated-testing-in-launchdarkly/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Unit Tests: These tests focus on individual components or functions of your codebase to guarantee that each part works as expected in isolation. They are typically fast to run and should cover as much of the codebase as possible.\",\"spans\":[{\"start\":0,\"end\":11,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Integration Tests: These tests verify that different components of your application work together correctly. They help identify issues that may not be apparent in isolated unit tests but become evident when components interact.\",\"spans\":[{\"start\":0,\"end\":18,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"End-to-End Tests: These tests simulate real user scenarios and validate the entire application workflow from start to finish. They guarantee that the application functions correctly in a production-like environment (covering everything from the user interface to the database).\",\"spans\":[{\"start\":0,\"end\":17,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Prioritize faster tests (such as unit tests) early in the pipeline to catch issues quickly. Follow up with integration and end-to-end tests to validate more complex interactions. Make test results easily accessible to developers—with clear reporting and dashboards—to highlight any issues that need to be addressed.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Tools can help with your automation processes. Use infrastructure as code (IaC) tools like Terraform or Ansible to automate the setup of testing environments. Integrate automated testing tools with your CI/CD pipeline. Tools like Selenium, JUnit, and TestNG can help automate various types of tests and integrate seamlessly with CI/CD platforms.\",\"spans\":[{\"start\":91,\"end\":100,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.terraform.io/\",\"target\":\"_blank\"}},{\"start\":104,\"end\":111,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.ansible.com/\",\"target\":\"_blank\"}},{\"start\":230,\"end\":238,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.selenium.dev/\",\"target\":\"_blank\"}},{\"start\":240,\"end\":245,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://junit.org/\",\"target\":\"_blank\"}},{\"start\":251,\"end\":257,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://testng.org/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"However, keep in mind that automated testing isn't an end-all-be-all solution.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a2e9f093-3b54-451f-8ccb-6f90d9c831c9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Automating your processes is great for efficiency, but it can introduce security risks, too. Get your security team involved from the start and use security scanning tools in your pipelines to keep everything safe.\\\" — Darrin Eden, Senior Software Engineer, LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$a66c101d-c70b-412d-8387-c4ebdad0b4c4\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"5. Keep builds fast and simple\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Fast builds provide quicker feedback loops, allowing developers to identify and fix issues sooner. This accelerates the development process and improves overall efficiency.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$6cd508bd-000d-4f9c-bc46-88a66d12d021\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Matching the workload to a correctly sized cluster of runners, both vertically and horizontally, guarantees efficient resource utilization and faster build times.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$6230ec54-75a8-4cd2-82fe-c8b29ba8ab64\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Carefully manage and optimize your project's dependencies and build configurations. Unnecessary or outdated dependencies can slow down build times and introduce potential conflicts. Review and update dependencies regularly, and use dependency management tools to streamline this process.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$da09606a-c713-4f42-b307-670c45426c75\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Containerizing the workflow, minimizing dependencies, and monitoring workflow velocity with alerts on performance drops can lead to more stable and faster builds.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$d85f0459-505e-4730-894b-397e52155216\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Use straightforward and consistent build scripts and avoid overly complex configurations. This speeds up builds, reduces the likelihood of errors, and makes it easier to update and manage the build process over time.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Using feature flags with LaunchDarkly can help keep your builds fast and simple by enabling you to deploy features incrementally and test them in production environments. This approach reduces the need for complex branching strategies and allows you to focus on maintaining a clean and streamlined codebase.\",\"spans\":[{\"start\":6,\"end\":19,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_self\"}},{\"start\":133,\"end\":169,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$43255c30-1560-4286-a096-506412f44bf7\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"6. Use shared pipelines (DRY)\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"6. Use shared pipelines (DRY)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Adopting a \\\"Don't Repeat Yourself\\\" (DRY) approach helps you maintain efficient and maintainable CI/CD pipelines. Reusing pipeline configurations across projects promotes consistency, reduces duplication, and streamlines development processes.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The DRY principle stresses reducing repetition in your code and configurations. In the context of CI/CD pipelines, this means creating reusable components and templates that can be shared across multiple projects.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Instead of writing separate CI/CD configurations for each project, create common templates and configurations that can be reused. This saves time and guarantees that best practices and standards are consistently applied. Use tools that support templating and reusable configurations, such as:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Jenkins Shared Libraries\",\"spans\":[{\"start\":0,\"end\":24,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/doc/book/pipeline/shared-libraries/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"GitLab CI templates\",\"spans\":[{\"start\":0,\"end\":19,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.gitlab.com/ee/development/cicd/templates.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"YAML anchors in AWS CodePipeline\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/blogs/opensource/using-aws-codepipeline-and-open-source-tools-for-at-scale-infrastructure-deployment/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly's feature flags help you adopt the DRY approach by allowing you to manage feature releases consistently across multiple projects. Centralizing feature flag configurations guarantees all projects follow the same release practices, reducing the risk of inconsistencies and simplifying feature management.\",\"spans\":[{\"start\":0,\"end\":28,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/feature-flags/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$c3b7b4fc-f187-4610-9ab9-e808238f3be4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"7. Take a security-first approach\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"7. Take a security-first approach\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Adding security checks and practices throughout the pipeline helps you identify and mitigate vulnerabilities early. Here's how to make that happen:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automate Security Tests: Integrate automated security tests into your CI/CD pipeline. Double-check your tests run with every code commit and provide immediate feedback to developers.\",\"spans\":[{\"start\":0,\"end\":24,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Use Security Plugins and Tools: Leverage security plugins and tools that integrate with your CI/CD platform. These tools can provide real-time analysis and alerts for potential security issues.\",\"spans\":[{\"start\":0,\"end\":31,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Conduct Regular Audits: Regularly audit your CI/CD pipeline and application code to maintain compliance with security standards and best practices. Address any identified issues quickly to maintain a strong security posture.\",\"spans\":[{\"start\":0,\"end\":23,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Educate and Train Developers: Provide ongoing education and training for your development team on secure coding practices and the latest security threats.\",\"spans\":[{\"start\":0,\"end\":29,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly's feature flags let you control feature rollouts and manage access to new functionality by decoupling deployments from release—this lets you perform security testing on features in a production-like environment before they are widely available.\",\"spans\":[{\"start\":104,\"end\":139,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$75bebe19-5af7-4421-87c4-7e819d95e1e9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"8. Create test environments on demand\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"8. Create test environments on demand\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"On-demand test environments allow you to create and dismantle testing setups dynamically based on your testing needs. Spinning up and tearing down environments as needed helps you better mimic production conditions, test thoroughly, and maintain resource efficiency.\",\"spans\":[{\"start\":10,\"end\":27,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/test-environments-101-definition-types-and-best/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Replicate the production environment as closely as possible—this includes matching the following:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Configurations\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Software versions\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Networking settings\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Data sets\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Accurate test environments help identify issues that might only surface under production conditions.\",\"spans\":[{\"start\":9,\"end\":26,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/test-environment-best-practices-8-you-need-to-know/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Containerize your applications and dependencies to create isolated test environments. Containers can be quickly deployed, scaled, and removed, making them ideal for on-demand testing.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$75e73ca7-96e1-48c6-9619-634010bfac0b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Inconsistent environments can cause confusion and make it difficult to transfer knowledge and skills from development to production. Using containerization and creating consistent, reproducible builds guarantees your test environments accurately simulate production services.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$0993fbcd-1f91-4a06-929c-54c3eb8f6089\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"9. Monitor and measure your pipeline\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"9. Monitor and measure your pipeline\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Comprehensive monitoring and logging provide visibility into every aspect of your CI/CD pipeline. Use monitoring tools like Prometheus, Grafana, Datadog, or Elastic Stack to collect and visualize data on pipeline performance.\",\"spans\":[{\"start\":124,\"end\":134,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://prometheus.io/\",\"target\":\"_blank\"}},{\"start\":136,\"end\":143,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://grafana.com/\",\"target\":\"_blank\"}},{\"start\":145,\"end\":152,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.datadoghq.com/\",\"target\":\"_blank\"}},{\"start\":157,\"end\":170,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.elastic.co/elastic-stack\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Logging tools help capture detailed information about each pipeline run, including build times, test results, and deployment statuses. This visibility allows you to detect anomalies, understand trends, and diagnose issues promptly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Here are a handful of metrics to watch and track:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Build Time: The time it takes to complete a build from start to finish.\",\"spans\":[{\"start\":0,\"end\":11,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deployment Frequency: How often code changes are deployed to production.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Lead Time: The time it takes from code commit to deployment in production.\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Mean Time to Recovery (MTTR): The average time it takes to recover from a failed deployment.\",\"spans\":[{\"start\":0,\"end\":28,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZtC8cBAAAB8AJLMF\",\"type\":\"blog_post\",\"tags\":[\"mean time to restore\",\"MTTR\",\"dora metrics\"],\"lang\":\"en-us\",\"slug\":\"mean-time-to-restore-mttr-what-it-is--how-to-reduce-it\",\"first_publication_date\":\"2024-09-11T23:24:30+0000\",\"last_publication_date\":\"2026-09-10T15:40:06+0000\",\"uid\":\"mean-time-to-restore-mttr\",\"url\":\"/blog/mean-time-to-restore-mttr/\",\"link_type\":\"Document\",\"isBroken\":false}},{\"start\":0,\"end\":29,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Test Pass Rate: The percentage of tests that pass successfully.\",\"spans\":[{\"start\":0,\"end\":15,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Analyze the data from your monitoring and logging tools regularly to identify bottlenecks and inefficiencies in your pipeline. Address issues quickly to prevent them from impacting overall performance.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$75ebcce9-a8dd-4112-a53e-b4e03cfc1608\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"10. Involve the whole team in CI/CD implementation\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"10. Involve the whole team in CI/CD implementation\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Encourage a culture where everyone (from developers to operations and QA) feels responsible for the CI/CD pipeline's success. Promote cross-functional collaboration and guarantee that all team members understand their roles and how their contributions impact the overall process. Shared ownership leads to better communication, faster problem-solving, and a more cohesive team effort.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Provide your team with the necessary skills and know-how to implement and maintain CI/CD practices. Offer training sessions, workshops, and access to learning resources on CI/CD tools, automation practices, and DevOps methodologies. Encourage team members to share their knowledge and experiences through internal presentations, documentation, and peer learning sessions.\",\"spans\":[{\"start\":211,\"end\":231,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/devops-vs-cicd/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Create an environment where feedback is welcomed and valued. Regularly solicit feedback from team members on the CI/CD processes and tools being used. Conduct retrospectives and incident reviews to review what's working well and what needs improvement. Use this feedback to make iterative improvements to your CI/CD pipeline.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e293f3ca-7455-4c2c-93e8-6afa8432b23f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"11. Implement progressive delivery strategies\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"11. Implement progressive delivery strategies \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Progressive delivery builds upon the core principles of CI/CD by introducing additional control mechanisms that mitigate the risks associated with continuous deployment. It introduces safeguards and control levers that reduce the risks of continuous deployments.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"At a basic level, progressive delivery entails gradually releasing code changes. You may start a rollout with a canary deployment, for example, in which you release new features to a small subset of users—letting you monitor the impact of new features on a small scale and quickly address any issues. If the canary test is successful, the feature can be gradually rolled out to more users. \",\"spans\":[{\"start\":18,\"end\":38,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/\",\"target\":\"_self\"}},{\"start\":112,\"end\":129,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"You could then expand the rollout to beta users, then to users in the Western U.S., then Eastern U.S., and so on until you’ve released to all intended users.\",\"spans\":[{\"start\":37,\"end\":47,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly provides a robust feature management platform that enables safe and efficient progressive delivery. You can use feature flags to control feature visibility, conduct canary tests, and manage rollouts.\",\"spans\":[{\"start\":31,\"end\":58,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/feature-management/\",\"target\":\"_self\"}},{\"start\":178,\"end\":190,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-canary-testing-a-detailed-explanation/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$94f63642-a2e3-47f7-b11d-883133178037\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"12. Choose your CI/CD tools with care\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"12. Choose your CI/CD tools with care\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Look for tools that address your key challenges, whether it's automation, testing, deployment, or monitoring. Here are a few factors to consider:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Scalability: Double-check that the tools can scale with your organization's growth. They should handle increased workloads and larger projects without compromising performance.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Integration: Choose tools that integrate easily with your existing systems and workflows. This includes your version control system, build tools, testing frameworks, and deployment platforms.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Community Support: Choose tools with solid community support and active development. An active community can provide valuable resources, plugins, extensions, and quick answers to issues.\",\"spans\":[{\"start\":0,\"end\":18,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$40356067-3f72-40d9-a79d-002684589b81\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Combining multiple complex tools into a continuous workflow demands increasing expertise and maintenance. Whenever possible, outsource to SaaS solutions to simplify management. As your system grows in complexity and scale, be ready to insource components and integrations. Leveraging open-source tools can also provide valuable community support and resources.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$3edb3f01-4549-4fdf-ab0b-ebba4f5c08ac\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"13. Create a culture of continuous improvement\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"13. Create a culture of continuous improvement\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Open communication and regular feedback are the foundations of continuous improvement:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Environment: Foster an environment where team members feel comfortable sharing their thoughts, ideas, and concerns.\",\"spans\":[{\"start\":0,\"end\":13,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Feedback: Regularly solicit feedback on your CI/CD processes and tools, and use this input to identify areas for improvement.\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Meetings: Conduct regular team meetings, retrospectives, and post-incident reviews to discuss successes and challenges openly.\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Schedule regular reviews of your CI/CD pipeline to identify bottlenecks, inefficiencies, and areas that could benefit from automation. Use metrics and feedback to guide these reviews, and implement changes incrementally to avoid disrupting ongoing work. Identify repetitive tasks that can be automated and implement the necessary tools and scripts to handle them.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9f54259c-5194-45a1-8afa-92c37e651b87\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Adopt CI/CD best practices with LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Adopt CI/CD best practices with LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Implementing these CI/CD best practices helps you accelerate your development process, reduce deployment risks, and continuously improve your workflows—and those are essential outcomes for delivering high-quality software consistently and reliably.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And we can help.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly's feature management platform empowers you to implement progressive delivery strategies, manage feature flags, and maintain safe and controlled rollouts. This lets you decouple deployments from releases, perform canary and blue/green deployments, and facilitate quick rollbacks.\",\"spans\":[{\"start\":236,\"end\":258,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/blue-green-deployments-a-definition-and-introductory/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Start your free trial today (or get a demo) to see how LaunchDarkly can help you ship faster, safer, and smarter software.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup?_gl=1*i99fys*_gcl_au*MTI4Mjc0NDg5Ny4xNzE2MjIxMzg2\",\"target\":\"_blank\"}},{\"start\":32,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$95d15822-d6b7-4985-9a11-9fd53193b3f4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Ultimate Guide to CI/CD Best Practices to Streamline DevOps\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Learn the fundamental CI/CD best practices that'll help you streamline and improve DevOps workflows.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2314},\"alt\":\"Light green infinity loop CI/CD best practices blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format,compress\",\"id\":\"Zo1hWB5LeNNTw9CB\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZfysZxEAACQAD_2k\",\"uid\":\"what-is-software-deployment\",\"url\":\"/blog/what-is-software-deployment/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZfysZxEAACQAD_2k%22%29+%5D%5D\",\"tags\":[\"decouple deploy and release\",\"Blue-green deployment\",\"canary deployment\",\"Deployment\",\"software deployment\"],\"first_publication_date\":\"2024-03-22T01:46:58+0000\",\"last_publication_date\":\"2026-09-04T20:57:27+0000\",\"slugs\":[\"what-are-software-deployments-methodology--best-practices\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"What Are Software Deployments? Methodology + Best Practices\",\"spans\":[]}],\"author\":{\"id\":\"Y0SoxBAAACMAoQ6O\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"peter-mccarron\",\"first_publication_date\":\"2022-10-10T23:20:40+0000\",\"last_publication_date\":\"2022-10-10T23:20:40+0000\",\"uid\":\"peter-mccarron\",\"url\":\"/blog/author/peter-mccarron/\",\"link_type\":\"Document\",\"key\":\"eb41dc63-8ff6-45e1-8cca-b04ace6a7227\",\"isBroken\":false},\"timestamp\":\"2024-03-21T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"f2d3ecd0-ea2b-41fb-9dd9-15b7efe6a3f6\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"45d5f6d0-ce4b-4beb-8cdd-8c7fc9b7bfcd\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"5d7f1699-5464-4285-b2e8-87671559ea26\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"What is a software deployment? Featured blog post image - code snippets, colorful UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress,format\u0026rect=0,0,3999,2314\u0026w=3000\u0026h=1736\",\"id\":\"ZfyttxEAACQAEAOO\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.7502160760587727,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZfS70RAAACIAo9RW\",\"type\":\"blog_post\",\"tags\":[\"Blue-green deployment\",\"canary deployment\",\"Progressive Delivery\",\"Feature Flags\",\"feature flags\"],\"lang\":\"en-us\",\"slug\":\"6-deployment-strategies-and-how-to-choose-the-best-for-you\",\"first_publication_date\":\"2024-03-15T22:10:01+0000\",\"last_publication_date\":\"2026-09-04T20:54:26+0000\",\"uid\":\"deployment-strategies\",\"url\":\"/blog/deployment-strategies/\",\"link_type\":\"Document\",\"key\":\"4cc5f96f-169e-407d-9796-0ce8910c244c\",\"isBroken\":false}},{\"post\":{\"id\":\"ZbrU9xMAACQA53Bi\",\"type\":\"blog_post\",\"tags\":[\"feature management\",\"Feature Management\",\"Canary Release\",\"Canary Launch\",\"canary testing\",\"canary deployment\",\"Deployment\",\"Feature Flags\",\"deployments\",\"feature flags\"],\"lang\":\"en-us\",\"slug\":\"why-decouple-deployments-from-releases\",\"first_publication_date\":\"2024-01-31T23:17:14+0000\",\"last_publication_date\":\"2026-08-20T20:07:25+0000\",\"uid\":\"why-decouple-deployments-from-releases\",\"url\":\"/blog/why-decouple-deployments-from-releases/\",\"link_type\":\"Document\",\"key\":\"0f8adfe2-f73c-401e-9b9a-24cc6303acb2\",\"isBroken\":false}},{\"post\":{\"id\":\"Y9AdshAAAMxtkWoo\",\"type\":\"blog_post\",\"tags\":[\"release process\",\"release management\",\"canary deployment\",\"Feature Management\"],\"lang\":\"en-us\",\"slug\":\"what-is-a-software-release\",\"first_publication_date\":\"2023-02-09T18:58:33+0000\",\"last_publication_date\":\"2026-08-20T20:05:34+0000\",\"uid\":\"guide-what-is-a-software-release\",\"url\":\"/blog/guide-what-is-a-software-release/\",\"link_type\":\"Document\",\"key\":\"6b22ebb1-a59e-4e5b-b055-6679ec191704\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"key_takeaway_title\":[],\"takeaway_paragraph\":[]},\"items\":[{\"bullet_point\":[{\"type\":\"paragraph\",\"text\":\"Developing a comprehensive software deployment strategy is difficult for most organizations.\",\"spans\":[]}]},{\"bullet_point\":[{\"type\":\"paragraph\",\"text\":\"Changes in the software deployment landscape and technologies have only increased this difficulty.\",\"spans\":[]}]},{\"bullet_point\":[{\"type\":\"paragraph\",\"text\":\"Feature management solutions reduce the complexity and friction of software deployments.\",\"spans\":[]}]}],\"id\":\"key_takeaways$45c77f20-f7eb-45ed-b867-3fcf8dd62bd8\",\"slice_type\":\"key_takeaways\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Software deployment is the process and strategy of taking the new code that developers write and pushing it to an environment where the new functionality is consumable for end users. Sounds simple enough, right? The whole point of writing code and software development is to solve a problem for our customers, and yet, software deployment is slowed by developers spending time on bug fixes or other potential issues. In this article, we’ll explore:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Why software deployments are so challenging for many organizations?\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"What does a software development process look like in practice?\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"What the difference is between software deployments and releases? \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"How do we optimize the release process with feature management? \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Let’s start by defining exactly what we mean by “software deployments”. \",\"spans\":[]},{\"type\":\"embed\",\"oembed\":{\"embed_url\":\"https://launchdarkly.wistia.com/medias/xzcxkg67s5\",\"type\":\"video\",\"version\":\"1.0\",\"title\":\"What is a Software Deployment?\",\"provider_name\":\"Wistia, Inc.\",\"provider_url\":\"https://wistia.com\",\"thumbnail_url\":\"https://embed-ssl.wistia.com/deliveries/4117999f8477c0523e228ea31d21ed67.jpg?image_crop_resized=960x540\",\"thumbnail_width\":960,\"thumbnail_height\":540,\"html\":\"\u003ciframe src=\\\"https://fast.wistia.net/embed/iframe/xzcxkg67s5\\\" title=\\\"What is a Software Deployment? Video\\\" allow=\\\"autoplay; fullscreen\\\" allowtransparency=\\\"true\\\" frameborder=\\\"0\\\" scrolling=\\\"no\\\" class=\\\"wistia_embed\\\" name=\\\"wistia_embed\\\" msallowfullscreen width=\\\"960\\\" height=\\\"540\\\"\u003e\u003c/iframe\u003e\\n\u003cscript src=\\\"https://fast.wistia.net/assets/external/E-v1.js\\\" async\u003e\u003c/script\u003e\"}}]},\"items\":[{}],\"id\":\"wysiwyg$3a364000-0171-4471-98b8-0c3ed91143b4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Understanding software deployments\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Understanding software deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"When we talk about software deployments, traditionally we’re referring to the process of pushing changes to a specific environment and making that new application code available to some sort of end-user group. Feature flags have changed the way we think about software deployments by allowing us to separate the deployment (pushing code to a production environment) from the release (making those features available to users). We’ll dive into that a bit more later, but let’s first pick apart the deployment aspect of things. \",\"spans\":[{\"start\":210,\"end\":223,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Think about the websites you visit, the apps you use on your phones, the virtual interfaces that you interact with on a daily basis. All of these solutions are the result of software deployments. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Deployments are complex. The complexity is rooted in application architecture. Software applications consist of two umbrella categories: front-end and back-end components. The frontend refers to what we see or interact with, and the backend is the underlying plumbing that makes everything work. This plumbing is critical and where we see a lot of complexity start to arise, but why? \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"A history of how infrastructure has shaped deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The history of software is a story of infrastructure and application code. Application code has changed in the sense of better frameworks and more developer-friendly tooling, but largely the process of writing code has remained the same. Infrastructure, on the other hand, has undergone some fairly large changes over time.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Going back a few years, we saw the introduction of virtual machines. Virtual machines (VMs) enabled organizations to simulate computer environments without requiring end-users to have access to physical hardware. And while VMs made software more readily available, it was still strongly tied to an organization's physical footprint, e.g., the number of data centers and servers they maintained that actually powered these VMs. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Then came containers, which reshaped the way that software was packaged and delivered. Developers create shareable images with all the necessary dependencies pre-loaded, reducing the time that it takes for code to go live. As a result, organizations realized they could run software anywhere, and the major cloud providers started offering compute as a service. This, in turn, led to the creation of orchestration platforms like Kubernetes, which helped organizations run their containers at scale. But Kubernetes still requires a great deal of operational overhead and management, which ultimately still slows down the deployment process.\",\"spans\":[{\"start\":400,\"end\":423,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-container-orchestration-exactly-everything/\",\"target\":\"_self\"}},{\"start\":503,\"end\":513,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-with-kubernetes/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cut to today, where we’re seeing a rise in application hosting platforms like Vercel, Netlify, Railway, and more. These platforms enable developers to deploy code without having to also maintain the back-end infrastructure that that code will rely on.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Understanding that developers just want to push code\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So what was the point of this exploration? The common thread here is that developers just want to be able to push code quickly to a live environment without having to think about the underlying infrastructure system. This is the core challenge in software deployments: finding a way to accelerate code delivery without having to wait on the infrastructure to catch up. And there’s evidence to show that increased deployment frequency leads to better organizational results. As illustrated in Google’s State of DevOps Report, higher performing teams tend to deploy more frequently. Specifically, the highest-performing organizations deploy new code multiple times a day! \",\"spans\":[{\"start\":413,\"end\":433,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-frequency/\",\"target\":\"_self\"}},{\"start\":501,\"end\":523,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://cloud.google.com/devops/state-of-devops\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This push to accelerate code delivery is what ultimately led to the rise of DevOps. Combining the efforts of development teams and operations teams to build dynamic infrastructure environments that can support frequent software deployments. The key element to achieve this is automation. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"How infrastructure automation accelerates software delivery\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"DevOps tooling prevents infrastructure from becoming a block for accelerating software deployments. Infrastructure automation tools like HashiCorp Terraform, RedHat Ansible, Chef, and Puppet all help accelerate the creation and ease the ongoing configuration management of infrastructure environments. Rather than having operators individually provision and configure environments via ticketing requests, organizations can standardize configurations and package them in shareable templates for repeatable use. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Having the ability to create infrastructure on-demand reduces friction in the software delivery process. In fact, organizations have started leveraging these infrastructure and configuration management tools as part of their broader deployment pipeline through a process called CI/CD. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Continuous Integration/Continuous Delivery (CI/CD)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"CI/CD, or Continuous Integration/Continuous Deployment, is a philosophy based on consistently iterating on code and immediately deploying those changes through automation. The idea is that by continuously pushing changes, development teams become unblocked in their ability to innovate. As we just covered, making infrastructure available on-demand opens the door for this methodology and results in tooling like GitHub Actions, CircleCI, GitLab, and many many more. \",\"spans\":[{\"start\":128,\"end\":170,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/how-it-works/platform/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The goal of these software deployment tools is to automate the delivery of new code to different environments, e.g., development, staging, or production environments. Using infrastructure automation and CI/CD tooling, organizations can push new code into their version control systems, provision a new infrastructure environment, and deploy the changes to that environment with little to no developer or operator intervention. Using CI/CD tooling and automation helps reduce the chances of human-error where changes are pushed to the wrong environment. That is how you accelerate software deployments.\",\"spans\":[{\"start\":18,\"end\":43,\"type\":\"hyperlink\",\"data\":{\"id\":\"Z1JFiBAAAB8AhKhz\",\"type\":\"blog_post\",\"tags\":[\"software development\"],\"lang\":\"en-us\",\"slug\":\"the-ultimate-software-application-deployment-tools-for-2025\",\"first_publication_date\":\"2024-12-06T00:38:50+0000\",\"last_publication_date\":\"2026-08-20T20:30:10+0000\",\"uid\":\"software-development-tools\",\"url\":\"/blog/software-development-tools/\",\"link_type\":\"Document\",\"isBroken\":false}},{\"start\":130,\"end\":137,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-staging-environment/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$9d6218f7-bcca-4cc2-858c-5b1e73b2ea66\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"How organizations deploy software\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"How organizations deploy software\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Now that we’ve established what a software deployment is and how we’ve gotten to where we are today, let’s explore what a modern software deployment strategy looks like. Remember that the goal is to create a frictionless process for organizations to push code as it is written, not all at once through a “big-bang” deployment.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Planning and preparing software deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The first stage for creating a software deployment process is actually planning what the organizational process will look like. In this stage, we’re trying to define what tools are going to be used, who the relevant stakeholders are, what the pipeline looks like, how approvals are going to work, etc. In many cases, this phase should be focused on optimization and gathering specific requirements for the software development lifecycle. From there, development teams will create documentation around what the proposed workflow should look like. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"From a tooling perspective, this is where many proof of concepts are likely to occur. Organizations have to make a decision on what their application architecture will look like (microservices vs. monolithic), where their infrastructure will reside (on-premise vs. cloud), and a whole host of other details. Having a strong deployment strategy is the foundation of achieving that Continuous Delivery state because you need a way to create consistency across all teams within the organization. \",\"spans\":[{\"start\":179,\"end\":207,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/migrating-legacy-monolithic-applications-microservices/\",\"target\":\"_blank\"}},{\"start\":250,\"end\":270,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/the-pros-and-cons-of-cloud-deployment-models/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Developing and staging deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The next step on the deployment checklist is for developers to start writing their code. Organizations need to have determined what their testing environments will look like and how many environments they are looking to maintain, e.g., dev, testing, QA, staging, etc. This is the first entrypoint for some of our CI/CD solutions. As code is written and gets ready for testing, it needs to be pushed to each of these various environments. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Many developers will use tools like GitHub Actions or CircleCI in conjunction with a series of tags to make sure that code gets delivered to the correct location. When new code is published within their version control system, the commit will trigger a new build for packaging that release and then send it to the requested destination. It’s here that code may undergo a series of unit tests as well to ensure application stability before moving to the production environment.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Release and rollout processes\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Following QA and testing, the new software can now move to the production environment, sometimes referred to as a release cycle, but we’ll explain in a moment how that is actually slightly different. This is one of the precarious stages of the deployment process because it’s where external users start to interact with the new code. No matter how much testing you do, there’s always the chance of bugs creeping through. To minimize the potential impacts of those bugs, organizations have a few different deployment methods.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Blue/green deployments \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Blue/green deployments are one of the most common deployment methods that organizations rely on today. The idea is that you evenly distribute application resources between two environments, blue for the previous version of your application and green for the new one. You then use networking patterns to control access to each environment and then test/measure how the new functionality in the green environment performs. If things are going well, you can divert more traffic to the green environment, if not, revert everyone back to the blue environment and revert the new deployment back to development and avoid downtime. \",\"spans\":[{\"start\":0,\"end\":22,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/blue-green-deployments-a-definition-and-introductory/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Canary deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Unlike blue/green deployments, canary deployments are the process of deploying specific subsets of code in a new environment and slowly introducing live traffic to those new capabilities, e.g., introducing a new API for your front-end services. Just as the name suggests, this new feature is the “canary in the coal mine” and serves as an early warning system of a potential larger problem that could lead to extended downtime. The idea is that by isolating new capabilities and starting with a smaller subset of users, you can control the impact radius when something goes wrong. \",\"spans\":[{\"start\":31,\"end\":49,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Shadow deployments \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If there are major concerns about making new capabilities visible to production end users, then shadow deployments may be right for that particular organization. With a shadow deployment, the new capabilities are released in a parallel production environment, but not made available like they are in blue/green or canary deployments. This allows organizations to test the new environment in what will be a live production environment, but can instead use internal testers to validate performance.\",\"spans\":[{\"start\":411,\"end\":433,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-production-environment/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Rolling deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If maintaining additional environments, like in a canary, blue/green, or shadow deployments, is too burdensome, organizations may opt for a rolling deployment. Rolling deployments are the process of incrementally replacing elements of an application, infrastructure and all. For example, Amazon Web Services (AWS) talks about rolling deployments in the context of ECS. When a new version of an application is ready to be launched, the old container is deprecated and one containing the new version of the application is provisioned. Rolling deployments are very similar to the concept laid out in the Ship of Theseus thought experiment, where the ship was slowly replaced over time eventually becoming something new altogether. Microservice or container architectures make rolling deployments a bit more viable because the application consists of individual parts that are more easily swapped out. \",\"spans\":[{\"start\":140,\"end\":158,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/blue-green-deployments-versus-rolling-deployments/\",\"target\":\"_blank\"}},{\"start\":600,\"end\":635,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://en.wikipedia.org/wiki/Ship_of_Theseus\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Downsides of common deployment strategies\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"While each of these deployment strategies do offer a large number of benefits, they all carry a similar challenge: infrastructure management. Even in the case of rolling deployments, you're cycling through a container lifecycle which can introduce risk if the new container doesn’t provision correctly. Seems like a lot of risk when you’re just testing a new placement for a banner on your home page. Feature flags and feature management solutions help organizations streamline their rollout strategies, but without the additional overhead of managing infrastructure. We’ll touch on that again later in this article. \",\"spans\":[{\"start\":20,\"end\":41,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-strategies/\",\"target\":\"_blank\"}},{\"start\":401,\"end\":414,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Monitoring and feedback strategies\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The final piece of the deployment process is monitoring metrics of changes in real-time and gathering end user feedback, either directly or indirectly. Utilizing application performance monitoring tools (APMs) like Datadog, Dynatrace, New Relic, or Honeycomb help organizations monitor the status of their software updates and help detect any performance issues that could lead to a larger outage. Having a robust monitoring system in place is critical for accelerating the software deployment cadence because it provides a safety net to become aware of hiccups before they become bigger problems. \",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$965152e8-d964-406e-8ee4-cd7833e6d5f5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Difference between deploy and release\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Difference between deploy and release\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"At this point, you may be feeling like a lot of the topics discussed are very familiar. If you’ve read or seen any of our content on decoupling deploy from release, that may be why. And so the natural next question is, what is the difference between software deployment and software release? For a full breakdown, make sure you check out this article where we cover it in detail about the differences between the deploy and release. For brevity’s sake though, we’ll define it like this—”software deployment” is the process of pushing new code to an environment, “software release” is making it available and accessible to end users. \",\"spans\":[{\"start\":378,\"end\":431,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Feature management for continuous deployment\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"As mentioned earlier, the challenge with the deployment strategies is that they all rely on infrastructure management and resources. While this is viable for some larger releases, not every single one needs to have its own dedicated environment for testing in production. Feature flags allow us to control the release process without interrupting the continuous deployment process. Code is still pushed as it is completed, but features are made available based on an entirely different lifecycle and approval process and does not require additional deployments. \",\"spans\":[{\"start\":249,\"end\":270,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Experimenting on deployments \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Beyond just the control element, feature management platforms allow us to run experiments to measure the effectiveness of our deployments. Organizations can gather both performance and business insights by running A/B tests within a single application vs. across multiple deployments. Feature management platforms like LaunchDarkly make it possible to integrate experimentation into the release strategy instead of something that needs to be configured as a separate process. \",\"spans\":[{\"start\":74,\"end\":89,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/a-guide-to-experimentation-in-launchdarkly/\",\"target\":\"_blank\"}},{\"start\":214,\"end\":223,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/mobile-app-ab-testing/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Remediation and incident management\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"APMs and monitoring tools provide a great safety net, but they don’t alleviate the pain of a rollback process. In the event that an issue with a deployment is detected and the code has to be removed, it requires essentially another software deployment, just with a previous version of the code. Feature management solutions can leverage the monitoring data from APMs, but when problems are detected, a feature can just be toggled off, no new deployment required. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Software deployments are a challenging but necessary process in any modern organization. Software solutions touch so many aspects of our daily lives and in order to provide the best experience possible, developers need to be able to deploy quickly and frequently. We discussed the various deployment strategies, but having a strong feature management solution is also critical. If you’re curious to see how others have implemented feature management strategies in their software deployment strategies, take a look at some examples from IBM, Hireology, CircleCI, and Coder.\",\"spans\":[{\"start\":536,\"end\":539,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/ibm/\",\"target\":\"_blank\"}},{\"start\":540,\"end\":550,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/hireology/\",\"target\":\"_blank\"}},{\"start\":552,\"end\":560,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/circleci/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$e4fd7080-df23-4bbb-a3d0-03f367c8a300\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Using LaunchDarkly to deploy software faster with less risk\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Using LaunchDarkly to deploy software faster with less risk\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly is a feature management and experimentation platform that enables 5K+ organizations to dramatically improve their software deployment processes. LaunchDarkly gives product delivery teams the safeguards and control to continuously deliver software. Moreover, it enables you to progressively deliver new features to specific audience segments and/or random percentages of users—all at your own pace. It also enables you to immediately disable broken features in runtime without needing to push a fix through your deployment pipeline. \",\"spans\":[{\"start\":18,\"end\":65,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/how-it-works/platform/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$d4de90e0-f032-4533-be66-9f3feba5e5a8\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"video_type\":\"YouTube\",\"youtube_id\":[{\"type\":\"paragraph\",\"text\":\"KvAJ6t7TPlA\",\"spans\":[]}]},\"items\":[{}],\"id\":\"youtube_video$f147f603-6f6b-4c80-91f2-a9f5bb089c64\",\"slice_type\":\"youtube_video\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Software Development Best Practices \u0026 Methods\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Software development strategies and processes change over time. Learn how organizations deploy software and best practices for software development.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2314},\"alt\":\"What is a software deployment? Featured blog post image - code snippets, colorful UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress,format\",\"id\":\"ZfyttxEAACQAEAOO\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZetbBBAAAB8ATTQL\",\"uid\":\"modern-devops-operating-continuously\",\"url\":\"/blog/modern-devops-operating-continuously/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZetbBBAAAB8ATTQL%22%29+%5D%5D\",\"tags\":[\"product experimentation\",\"a/b testing\",\"DevOps\",\"Progressive Delivery\",\"Experimentation\",\"Trunk-Based Development\"],\"first_publication_date\":\"2024-03-11T18:30:50+0000\",\"last_publication_date\":\"2026-07-15T17:02:14+0000\",\"slugs\":[\"modern-devops-the-shift-to-operating-continuously\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Modern DevOps: The Shift to Operating Continuously\",\"spans\":[]}],\"author\":{\"id\":\"YWB-eRIAACAAUdSy\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"brian-rinaldi\",\"first_publication_date\":\"2021-10-12T16:47:53+0000\",\"last_publication_date\":\"2021-10-12T16:47:53+0000\",\"uid\":\"brian-rinaldi\",\"url\":\"/blog/author/brian-rinaldi/\",\"link_type\":\"Document\",\"key\":\"bcf2609e-4494-4b7f-9423-fa9b538b0a52\",\"isBroken\":false},\"timestamp\":\"2024-03-11T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"c38d6302-2932-4e1a-9ab2-7ca9869d7df3\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"258c0a0a-e99c-48e9-bddf-8b4b057b4d2d\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"da1290a8-bd46-4d17-ba4b-98aea48733eb\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZWmRAAACEAgbPz\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"product-experimentation\",\"first_publication_date\":\"2023-11-28T21:08:06+0000\",\"last_publication_date\":\"2024-07-02T17:46:43+0000\",\"uid\":\"product-experimentation\",\"url\":\"/blog/category/product-experimentation/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Product experimentation\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"86375b6c-248a-4c73-9c9c-d02cb220651c\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"Modern-DevOps-the-Shift-to-Operating-Continuously-featured image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress,format\u0026rect=0,0,3999,2314\u0026w=3000\u0026h=1736\",\"id\":\"Ze9HvhAAACAApSFy\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.7502160760587727,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZUxxHRIAACUAWUdu\",\"type\":\"blog_post\",\"tags\":[\"feature management\",\"release management\",\"Canary Release\",\"Progressive Delivery\",\"Feature Flags\",\"feature flag management\"],\"lang\":\"en-us\",\"slug\":\"the-new-software-release-lifecycle-releasing-measuring-and-iterating-on-software-in-production-with-launchdarkly\",\"first_publication_date\":\"2023-11-16T00:07:50+0000\",\"last_publication_date\":\"2026-07-15T17:08:19+0000\",\"uid\":\"the-new-software-release-lifecycle\",\"url\":\"/blog/the-new-software-release-lifecycle/\",\"link_type\":\"Document\",\"key\":\"e6b69665-fa63-4157-9e01-dc3a0266e5e2\",\"isBroken\":false}},{\"post\":{\"id\":\"ZTG9zxAAACIAQUTT\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"galaxy-23-product-release\",\"first_publication_date\":\"2023-10-24T17:37:05+0000\",\"last_publication_date\":\"2024-01-18T23:18:41+0000\",\"uid\":\"galaxy-2023-product-release\",\"url\":\"/blog/galaxy-2023-product-release/\",\"link_type\":\"Document\",\"key\":\"aee8f962-8ecf-479f-918c-e633b2e3010d\",\"isBroken\":false}},{\"post\":{\"id\":\"ZXdTGRAAACAAFTGy\",\"type\":\"blog_post\",\"tags\":[\"AWS\",\"GenAI\",\"AI\",\"Amazon Bedrock\",\"feature flags\"],\"lang\":\"en-us\",\"slug\":\"ai-development-with-launchdarkly-release-measure-and-iterate\",\"first_publication_date\":\"2023-12-11T19:05:39+0000\",\"last_publication_date\":\"2026-09-04T18:21:31+0000\",\"uid\":\"ai-development-with-launchdarkly\",\"url\":\"/blog/ai-development-with-launchdarkly/\",\"link_type\":\"Document\",\"key\":\"19d947b1-e577-4df5-9d8b-79298af28f33\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Images can have an enormous impact on our understanding of a concept. This is hard wired in our brains. Studies have shown that it can take 1.2 to 2.4 seconds to comprehend an eight-word sentence while we process images in as little as 13 milliseconds. Thus images have a unique ability to influence our comprehension and perception.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"What does this have to do with DevOps? The traditional DevOps infinity loop (pictured below) is frequently attributed to Dustin Whittle in a post written in 2013. (An interesting side note is that the image itself is now broken in the original post.)\",\"spans\":[{\"start\":141,\"end\":161,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.appdynamics.com/blog/engineering/devops-scares-me-part-2/\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$97969289-8a85-45eb-b0e4-3854cecb7b43\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":946},\"alt\":\"DevOps-infinity-loop image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ee3b706b-7c2d-4a9a-9cdd-d71d2c29a226_DevOps.png?auto=compress,format\",\"id\":\"Ze9IzxAAACAApSY_\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$2cb4196f-51a9-4e91-a7c4-5f65a583a3fd\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"As you can see, it portrays DevOps as a sequence of phases. Visually, the completion of the prior phase is what triggers the next phase. For example, planning begins and ends before code and coding ends before the build begins and so on. However, the way this illustration was described in the text of the post focused more on the link between Dev and Ops and not the specific sequence of phases that the image has seared into our brains:\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$72c4f8b8-f950-4717-bd25-be2c56a71296\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“I like to think DevOps can be explained simply as operations working together with engineers to get things done faster in an automated and repeatable way.”\",\"spans\":[]}]},\"items\":[{}],\"id\":\"simple_quote$94cf0461-ae54-4a90-8875-af95ff69ec6e\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"DevOps arguably never fell neatly into the sequential phases that the illustration lays out but, without a doubt, modern DevOps doesn't occur in a sequence of phases. These processes occur in parallel and often out of order. For example, testing may occur both before and after release if you use a test in production strategy and, if you're using feature flags, release will come after deploy.\",\"spans\":[{\"start\":348,\"end\":361,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\"}}]},{\"type\":\"paragraph\",\"text\":\"But if DevOps does not have a linear structure, how do we make sense of it and build the processes effectively?\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Taking a different perspective\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"In our book Operating Continuously, Edith Harbaugh, Cody De Arkland and I focus on the operations side of the loop. We lay out the best practices and processes that organizations are using to collaborate continuously and eliminate the step-by-step processes and dependencies that create the “baton handoff” motion between teams. Instead we lay out a concept of continuous operation with steps that happen in parallel, enabling ops teams to operate more efficiently and companies to deliver value to users at a consistent and rapid pace.\",\"spans\":[{\"start\":12,\"end\":34,\"type\":\"em\"},{\"start\":12,\"end\":34,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.amazon.com/Operating-Continuously-Practices-Accelerating-Software/dp/1098117298\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$b02d63c8-e7fa-4089-87a1-ed6d60bec172\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":930},\"alt\":\"New Ops loop in DevOps infinity loop - diagram\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/5d436bd4-7188-42ce-b6b0-c96d2a1c669d_Ops+Cycle.png?auto=compress,format\",\"id\":\"Ze9KbxAAACAApS2F\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$ff7d3531-035e-4158-af26-fd83040f41dc\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"You'll notice that some steps have been reordered and others renamed. Let's look at how this differs from the traditional ops cycle.\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Deploy\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The deployment process covers the workflow of moving compiled code onto a destination infrastructure or software platform. While this may seem fundamentally the same as the old model, a key differentiator here is that deploy and release are decoupled via feature flags. Wherein the old model would use a branching strategy that meant that deploys were large and infrequent, modern deploys are small and frequent using a trunk-based development model. This helps eliminate many of the bottlenecks—for instance, complex merge conflicts—that plagued the traditional system.\",\"spans\":[{\"start\":218,\"end\":250,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\"}},{\"start\":420,\"end\":449,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/introduction-to-trunk-based-development/\"}}]},{\"type\":\"heading3\",\"text\":\"Release\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Most frequently, in the old model, deployment and release were linked. In fact, that is why the order was inverted in the older model, because release was about preparing code to be ready to deploy since, once code was deployed, it was typically live in production. Strategies like canary deployments existed, but required a lot of cost and effort to implement because they necessitated standing up duplicate infrastructure. Feature flags brought a fundamental shift to this way of operating by making things like testing in production, beta programs, progressive delivery and targeted rollouts relatively trivial to implement and thereby shifted the release responsibility to the ops side of the circle.\",\"spans\":[{\"start\":514,\"end\":535,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\"}},{\"start\":537,\"end\":550,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\"}},{\"start\":552,\"end\":572,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/guides/progressive-delivery/\"}}]},{\"type\":\"heading3\",\"text\":\"Operate\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Incidents play a heavy role in operations because, when incidents aren’t handled well, your operations team may find it has little time for anything else. A newer model of operations utilizing feature flags minimizes the risk of incidents via kill switches that can mitigate an incident immediately—without rollbacks or redeploys. Increasingly, these kill switches are being automated as well, meaning incidents can be detected by an observability platform integration and resolved automatically, without the need of manual human intervention. These sorts of changes free up resources to focus on the people, processes and culture that make an organization operate smoothly and efficiently.\",\"spans\":[{\"start\":243,\"end\":256,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-kill-switch-software-development/\"}}]},{\"type\":\"heading3\",\"text\":\"Measure and experiment\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Monitoring and observability are now blended into the operate step, creating the opportunity to implement practices that quantify the efficacy of the features we are releasing to end users more proactively. Measuring is about identifying, tracking, and learning from activities and events that occur within your application or from user interactions with it. Whereas experimentation enables us to proactively test whether we are releasing the right features to our users. Does the new code bring the performance boost we anticipated? Does a design change impact conversions? Answering these types of questions via experimentation can provide invaluable insights for our future decisions.\",\"spans\":[{\"start\":367,\"end\":382,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/experimentation/\"}}]},{\"type\":\"heading2\",\"text\":\"Where to go from here\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"How does this all connect with the dev side of the infinity loop? Well, rather than an infinite loop, I'd think of it more like concentric circles sharing a common center or, even better, interconnected gears. In a gears metaphor, both circles, dev and ops, are running continuously and powering each other. Alternatively, if one side is failing to keep up or grinds to a halt, it will negatively impact the other side's ability to keep churning. Each side needs the other to turn efficiently to operate at full force.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"How does this look in practice? The full book offers a lot of guidance around processes and implementation for your operations that can take many of the high level concepts discussed here and turn them into actionable steps. Grab your copy of Operating Continuously here.\",\"spans\":[{\"start\":225,\"end\":271,\"type\":\"strong\"},{\"start\":225,\"end\":270,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.amazon.com/Operating-Continuously-Practices-Accelerating-Software/dp/1098117298\"}},{\"start\":243,\"end\":265,\"type\":\"em\"}]}]},\"items\":[{}],\"id\":\"wysiwyg$b00a3463-b1bc-449b-8f3e-04de517d5c56\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Modern DevOps: Operating Continuously\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Modern DevOps runs as continuous, parallel workflows, not linear phases. Learn how feature flags and rollouts help teams manage release risk.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2314},\"alt\":\"Modern-DevOps-the-Shift-to-Operating-Continuously-featured image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress,format\",\"id\":\"Ze9HvhAAACAApSFy\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZTG9zxAAACIAQUTT\",\"uid\":\"galaxy-2023-product-release\",\"url\":\"/blog/galaxy-2023-product-release/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZTG9zxAAACIAQUTT%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2023-10-24T17:37:05+0000\",\"last_publication_date\":\"2024-01-18T23:18:41+0000\",\"slugs\":[\"galaxy-23-product-release\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":null,\"title\":[{\"type\":\"heading1\",\"text\":\"Galaxy ‘23 Product Release\",\"spans\":[]}],\"author\":{\"id\":\"ZPn68BAAACEAs_R3\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"jenna-bilotta\",\"first_publication_date\":\"2023-09-07T16:31:59+0000\",\"last_publication_date\":\"2023-09-07T16:31:59+0000\",\"uid\":\"jenna-bilotta\",\"url\":\"/blog/author/jenna-bilotta/\",\"link_type\":\"Document\",\"key\":\"dc795d1f-949f-4f08-b49c-8cc39c6a6ac0\",\"isBroken\":false},\"timestamp\":\"2023-10-25T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X2u4kxEAACAArtwf\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"product-updates\",\"first_publication_date\":\"2020-09-23T21:05:26+0000\",\"last_publication_date\":\"2024-07-02T17:56:11+0000\",\"uid\":\"product-updates\",\"url\":\"/blog/category/product-updates/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Product Updates\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"e73d36cf-bbdd-4803-ac76-92a2d8fd42b3\",\"isBroken\":false}},{\"category\":{\"id\":\"X87cyRIAACQAhLSw\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"featured-collection\",\"first_publication_date\":\"2020-12-08T01:54:21+0000\",\"last_publication_date\":\"2023-11-29T05:54:06+0000\",\"uid\":\"featured-collection\",\"url\":\"/blog/category/featured-collection/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Featured Collection\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0aa12b2a-a89a-4a9c-9336-52dca9b143b1\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"d32d6f9b-3799-4e51-8518-8260075ef37e\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"cab279b0-99dd-4ebe-b4f8-7643b67af54b\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0c483968-f97b-4f5a-855d-ba9402ab68fa\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZWcRAAACAAgbM9\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"targeted-experiences\",\"first_publication_date\":\"2023-11-28T21:07:32+0000\",\"last_publication_date\":\"2024-07-02T17:46:07+0000\",\"uid\":\"targeted-experiences\",\"url\":\"/blog/category/targeted-experiences/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Targeted experiences\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"47ba34ee-b544-4057-a7c2-9de4b272429c\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZW1RAAACAAgbUE\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"mobile-release-optimization\",\"first_publication_date\":\"2023-11-28T21:09:09+0000\",\"last_publication_date\":\"2024-07-02T17:47:38+0000\",\"uid\":\"mobile-release-optimization\",\"url\":\"/blog/category/mobile-release-optimization/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Mobile release optimization\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"3a5d45bc-228f-4ada-9335-d9a6b4799600\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZWmRAAACEAgbPz\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"product-experimentation\",\"first_publication_date\":\"2023-11-28T21:08:06+0000\",\"last_publication_date\":\"2024-07-02T17:46:43+0000\",\"uid\":\"product-experimentation\",\"url\":\"/blog/category/product-experimentation/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Product experimentation\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"e3415b71-f7fa-43b4-86d8-357f7802203a\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZYYxAAACAAgbvp\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"migrations\",\"first_publication_date\":\"2023-11-28T21:15:19+0000\",\"last_publication_date\":\"2024-07-02T17:50:00+0000\",\"uid\":\"migrations\",\"url\":\"/blog/category/migrations/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Migrations\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"f8fc26d9-029d-4304-862c-cba9eccfdd82\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"Unlock the next frontier of DevOps with LaunchDarkly's most epic product release to date. \",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1157},\"alt\":\"Galaxy Product LaunchDarkly 2023\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress,format\u0026rect=0,0,2000,1157\u0026w=2000\u0026h=1157\",\"id\":\"ZTG-GhAAAB8AQUYg\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZUl9yBAAACEAJK6c\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"power-your-business-target-and-personalize-experiences-with-confidence\",\"first_publication_date\":\"2023-11-07T19:20:47+0000\",\"last_publication_date\":\"2025-06-24T20:50:46+0000\",\"uid\":\"galaxy-segment-builder\",\"url\":\"/blog/galaxy-segment-builder/\",\"link_type\":\"Document\",\"key\":\"70a6f81a-5219-44ae-aec2-349421c55515\",\"isBroken\":false}},{\"post\":{\"id\":\"ZUCE9BAAACEAtdet\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"track-key-software-delivery-metrics-introducing-engineering-insights-hub\",\"first_publication_date\":\"2023-10-31T22:23:05+0000\",\"last_publication_date\":\"2024-10-16T20:48:08+0000\",\"uid\":\"track-key-software-delivery-metrics-engineering-insights-hub\",\"url\":\"/blog/track-key-software-delivery-metrics-engineering-insights-hub/\",\"link_type\":\"Document\",\"key\":\"180ac706-fffb-4b3d-9daf-3098d8cbbcc5\",\"isBroken\":false}},{\"post\":{\"id\":\"ZXitLhAAACcAtJ0g\",\"type\":\"blog_post\",\"tags\":[\"experiments\",\"product experimentation\",\"a/b testing\",\"AB Testing\",\"funnel experiments\",\"Experimentation\"],\"lang\":\"en-us\",\"slug\":\"out-of-the-box-funnel-experiments-are-here\",\"first_publication_date\":\"2023-12-12T19:52:08+0000\",\"last_publication_date\":\"2025-01-25T01:31:07+0000\",\"uid\":\"funnel-experiments-make-it-easier-than-ever-to-measure\",\"url\":\"/blog/funnel-experiments-make-it-easier-than-ever-to-measure/\",\"link_type\":\"Document\",\"key\":\"36eb9a34-51c7-406a-b14e-f0d1c9127c92\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Discover the next frontier of DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Many organizations struggle to balance the need to increase developer productivity, stabilize software releases, modernize their tech stack, keep customers engaged, and innovate faster than competitors. DevOps tools and practices have helped enable progress in those areas. But gaps remain. This is especially true when it comes to connecting software development to the customer experience.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"At LaunchDarkly, we are excited to announce the next frontier of DevOps with our latest product release. In this release, which we've unveiled at our Galaxy conference, we’re enabling product delivery teams to: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Improve the velocity and stability of software releases while removing the fear of customer outages\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Target and personalize product experiences to any customer segment\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Maximize the business impact of every software feature through experimentation\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Optimize mobile app experiences by enabling you to release mobile features and fixes on your schedule, not the app store’s\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Increase developer productivity through insights into key engineering metrics\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Read on for more detail on the game-changing features we've added to the LaunchDarkly platform!\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$53330f00-e434-4b83-95ee-ee36f80c9ec5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Release Assistant\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Release Assistant\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Automation for governance and rollouts\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$6059a91e-3a92-485b-9482-09fa2fb4d22d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Release Assistant product UI 1\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/8fd0cedc-f7db-4505-8e47-20b05c2b6473_release+assistant.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThEYxIAACIAXC5H\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$a090842f-dbca-47e1-b75e-ca5d4b15c296\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Safe and effective feature releases are how software development organizations connect their code to the end-user experience. So it’s imperative to release without any negative impact on customers—or engineering teams. But too often, software development organizations struggle to incorporate best practices and governance into their release processes, and they end up with ad-hoc release practices that are manual and time-consuming for developers. Additionally, there’s often no easy way to see the status of releases across an organization, leading to more inefficiency. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Release Assistant provides the ability to align releases to organizational best practices at scale with visibility into the status of all releases across an organization. With Release Assistant, LaunchDarkly customers can:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Embed best practices into reusable release pipelines so every change can follow a successful path to production and ultimately save time\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Move flags across release pipelines knowing that LaunchDarkly will send an alert when phases are complete\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Track and know the exact release status of each feature with real-time visibility across each project for all of your stakeholders\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Release Assistant\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/release-pipelines\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$54a813a6-226c-4bfe-b56e-3146e76d87e3\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Release Guardian\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Release Guardian\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Automatically detect and resolve bugs\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$57cbfa48-ea49-49eb-b245-8b304913a382\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Release Guardian product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/a81d93c9-528a-445d-a068-0c60fdf3b3cd_release+guardian.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThEhhIAACMAXC7H\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$2033f754-bc83-45a7-8446-331f287be2ca\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Bugs happen. Unfortunately, it just comes with the territory as a developer. Releasing a bug often results in end-users experiencing suboptimal application performance and, worst-case scenario, complete outages. Bugs disrupt your users, cost your company money, and cause your engineering team considerable stress.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"But what if it were possible for a tool to detect and mitigate application regressions before they became incidents? With the announcement of Release Guardian, available for early access customers today, LaunchDarkly provides a proactive safety net for even the most complex product releases. By monitoring metrics with the release context, we can detect issues with higher sensitivity—even in the smallest releases, where issues would previously have been obscured by noise in the wider system metrics. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Release Guardian introduces:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Observability at the feature level: Real-time metric monitoring and regression detection through active flag change monitoring, even for limited releases\",\"spans\":[{\"start\":35,\"end\":36,\"type\":\"strong\"}]},{\"type\":\"list-item\",\"text\":\"Automated incident response: Dynamic audience allocation and automated change reversion\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Join the waitlist to get early access to Release Guardian\",\"spans\":[{\"start\":0,\"end\":57,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/release-guardian-early-access\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$441078e6-b281-420d-b7f3-e848fd156fdf\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Migration Assistant\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Migration Assistant\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Migrate and modernize tech stacks without the pain\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$e5d926e7-9d90-40ab-95a5-db7ba5b14ee1\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Migration Assistant product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/e12cf591-7728-4854-833c-9f661c31ffac_migration+assistant.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThEqxIAACIAXC9s\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$461a8590-97a0-4c06-be6c-8c16a5a9b16f\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Traditional “big-bang” migrations are daunting, high-risk, and stressful for engineering teams. But even if a migration or modernization project is broken down into stages, they are time-consuming to coordinate, expensive, and difficult to track at each stage. And migrations are high-risk for businesses: failed migrations can lead to app downtime, causing customer churn, lost revenue, and negative brand sentiment. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"With the new LaunchDarkly Migration Assistant, now available in early access, engineering teams can control migrations through gradual rollouts so teams can modernize with more safety, predictability, and visibility. Whether you’re migrating to the cloud, a database, an API, or some other back-end service, Migration Assistant will help reduce risk, maintain business continuity, and let you measure consistency at every step. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"This is made possible with: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"New migration flag types purpose-built to minimize migration effort and lower risk\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Controlled cohort progression to allow incrementally moving traffic allocation\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Consistency checks to maintain confidence in the results between old and new datastores\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Tracked migration metrics, like latency and error rate, to help inform each stage and step of a migration \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Migration Assistant\",\"spans\":[{\"start\":0,\"end\":36,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/flag-types/migration-flags\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$6c06b3bc-af37-47d4-b253-e6a8c0b8b620\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Segment Builder\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Segment Builder\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Target using data that powers your business\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$5fd39f6e-b5ec-4f6c-b863-5eabd5fdd066\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Segment Builder product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/901d88e7-44bb-49f1-9434-d2c561b1c8ac_target+segment.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThExhIAACMAXC_j\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$b39e47a1-1c6e-4006-aaa2-7470a91267ce\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Delivering precise, tailored customer experiences is paramount in modern software delivery. But it’s easier said than done for engineering and product teams—especially when customer data is siloed from the release process. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly’s latest targeting capabilities make delivering the right experiences to the right audiences faster and easier. Now, with LaunchDarkly’s Segment Builder, customers can:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Effectively target using existing data sources, including Twilio Segment, Hightouch, Heap, RudderStack, Census, Tealium (coming soon), and Fulcrum\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Intuitively set up targeting rules and centrally manage audiences and experiences with visibility and control over the entire targeting process\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Confidently scale the use of targeting across the business and empower more teams to leverage LaunchDarkly targeting capabilities without increasing risk\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Segment Builder\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/segments\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$422ad91e-3b35-4d70-afbf-c9cd243566bb\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Funnel Experiments\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Funnel Experiments\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Maximize the business impact of every product feature\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$dff0bd8e-c865-4c09-a320-216af23f4fc5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Funnel experiments - Product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/7fe452b0-cb14-4473-8e0d-c5ea46a4f487_funnels.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThE5BIAACAAXDBo\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$ee999a29-6432-49ce-ae3b-f3dcd6da9a29\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Experimentation is critical for measuring the business impact behind every feature release. However, far too many organizations struggle to get started with experimentation due to its complex nature, high learning curve, and disconnection from engineering processes. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"With LaunchDarkly Funnel Experiments, unlock the ability to drive data-informed product updates. Funnel Experiments give developers and product managers alike the ability to:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Safely and rapidly increase product performance by grouping experiment metrics to ensure effectiveness only improves over time\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Create specific experiments, such as user acquisition or monetization, to improve conversion rates and make data-informed product decisions\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Export experiment data and build custom analyses on results directly in your Snowflake data warehouse\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Funnel Experiments\",\"spans\":[{\"start\":0,\"end\":35,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/creating-experiments/funnel\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$af3c62f0-1120-4a20-ad59-a703e128150a\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Mobile Lifecycle Assistant\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Mobile Lifecycle Assistant\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Optimize the mobile app version lifecycle\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$a0a53d12-bd5d-45ea-8ea6-db614dcbc6d9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Mobile Lifecycle Assistant product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/3df4deed-b54c-4aea-b321-6ba45eb0b127_mobile+assistant.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThFBhIAACMAXDD_\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$9330908b-328f-4219-9b66-2244adb3fd8e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Mobile app development is uniquely complex due to tedious app store approvals, the inability to remotely control in-app features in real-time, and rising user expectations. LaunchDarkly’s latest enhancements for mobile apps save teams time and make it easier to deliver reliable, personalized experiences. Mobile development teams can take back control over their mobile apps across every stage of the mobile app lifecycle and: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Quickly and easily target against common mobile application and device properties with auto-populated targeting contexts\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Easily target features to select audiences and deliver highly personalized experiences right from within LaunchDarkly\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Gracefully migrate devices off all legacy app versions and onto the latest app version—saving time and resources with the sunset of legacy app versions\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Maintain proper flag hygiene and ensure older app versions don’t break by deprecating flags before fully archiving them\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Mobile Lifecycle Assistant\",\"spans\":[{\"start\":0,\"end\":43,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/organize/applications\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$28bbafcc-f043-4344-b499-0e05127185e2\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Engineering Insights Hub\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Engineering Insights Hub\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Boost engineering efficiency with key metrics\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$82510cdd-4ed2-4286-8321-2569fd25dad9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Engineering Insights Hub product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/78fb57e2-c2d7-4b36-aace-ac16cbd36364_Insights.png?auto=compress,format\u0026rect=0,0,1400,922\u0026w=1400\u0026h=922\",\"id\":\"ZThGLBIAACIAXDXO\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$04bd6bef-381b-45e9-aea6-50de131bd88c\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly has long enabled developers to deliver features and experiences that customers love—and do so in less time with less risk. But to effectively maximize and scale the impact of LaunchDarkly, it’s crucial to measure and quantify success. With access to key engineering metrics, organizations can make data-informed decisions and promote engineering efficiency. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"We are excited to announce the launch of the early access program waitlist for the LaunchDarkly Engineering Insights Hub. This feature set allows customers to:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Quickly and easily access organization-level engineering productivity and efficiency metrics across projects\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Gain deeper insight into critical project-level metrics, empowering teams to identify bottlenecks in workflows and processes\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Ensure proper flag health by promoting best practices and archiving flags safely\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Engineering Insights Hub\",\"spans\":[{\"start\":0,\"end\":41,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/engineering-insights\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$f076b1d9-3ae0-489b-956b-eb9cd7ed1d90\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Step into the future of DevOps\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Step into the future of DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"We hope you are as excited as we are about the latest releases and integrations unveiled at Galaxy! Our ultimate goal is to empower product delivery teams and developers to release software quickly and safely, create exceptional product experiences for every customer, and maximize overall business impact.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Are you ready to learn more about LaunchDarkly and how to take advantage of our latest product updates? Get a demo today.\",\"spans\":[{\"start\":104,\"end\":121,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$25ba4893-c3f4-476e-ba56-0f0936f6a6c4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Galaxy '23 Product Release: Unlock the Next Frontier of DevOps\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Don't miss LaunchDarkly's most epic product release to date. Improve the velocity and stability of releases, target and personalize product experiments, maximize the business impact of every feature through product experimentation, and more! \",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{}}},{\"id\":\"Yv_U7xEAAM1nADAe\",\"uid\":\"5-tools-for-deployment-automation\",\"url\":\"/blog/5-tools-for-deployment-automation/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Yv_U7xEAAM1nADAe%22%29+%5D%5D\",\"tags\":[\"feature management\",\"deployment\",\"automation\",\"feature flags\",\"deployment automation\"],\"first_publication_date\":\"2022-08-25T15:00:06+0000\",\"last_publication_date\":\"2026-08-24T18:22:06+0000\",\"slugs\":[\"5-tools-for-deployment-automation\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"5 Tools for Deployment Automation\",\"spans\":[]}],\"author\":{\"id\":\"Yv_ZTBEAAB8AAEPC\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"joelolawanle\",\"first_publication_date\":\"2022-08-19T18:41:20+0000\",\"last_publication_date\":\"2022-08-19T18:41:20+0000\",\"uid\":\"joelolawanle\",\"url\":\"/blog/author/joelolawanle/\",\"link_type\":\"Document\",\"key\":\"f53d1fa7-255e-4609-9802-58725db00bfe\",\"isBroken\":false},\"timestamp\":\"2022-08-25T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"99913410-2e2e-4624-bdac-011b62cdd9bf\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"1c3b42e9-f3a6-45c1-b631-26e1b5ed58a9\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"There are multiple tools available for automated deployment. This article will examine five of them through factors including features, cost, and extensibility. \",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1126},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress,format\u0026rect=0,0,4000,2252\u0026w=2000\u0026h=1126\",\"id\":\"Yv_U1BEAACAAAC-n\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"One of the ways you can optimize your company’s DevOps workflow—in other words, shorten your development lifecycle while maintaining high-quality code—is through continuous delivery (CD) and continuous integration (CI).\",\"spans\":[{\"start\":162,\"end\":181,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/guides/reconciling-change-management-and-continuous-delivery/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In CI, developers frequently commit their codes to a central repository such as GitHub, CodeCommit, or Bitbucket, using automated builds and testing to detect and fix errors as quickly as possible.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In CD, automated testing checks any changes to the code and confirms that it’s ready for deployment. This speeds up the testing process as well as the release process, meaning multiple daily releases vs. the previous practice of monthly releases. \",\"spans\":[{\"start\":151,\"end\":166,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/how-to-build-a-release-management-process/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading2\",\"text\":\"Why Use Deployment Automation Tools?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Deployment automation has become a key requirement for software companies in order to remain competitive, because it removes the need for manual deployments and largely eliminates the possibility of human error. Once a process is set, it will work the same way every time you deploy your software.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-deployment-automation-and-why-should-you-care/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"There are multiple tools available for automated deployment. This article will examine five of them through factors including features, cost, and extensibility. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Jenkins\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Jenkins is an open-source automation server that automates building, testing, and deploying multiple types of projects. It can be used for both CI and CD practices. \",\"spans\":[{\"start\":0,\"end\":7,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Founded in 2011, Jenkins commands a market share of seventy-one percent with over one million users, according to Browserstack. The self-contained program also offers great community support.\",\"spans\":[{\"start\":114,\"end\":126,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.browserstack.com/blog/best-ci-cd-tools-comparison/\",\"target\":\"_blank\"}},{\"start\":173,\"end\":190,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/participate\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Another major advantage of Jenkins is that it offers over 1,400 plugins to extend its architecture and integrate with multiple other tools. And, if you can’t find the right plugin, you can create your own and add it to the index of 1,800-plus community contributions. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: Jenkins is free to use, though you must maintain and update your host server. \\nFeatures of Jenkins\",\"spans\":[{\"start\":0,\"end\":5,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of Jenkins:\",\"spans\":[{\"start\":0,\"end\":20,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Installation packages for Windows, macOS, and Unix-like operating systems\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Web-based configuration including a built-in help function\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Extensible CI server \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Ability to distribute building, testing, and deployment tasks across multiple machines\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"AWS CodeDeploy\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"AWS CodeDeploy automates your software deployments to various AWS services as well as your own servers. This fully managed service allows you to quickly update your projects while keeping downtime to a minimum. You can also track the status of your deployments through the AWS Management Console or the AWS CLI. You can also access the vibrant support community here.\",\"spans\":[{\"start\":0,\"end\":14,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codedeploy/\",\"target\":\"_blank\"}},{\"start\":30,\"end\":50,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZfysZxEAACQAD_2k\",\"type\":\"blog_post\",\"tags\":[\"decouple deploy and release\",\"Blue-green deployment\",\"canary deployment\",\"Deployment\",\"software deployment\"],\"lang\":\"en-us\",\"slug\":\"what-are-software-deployments-methodology--best-practices\",\"first_publication_date\":\"2024-03-22T01:46:58+0000\",\"last_publication_date\":\"2026-09-04T20:57:27+0000\",\"uid\":\"what-is-software-deployment\",\"url\":\"/blog/what-is-software-deployment/\",\"link_type\":\"Document\",\"isBroken\":false}},{\"start\":362,\"end\":366,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://forums.aws.amazon.com/forum.jspa?forumID=179\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: There is no additional charge for code deployments to AWS services. For on-premises servers, you pay $0.02 per instance update. Check the pricing page for details.\",\"spans\":[{\"start\":0,\"end\":6,\"type\":\"strong\"},{\"start\":144,\"end\":156,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codedeploy/pricing/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of AWS CodeDeploy:\",\"spans\":[{\"start\":0,\"end\":27,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic scaling of new instances\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deployment health tracking, which helps to stop a deployment if there are too many failed updates\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Key integrations provided by AWS CodePipeline, AWS CodeStar, and some AWS partners (like us!) to help teams implement and benefit from continuous integration\",\"spans\":[{\"start\":29,\"end\":45,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codepipeline/\",\"target\":\"_blank\"}},{\"start\":47,\"end\":59,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codestar/\",\"target\":\"_blank\"}},{\"start\":70,\"end\":82,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codedeploy/product-integrations/\",\"target\":\"_blank\"}},{\"start\":84,\"end\":91,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/marketplace/seller-profile?id=0f587861-6400-4321-b49e-eedcd4c645b8\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Agnostic model that works with any type of code\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"TeamCity\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"First released in 2006, TeamCity is a powerful CI/CD server from JetBrains. Its out-of-the-box functionality helps many organizations and builds of all types. \",\"spans\":[{\"start\":24,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jetbrains.com/teamcity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"TeamCity integrates with 300+ plugins—small compared to Jenkins—but it offers some exclusive features. It integrates with Docker to create container builds and with Jira and Bugzilla for issue tracking, for example. It supports the .NET framework and offers cloud integration with AWS, Azure, GCP, and VMware. Furthermore, it has an active community forum, which is divided into general topics and plugin development sections.\",\"spans\":[{\"start\":139,\"end\":155,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-container-orchestration-exactly-everything/\",\"target\":\"_self\"}},{\"start\":340,\"end\":355,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://teamcity-support.jetbrains.com/hc/en-us/community/topics\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: TeamCity is a paid solution (though it has a free version) and offers two licenses. The Professional server license allows up to one hundred build configurations and three build agents for free; any additional build agent and ten build configurations will cost you $299. The Enterprise server license runs from three agents to over one hundred agents, providing unlimited build configurations from $1,999 to over $21,999. \",\"spans\":[{\"start\":0,\"end\":5,\"type\":\"strong\"},{\"start\":76,\"end\":88,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jetbrains.com/teamcity/buy/#new\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of TeamCity:\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Track history of builds; see statistics and reports of test history; pin, tag, and add builds to favorites\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Track code quality to achieve better code quality on your project\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Simple configuration practices, avoiding code duplication, and providing several ways to reuse settings\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Support for key integrations with Docker, issue trackers, and NuGet to help teams implement and benefit from CI\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"CircleCI\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"CircleCI was founded in 2011, and is a CI/CD platform that automates building, testing, and deployment of software by connecting to GitHub, GitHub Enterprise, and BitBucket. Notifications can be automated as well, so that your team knows instantly if a testing pipeline fails. It has an active support community where you can use your experience to help others, and you can ask for help from others in the community.\",\"spans\":[{\"start\":39,\"end\":53,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://circleci.com/about/\",\"target\":\"_blank\"}},{\"start\":294,\"end\":311,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://discuss.circleci.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of CircleCI:\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automated test pipelines run in a clean container or VM\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Custom job configurations\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Runs on multiple OSs as well as in CircleCI’s cloud or on your own server\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"GitLab\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Launched in 2014, GitLab is an all-encompassing DevOps tool that helps developers plan and track projects, as well as build and manage code through a single version control system. You can check out the support community here.\",\"spans\":[{\"start\":18,\"end\":24,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://about.gitlab.com/\",\"target\":\"_blank\"}},{\"start\":221,\"end\":225,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://forum.gitlab.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This open-source collaboration platform also integrates with existing tools, workflow policies, and project/quality management processes so that your applications can be built, tested, and updated quickly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: GitLab is free to individual users and offers 400 CI/CD minutes per month. Business plans include more planning and management tools, as well as much larger allotments of CI/CD minutes. You can read more about pricing here.\",\"spans\":[{\"start\":0,\"end\":5,\"type\":\"strong\"},{\"start\":224,\"end\":228,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://about.gitlab.com/pricing/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of GitLab:\",\"spans\":[{\"start\":0,\"end\":19,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Version control and repository management \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Data management through branching tools \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Integrated security and license compliance testing\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Dashboards for status tracking and issues detection\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Deployment automation helps teams deploy error-free software with less time and effort, so that they can focus their energy on writing code instead. This upholds CI/CD practices and enables developers to more frequently create and release high-quality software.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"To further your CI/CD practices, consider LaunchDarkly, which enables you to better control and speed up the software lifecycle while eliminating the work and costs of managing features yourself. Grab a demo here. \",\"spans\":[{\"start\":196,\"end\":212,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$48f2946b-8bcf-40b9-ad49-264a51dc80e7\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"5 Tools for Deployment Automation\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"There are multiple tools available for automated deployment. This article will examine five of them through factors including features, cost, and extensibility. \",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress,format\",\"id\":\"Yv_U1BEAACAAAC-n\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"Yp-1XRIAACIA4lWY\",\"uid\":\"enabling-digital-transformation-through-devops\",\"url\":\"/blog/enabling-digital-transformation-through-devops/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Yp-1XRIAACIA4lWY%22%29+%5D%5D\",\"tags\":[\"feature flags\",\"feature management\",\"digital transformation\",\"devops\"],\"first_publication_date\":\"2022-06-21T17:13:22+0000\",\"last_publication_date\":\"2024-01-17T05:03:08+0000\",\"slugs\":[\"enabling-digital-transformation-through-devops\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":null,\"title\":[{\"type\":\"heading1\",\"text\":\"Enabling Digital Transformation Through DevOps\",\"spans\":[]}],\"author\":{\"id\":\"YCr_NxIAACIAZP1e\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"launchdarkly\",\"first_publication_date\":\"2021-02-15T23:11:13+0000\",\"last_publication_date\":\"2025-08-14T18:56:59+0000\",\"uid\":\"launchdarkly\",\"url\":\"/blog/author/launchdarkly/\",\"link_type\":\"Document\",\"key\":\"70a9fd4f-aae2-4c00-9726-e1d9d7be4cf6\",\"isBroken\":false},\"timestamp\":\"2022-06-21T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X-ASLBAAACIAVlA9\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"best-practices\",\"first_publication_date\":\"2020-12-21T03:10:54+0000\",\"last_publication_date\":\"2021-01-22T04:01:23+0000\",\"uid\":\"best-practices\",\"url\":\"/blog/category/best-practices/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Best Practices\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0bfb03ee-a368-4cec-bef8-238bc0d569bc\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"cf46fd98-771b-49ac-ad17-64dfd5f69674\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"This article will show how you can use DevOps to achieve digital transformation in your company.\",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1126},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress,format\u0026rect=0,0,4000,2252\u0026w=2000\u0026h=1126\",\"id\":\"YrH7oRIAAB8Au1eC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Digital transformation refers to an organization’s leveraging of technology to improve how it delivers value to customers. In addition to a shift in technology, this also means a shift in culture, as businesses must constantly provide a service to end users ahead of their competitors. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Even in software-first companies, digital transformation is a necessary process. While some businesses might still rely on traditional practices and workflows in order to complete projects (it's all written down in a notebook or spreadsheet somewhere!), others use various digital tools and services. These improve their development and production procedures, leading to better collaboration, faster time-to-market, and more satisfied customers. All this can be achieved through incorporating DevOps practices. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"In the DevOps methodology, various tools and practices are used to better integrate the software development and IT teams, so that they can collaborate more effectively, automate as many processes as possible, and complete applications more quickly. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"This article will show how you can use DevOps to achieve digital transformation in your company.\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Why DevOps?\",\"spans\":[{\"start\":0,\"end\":11,\"type\":\"strong\"}]},{\"type\":\"paragraph\",\"text\":\"DevOps helps organizations shift their cultural mindset as well as their tools and workflow. This reimagining and automating of the production process increases their ability to respond to change and continuously improve their product, enabling them to better meet customer demands.\",\"spans\":[{\"start\":7,\"end\":26,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.atlassian.com/devops/what-is-devops/devops-culture\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"Digital transformation is also an ongoing effort. Technology changes so quickly that individual teams might not be able to keep up. One strategy is to allow each team to focus on a smaller problem domain that helps them maintain expertise while they work in tandem with other teams. This enables the faster pace necessary for digital transformation.\",\"spans\":[{\"start\":26,\"end\":48,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/overcoming-the-fears-of-app-modernization/\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"Additionally, a faster pace and more integrated workflow enables businesses to better understand their end users and build products that meet their needs.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Here are some of the ways DevOps achieves this:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Advanced monitoring and remediation methods mean that problems are often found before the customer notices, or that the system degrades in a way that has only a marginal impact on the customer.\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Product teams are structured to receive customer feedback quickly and act on it. \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"A decoupled digital architecture allows for many experiments to be run simultaneously, leading to faster results.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"At larger, more traditional organizations, it is common for teams to work in separate silos, not sharing information or communicating effectively. You can use DevOps to create a collaborative organizational culture, which helps achieve digital transformation more quickly. This can strengthen your organization and increase your chances of success.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Here are some of the issues your company may face if it isn’t using DevOps: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Slow delivery to customers \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Many manual tasks with a high error rate \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Teams working in silos and not communicating\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Lack of ownership in the work \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Older tools and practices that don’t meet current industry needs\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"A primary characteristic of DevOps culture is increased collaboration between the development and operations teams. This means that developers become more aware of operational concerns such as deployment and monitoring, and operations staff adopt new automation tools and practices. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Together, they use a technology stack and added tooling to speed up processes that historically have been manual and slow. Practices and tools that can assist with this process include prototyping tools, AB testing, automated testing, secret detection tools, continuous integration/continuous delivery (CI/CD), logging, and user analytics tracking. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Here are some of the benefits of switching to a DevOps culture: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Faster delivery to customers\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Automated repetitive tasks \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Better collaboration among teams and more ownership of the product \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"New technologies to keep the organization competitive \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Keep in mind that most DevOps transitions are far from smooth. It costs time and effort to adopt new tools and services, as well as to train staff. Your teams may not be fully productive until the organization has completed the switch, which could take years. You should move into a DevOps transition with a good understanding of the time, money, and resources required and the benefits you will realize. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Benefits of DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The core cultural benefits of introducing DevOps in an organization are automation, testing, repeatable processing, and feature selection.\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Automation\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Automating manual tasks such as testing, configuration, and deployment frees people up to focus on other valuable activities and reduces the chance of human error. This also facilitates easier collaboration within organizations. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"However, automation by itself is not the solution. Other factors in a successful DevOps switch are process and culture.\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Testing\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"A strong testing culture increases the quality of your organization’s products and increases your teams’ confidence to make changes without introducing defects. Testing is a core part of building quality into a development process. This includes cross-functional concerns such as performance and security. The techniques of continuous delivery, including self-testing code, allow for regular, low-risk deployments.\",\"spans\":[{\"start\":324,\"end\":343,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.youtube.com/watch?v=O5s36Mqw4uU\"}},{\"start\":355,\"end\":372,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://en.wikipedia.org/wiki/Self-testing_code\"}}]},{\"type\":\"heading3\",\"text\":\"Repeatable Processing\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"When performing a repetitive task, such as running manual test scenarios of a product feature or copying files between servers for a manual deployment, a human will inevitably lose focus at some point, especially if the tasks are complicated or time-consuming. A DevOps culture encourages repeatable processing of these tasks, partly through automation. If the tasks are performed in the background without requiring constant human effort, your organization can save both time and production costs. \",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Feature Selection\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"When developers can quickly prototype and test ideas, teams can more easily experiment and respond to user feedback in quick iterations. They can then incorporate what they’ve learned into the product or service, shipping desired features more frequently. \",\"spans\":[{\"start\":76,\"end\":86,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/experimentation/\"}}]},{\"type\":\"paragraph\",\"text\":\"For example, customers may be struggling to sign into the product. Developers can quickly prototype other sign-in solutions such as magic links, a one-time password, or a single sign-on. They can test these prototypes out with some users to see if the proposed solutions work, and from that feedback decide that single sign-on is the most usable method. Developers can focus on expanding that solution, throwing away the other ideas at a lower cost since they were prototypes. This adds value to the final product and to the overall organization. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"DevOps unites people, processes, and technology: when all three are aligned toward the same business goals, it promotes quick innovation and an attitude of shared responsibility for the final product. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"How to Start with DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Beginning DevOps in an existing organization can be a challenging process because of the shift in culture as well as in technologies. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"To start, you need to support a culture of shared responsibilities. This means removing silos between development and operations. Each team should better understand what the other does and how they can best help the other team manage its workflow.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"As an example, the operations team can work closely with the development team when there are production bugs in order to understand how they triage, debug, and fix the issues. From this understanding, the operations team can suggest ways to resolve production bugs more quickly, such as creating an easier way for everyone to access production logs. DevOps culture blurs the line between the developer and operations teams and may eventually eliminate the distinction.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Next you need to empower your teams. This means breaking away from the traditional command and control structure of organizations and moving toward self-organized, autonomous teams. To collaborate effectively, developers and operations staff need to be able to make decisions and apply changes without waiting on complicated decision-making processes. You should create a culture in which people trust each other and failure is viewed as part of the learning process, as opposed to something requiring punishment.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The above changes will help you create a good foundation for your DevOps journey. All the other practices and processes that are part of DevOps, such as automation, testing, and experimentation, will build upon this foundation.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"As a way of initiating a DevOps transformation, you could introduce a greenfield project, or an entirely new project that doesn’t need to be integrated with the previous work environment. This will allow you to form an autonomous team to launch and test new DevOps practices without needing to combine those with existing practices and processes.\",\"spans\":[{\"start\":70,\"end\":88,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://en.wikipedia.org/wiki/Greenfield_project\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"Another approach is to identify the organization’s highest-value project that suffers the biggest bottlenecks. Start to introduce DevOps practices to help reduce those bottlenecks. The highest-value project should be given the highest priority, since improving it will provide the biggest impact for customers. Doing this will also make it easier to introduce DevOps to the rest of the organization, because other projects will have fewer issues. \",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"A digital transformation is a complete business transformation that requires more than updating your IT system or creating some apps. To achieve this shift, you must reimagine how your company operates. The best way to begin your company’s digital transformation is to initiate a DevOps culture. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"One of the tools you can use in your DevOps practices is LaunchDarkly, which provides feature flags so that engineers and IT teams can deploy or disable new features without deploying the rest of the code. You can detect and fix bugs without relaunching the entire app or inconveniencing end users. Feature flags also allow teams to deploy code faster with a reduced failure rate. Learn more here or by watching the video below. \\n\\n\",\"spans\":[{\"start\":381,\"end\":396,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/solutions/devops-site-reliability-engineer-teams/\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$e52261a1-6ba3-424c-8c94-7bed15f017ae\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"video_type\":null,\"youtube_id\":[{\"type\":\"paragraph\",\"text\":\"pwA_Ehp2SMY\",\"spans\":[]}]},\"items\":[{}],\"id\":\"youtube_video$90ced48c-7173-43b9-aa42-0c779ffacf09\",\"slice_type\":\"youtube_video\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Enabling Digital Transformation Through DevOps\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"This article will show how you can use DevOps to achieve digital transformation in your company.\",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress,format\",\"id\":\"YrH7oRIAAB8Au1eC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}}],\"title\":\"Related Content\",\"seeAllLink\":\"/blog/category/devops\",\"isNewBlogStyle\":true,\"extraWideCard\":true,\"perPage\":4,\"perPageTablet\":2,\"noFlex\":true,\"theme\":\"dark\",\"seeAllText\":\"See all posts on devops\"}]}]\n"])</script><script>self.__next_f.push([1,"42:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__newsletterContainer\",\"children\":[\"$\",\"$L49\",null,{}]}]\n"])</script><script>self.__next_f.push([1,"43:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__g2BannerContainer\",\"children\":[\"$\",\"$L2e\",null,{\"href\":\"/g2-review/\",\"className\":\"styles-module__MISuva__blogG2Banner\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__MISuva__blogG2BannerInner\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$undefined\",[\"$\",\"img\",null,{\"className\":\"styles-module__MISuva__blogG2BannerImage\",\"src\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ainJTAeQX7-eXMEO_icon-bw--growing-up-arrow.svg\",\"alt\":\"Climbing up arrow\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"loading\":\"lazy\",\"fetchPriority\":\"$undefined\",\"onClick\":\"$undefined\"}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__MISuva__blogG2BannerContent\",\"children\":[\"$\",\"h4\",null,{\"className\":\"styles-module__J0n02W__variant_h4 styles-module__J0n02W__color_white styles-module__J0n02W__weight_medium\",\"children\":\"LaunchDarkly Tops G2 Grid for Feature Management\"}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__MISuva__blogG2BannerButton\",\"children\":[\"$\",\"button\",null,{\"className\":\"styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default\",\"style\":\"$undefined\",\"type\":\"button\",\"onClick\":\"$undefined\",\"ref\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__label\",\"children\":\"Learn more\"}],[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__arrowBox false\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":12,\"fill\":\"none\",\"className\":\"styles-module__d4f9cW__arrow\",\"aria-hidden\":\"true\",\"children\":\"$26:2:props:children:1:props:children:props:children:1:props:children:0:props:children:2:props:children:1:props:children:props:children\"}]}]]}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"44:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://launchdarkly.com/the-time-our-provider-screwed-us/#article\\\",\\\"about\\\":[{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"The Time Our Provider Screwed Us\\\"}],\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Kim Harrison\\\",\\\"url\\\":\\\"https://launchdarkly.com/blog/author/kimh/\\\"}],\\\"datePublished\\\":\\\"2020-11-30T05:57:45.000Z\\\",\\\"dateModified\\\":\\\"2021-01-29T03:37:36.000Z\\\",\\\"headline\\\":\\\"The Time Our Provider Screwed Us\\\",\\\"description\\\":\\\"Paul Biggar, CTO and Co-founder of Dark, former CEO and Co-founder of CircleCI, tells a horrific tale of how a massive security breach nearly ended their company. \\\",\\\"image\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://launchdarkly.com/open-graph.jpg\\\"},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://launchdarkly.com/the-time-our-provider-screwed-us/#webpage\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://launchdarkly.com/#organization\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://launchdarkly.com/#organization\\\",\\\"name\\\":\\\"LaunchDarkly\\\",\\\"legalName\\\":\\\"LaunchDarkly\\\",\\\"description\\\":\\\"LaunchDarkly helps teams safely manage code and AI agents in production with feature flags, progressive delivery, automated rollback, and runtime control.\\\",\\\"url\\\":\\\"https://launchdarkly.com/\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://launchdarkly.com/schema-icon.png\\\",\\\"width\\\":\\\"512\\\",\\\"height\\\":\\\"512\\\"},\\\"sameAs\\\":[\\\"https://twitter.com/LaunchDarkly\\\",\\\"https://www.linkedin.com/company/launchdarkly\\\",\\\"https://github.com/launchdarkly\\\"]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"description\\\":\\\"Breadcrumbs list\\\",\\\"name\\\":\\\"Breadcrumbs\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://launchdarkly.com/\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Blog\\\",\\\"item\\\":\\\"https://launchdarkly.com/blog\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"The Time Our Provider Screwed Us\\\",\\\"item\\\":\\\"https://launchdarkly.com/the-time-our-provider-screwed-us/\\\"}]}\"}}]]\n"])</script><script>self.__next_f.push([1,"45:[\"$\",\"$L4d\",null,{\"data\":{\"primary\":{\"heading\":\"Resources to get started.\",\"readMoreLabel\":\"\",\"readMoreHref\":\"\",\"imageAspectRatio\":\"16:9\",\"background\":\"black\"},\"items\":[{\"title\":\"Check out the blog.\",\"eyebrow\":\"Blog\",\"description\":\"Read about LaunchDarkly news, product updates, and more.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format,compress\",\"href\":\"/blog/\"},{\"title\":\"Explore our docs.\",\"eyebrow\":\"Docs\",\"description\":\"Learn best practices for getting started with LaunchDarkly.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format,compress\",\"href\":\"https://launchdarkly.com/docs/home\"},{\"title\":\"Watch on demand.\",\"eyebrow\":\"Videos\",\"description\":\"Check out demos and tutorials to see LaunchDarkly in action.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format,compress\",\"href\":\"https://www.youtube.com/@LaunchDarkly\"},{\"title\":\"Connect at events.\",\"eyebrow\":\"Events\",\"description\":\"Explore ways to connect with us in person and virtually.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format,compress\",\"href\":\"/events-webinars/\"}]},\"customCommands\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"33:[\"$\",\"$L32\",null,{\"navigationDocument\":{\"id\":\"Z8jwdRIAACIAchAL\",\"uid\":null,\"url\":null,\"type\":\"main_navigation\",\"href\":\"https://launchdarkly-marketingsite.cdn.prismic.io/api/v2/documents/search?ref=aqQbiREAACwA_PkJ\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z8jwdRIAACIAchAL%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2025-03-06T23:22:48+0000\",\"last_publication_date\":\"2026-08-12T21:50:57+0000\",\"slugs\":[\"main-navigation\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"products_group\":[{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEidWJ-7kSC2w_icon--guarded-release-x24.svg\",\"id\":\"aCQJEidWJ-7kSC2w\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZkT8yxcAACQAayzv\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"eb9e562d-4750-4567-8060-b0378a8012b7\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guarded Releases\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Monitor and de-risk.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJESdWJ-7kSC2v_icon--experimentation-x24.svg\",\"id\":\"aCQJESdWJ-7kSC2v\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZS3e3xAAACYArUv0\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"859b7068-0b26-4b9b-be95-730781ae8e60\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make data-driven decisions.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aYTW2d0YXLCxVdmZ_observability-icon-pink-gradient.svg\",\"id\":\"aYTW2d0YXLCxVdmZ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aXzdMhEAACEAbMS3\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"a6113607-80f4-45f3-9d88-a7f9cd5474ad\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Detect, diagnose, and recover.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEydWJ-7kSC2x_icon--release-management-x24.svg\",\"id\":\"aCQJEydWJ-7kSC2x\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZK7UUREAACQAMsBn\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"bd2dad2e-cc7c-47a4-9c6b-d14e00a62722\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature Flags\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Scale great release processes.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"release-management\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJECdWJ-7kSC2u_icon--ai-x24.svg\",\"id\":\"aCQJECdWJ-7kSC2u\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aScrdxIAACUA_zBM\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"e1c3e064-69c5-4a8a-9e6d-d47afa6f9a84\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI Configs\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make innovative AI products.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"ai\",\"spans\":[],\"direction\":\"ltr\"}]}],\"overview_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format,compress\",\"id\":\"agwNv6YofJOwHWkd\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT1iRIAACMAW09R\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"the-runtime-control-layer-for-the-ai-era.\",\"first_publication_date\":\"2026-05-13T22:07:57+0000\",\"last_publication_date\":\"2026-07-29T17:52:40+0000\",\"uid\":\"how-it-works.platform\",\"url\":\"/how-it-works.platform/\",\"link_type\":\"Document\",\"key\":\"cb51a2ac-66b9-445c-add5-1bfd126fdaf1\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Platform overview\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format,compress\",\"id\":\"agpNAKYofJOwHTuE\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agJOJRIAACMAV0KE\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"feature-flags-for-real-time-control-in-production.\",\"first_publication_date\":\"2026-05-11T23:18:47+0000\",\"last_publication_date\":\"2026-07-09T17:32:44+0000\",\"uid\":\"how-it-works.feature-flags\",\"url\":\"/how-it-works.feature-flags/\",\"link_type\":\"Document\",\"key\":\"5b39f1f4-c3e9-4985-a6f4-09d007cdc71a\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format,compress\",\"id\":\"agpNA6YofJOwHTuH\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agUqVRIAACEAW5iJ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"observe-at-the-scale-that-you\",\"first_publication_date\":\"2026-05-14T02:28:03+0000\",\"last_publication_date\":\"2026-07-16T18:41:10+0000\",\"uid\":\"how-it-works.observability\",\"url\":\"/how-it-works.observability/\",\"link_type\":\"Document\",\"key\":\"fb0b6ba7-0f91-4639-a80e-a08103edd108\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format,compress\",\"id\":\"agpM_6YofJOwHTuD\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT6fRIAAI1IW1Zl\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"optimize-at-the-speed-that-you\",\"first_publication_date\":\"2026-05-13T23:15:56+0000\",\"last_publication_date\":\"2026-08-12T00:12:40+0000\",\"uid\":\"how-it-works.experimentation\",\"url\":\"/how-it-works.experimentation/\",\"link_type\":\"Document\",\"key\":\"026bc403-ba2c-4c10-a9a7-28dc7beb9c0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format,compress\",\"id\":\"agpM_qYofJOwHTuC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agPiLhIAACEAWZ_F\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"Agent Integration\"],\"lang\":\"en-us\",\"slug\":\"go-agent-native-from-day-1.\",\"first_publication_date\":\"2026-05-13T03:45:19+0000\",\"last_publication_date\":\"2026-07-02T20:40:47+0000\",\"uid\":\"how-it-works.agent-integrations\",\"url\":\"/how-it-works.agent-integrations/\",\"link_type\":\"Document\",\"key\":\"96423778-717a-4a35-b3d1-2966c0f15a99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Agent integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format,compress\",\"id\":\"agpNAqYofJOwHTuG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agXnzxIAAGfYXLYC\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"integrations\",\"first_publication_date\":\"2026-05-14T15:21:28+0000\",\"last_publication_date\":\"2026-05-19T04:39:17+0000\",\"uid\":\"integrations\",\"url\":\"/integrations/\",\"link_type\":\"Document\",\"key\":\"ac21f49d-de49-4c8f-9cab-03ff74f3aeae\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format,compress\",\"id\":\"agpNAaYofJOwHTuF\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agstuhIAAGVsZG8v\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"platform architecture\"],\"lang\":\"en-us\",\"slug\":\"built-for-runtime-control-at-scale.\",\"first_publication_date\":\"2026-05-18T15:48:56+0000\",\"last_publication_date\":\"2026-05-20T21:04:24+0000\",\"uid\":\"how-it-works.platform-architecture\",\"url\":\"/how-it-works.platform-architecture/\",\"link_type\":\"Document\",\"key\":\"654903e7-c950-4ee9-ad8d-28ced3798a0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Architecture\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_team_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format,compress\",\"id\":\"agpOrqYofJOwHTuK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZggxIAAGfYXWgr\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ai-coded-it-but-you-own-it-in-production.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T23:57:25+0000\",\"last_publication_date\":\"2026-07-15T15:24:08+0000\",\"uid\":\"solutions.release-ai-built-code\",\"url\":\"/solutions.release-ai-built-code/\",\"link_type\":\"Document\",\"key\":\"89e8e1ad-db87-4479-aeec-83186124bc80\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Release AI-built code\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format,compress\",\"id\":\"agpOrKYofJOwHTuI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVNRxIAACEAW8p2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"agents-make-decisions-you-own-the-results.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T04:20:19+0000\",\"last_publication_date\":\"2026-07-15T15:24:56+0000\",\"uid\":\"solutions.control-ai-agents\",\"url\":\"/solutions.control-ai-agents/\",\"link_type\":\"Document\",\"key\":\"c8ca2188-6dd5-4f79-b127-b32bd5afcc49\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Control AI agents\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format,compress\",\"id\":\"agpOraYofJOwHTuJ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZehRIAACEAXWU6\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-guessing.-optimize-model-performance-and-cost-in-real-time.\",\"first_publication_date\":\"2026-05-14T23:47:53+0000\",\"last_publication_date\":\"2026-07-15T15:25:55+0000\",\"uid\":\"solutions.optimize-ai-performance\",\"url\":\"/solutions.optimize-ai-performance/\",\"link_type\":\"Document\",\"key\":\"57b0c941-034c-46e0-80ef-722178945659\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Optimize AI performance \u0026 cost\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format,compress\",\"id\":\"agpOsKYofJOwHTuM\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVxxxIAAI1IW_7K\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-responding-and-automatically-fix-problems-in-production.\",\"first_publication_date\":\"2026-05-14T07:01:00+0000\",\"last_publication_date\":\"2026-07-07T00:03:00+0000\",\"uid\":\"solutions.self-heal-systems\",\"url\":\"/solutions.self-heal-systems/\",\"link_type\":\"Document\",\"key\":\"a777ddee-a6f5-485b-8cb0-df55680e5bd3\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Self-heal systems\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format,compress\",\"id\":\"agpOr6YofJOwHTuL\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZhwBIAACMAXWoU\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"experiment-at-ai-scale-without-losing-control.\",\"first_publication_date\":\"2026-05-15T00:01:50+0000\",\"last_publication_date\":\"2026-07-15T15:28:25+0000\",\"uid\":\"solutions.run-experiments\",\"url\":\"/solutions.run-experiments/\",\"link_type\":\"Document\",\"key\":\"0c20b758-07ba-4180-9002-028f2eb0c933\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Run experiments\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_industry_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format,compress\",\"id\":\"agpQmaYofJOwHTuS\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"af-1HRIAACEAU2aQ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"AI Engineer\"],\"lang\":\"en-us\",\"slug\":\"agents-break-in-production.-thats-where-control-matters.\",\"first_publication_date\":\"2026-05-09T23:06:03+0000\",\"last_publication_date\":\"2026-05-20T21:03:40+0000\",\"uid\":\"persona.ai-engineers\",\"url\":\"/persona.ai-engineers/\",\"link_type\":\"Document\",\"key\":\"fe8f38e4-584c-451d-b926-af442c252bea\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI engineers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format,compress\",\"id\":\"agpQmqYofJOwHTuT\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaOnBIAACMAXamc\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"development teams\"],\"lang\":\"en-us\",\"slug\":\"ship-faster.-stay-in-control.-fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-27T20:30:26+0000\",\"uid\":\"persona.development-teams\",\"url\":\"/persona.development-teams/\",\"link_type\":\"Document\",\"key\":\"dc747045-cd9a-4d86-aec3-d00c036dff99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Developers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format,compress\",\"id\":\"agpQm6YofJOwHTuU\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaRwhIAAGfYXa5B\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"devops\"],\"lang\":\"en-us\",\"slug\":\"prevent-incidents.fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-18T18:21:56+0000\",\"uid\":\"persona.devops-site-reliability-engineer-teams\",\"url\":\"/persona.devops-site-reliability-engineer-teams/\",\"link_type\":\"Document\",\"key\":\"95bbe00c-5ed4-4caf-a18e-830cfa416ced\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"DevOps \u0026 SRE\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format,compress\",\"id\":\"agpQnaYofJOwHTuW\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaJuhIAAGfYXaJy\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"product managers\"],\"lang\":\"en-us\",\"slug\":\"launch-confidently.-learn-what-works.-improve-continuously.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-05-19T01:10:37+0000\",\"uid\":\"persona.product-managers\",\"url\":\"/persona.product-managers/\",\"link_type\":\"Document\",\"key\":\"aaa44826-4691-462b-a8a1-acc80ad8fbdb\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product managers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format,compress\",\"id\":\"8Rpfg-gh7BMefouu\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"alem8REAACwAC87h\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"data scientists\"],\"lang\":\"en-us\",\"slug\":\"run-experiments-you-can-actually-trust.\",\"first_publication_date\":\"2026-07-15T18:45:45+0000\",\"last_publication_date\":\"2026-07-17T19:14:06+0000\",\"uid\":\"persona.data-scientists\",\"url\":\"/persona.data-scientists/\",\"link_type\":\"Document\",\"key\":\"f7bf52f5-fab6-4ea1-9d9c-e319463a6190\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Data scientists\",\"spans\":[],\"direction\":\"ltr\"}]}],\"learn_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format,compress\",\"id\":\"agpSN6YofJOwHTud\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"9ad95dc9-c5ec-4aab-ac8a-7b7405aec915\",\"url\":\"https://launchdarkly.com/blog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format,compress\",\"id\":\"agpSOaYofJOwHTuf\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"1b0edfb5-d056-42ae-a4c2-dd530e49f057\",\"url\":\"https://launchdarkly.com/guides/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guides \u0026 ebooks\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format,compress\",\"id\":\"agpSOKYofJOwHTue\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"YQxWXxIAACkAIPjQ\",\"type\":\"events\",\"tags\":[\"events\",\"webinars\"],\"lang\":\"en-us\",\"slug\":\"events\",\"first_publication_date\":\"2021-08-05T21:26:24+0000\",\"last_publication_date\":\"2026-09-11T15:17:28+0000\",\"uid\":\"events-webinars\",\"url\":\"/events-webinars/\",\"link_type\":\"Document\",\"key\":\"d1154925-59b3-4c22-afcc-e0efad605e91\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Events \u0026 webinars\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format,compress\",\"id\":\"agpSOqYofJOwHTug\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"c4b22447-de6e-4d1e-9b7a-11748b8055aa\",\"url\":\"https://www.youtube.com/@LaunchDarkly\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Videos\",\"spans\":[],\"direction\":\"ltr\"}]}],\"success_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format,compress\",\"id\":\"agpSQ6YofJOwHTui\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"8a7c9deb-617c-4160-adeb-5b432b051ecf\",\"url\":\"https://academy.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Academy\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format,compress\",\"id\":\"agpSRKYofJOwHTuj\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ajGF7RcAADAA88aj\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"trusted-by-industry-leading-teams.\",\"first_publication_date\":\"2026-06-16T17:59:03+0000\",\"last_publication_date\":\"2026-06-23T21:13:13+0000\",\"uid\":\"customer-stories\",\"url\":\"/customer-stories/\",\"link_type\":\"Document\",\"key\":\"d11dbfa0-bb2d-461c-b5c3-03e978db76b6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Customer stories\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format,compress\",\"id\":\"agpSRqYofJOwHTul\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZSgkThAAACcAC-sT\",\"type\":\"new_pages\",\"tags\":[\"services\",\"professional services\"],\"lang\":\"en-us\",\"slug\":\"launchdarkly-professional-services\",\"first_publication_date\":\"2023-10-12T16:52:47+0000\",\"last_publication_date\":\"2026-07-08T15:43:17+0000\",\"uid\":\"services\",\"url\":\"/services/\",\"link_type\":\"Document\",\"key\":\"93fcdada-dd96-49ca-b8f3-a466eb109f19\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Professional services\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format,compress\",\"id\":\"agpSRaYofJOwHTuk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZMggHhEAACYAn2e4\",\"type\":\"new_pages\",\"tags\":[\"partner program\",\"partner program page\"],\"lang\":\"en-us\",\"slug\":\"lets-build-better-software-together.\",\"first_publication_date\":\"2023-07-31T21:59:14+0000\",\"last_publication_date\":\"2026-07-08T15:56:45+0000\",\"uid\":\"partner-program\",\"url\":\"/partner-program/\",\"link_type\":\"Document\",\"key\":\"c693eb6c-d924-4446-98dc-e50e30a73e31\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Partners\",\"spans\":[],\"direction\":\"ltr\"}]}],\"get_help_group\":[{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format,compress\",\"id\":\"agpTiKYofJOwHTu2\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"671d49cc-49d6-4614-90a4-3c31313a2f47\",\"url\":\"https://support.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Help Center\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Explore help topics for everything LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format,compress\",\"id\":\"agpTiaYofJOwHTu3\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"b1c38405-1e18-4080-81ee-a86756bec156\",\"url\":\"https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Request support\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Reach out to us for direct answers to your questions.\",\"spans\":[],\"direction\":\"ltr\"}]}],\"resources_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format,compress\",\"id\":\"agpSVKYofJOwHTuo\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"79ea2804-386d-45ba-ae92-9de4e6a20aa2\",\"url\":\"https://launchdarkly.com/docs/home\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Docs home\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format,compress\",\"id\":\"agpSVaYofJOwHTup\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"d55987b1-30ac-4d93-907a-c50f827814d5\",\"url\":\"https://launchdarkly.com/docs/home/getting-started\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format,compress\",\"id\":\"agpSUqYofJOwHTum\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"f3e899b1-5149-4b7f-a205-8d8be0d0d0ca\",\"url\":\"https://launchdarkly.com/docs/home/agentcontrol/quickstart\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format,compress\",\"id\":\"agpSU6YofJOwHTun\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"98e0f384-0d91-4ddc-b989-908d24e47a4d\",\"url\":\"https://launchdarkly.com/docs/api/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"API docs\",\"spans\":[],\"direction\":\"ltr\"}]}],\"workflow_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format,compress\",\"id\":\"agpSZqYofJOwHTut\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"daebf9c5-8c24-4a14-9df2-0a7f80d7dfce\",\"url\":\"https://launchdarkly.com/changelog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product Updates\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format,compress\",\"id\":\"agpSZaYofJOwHTus\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"4a2ede12-b83e-4114-bbc3-4a738b3d8ccb\",\"url\":\"https://launchdarkly.com/sample-size-calculator/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Power analysis calculator\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format,compress\",\"id\":\"agpSZKYofJOwHTur\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"0eb1c344-46c1-466a-bc84-f3bb4c46290b\",\"url\":\"https://launchdarkly.com/docs/blog\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Flagship engineering blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format,compress\",\"id\":\"agpSY6YofJOwHTuq\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"84663d21-e4f8-4631-81cd-6da440a8b828\",\"url\":\"https://launchdarkly.com/community/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Community\",\"spans\":[],\"direction\":\"ltr\"}]}],\"banner_group\":[{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Solutions\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo now\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"bdb970f8-f1f4-424b-ae6b-5160b38903a2\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Resources\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4d1ad24c-3879-42e8-86de-2ab76c2778ad\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Platform\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe \u0026 control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"35310a7f-4223-4c71-b058-f0f99ba04936\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":178,\"height\":120},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/abRT8lxvIZEnjqhK_developer-tab-free-trial.png?auto=format,compress\",\"id\":\"abRT8lxvIZEnjqhK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Developers\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Take control of your AI at runtime.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"Control releases, experiments, and AI behavior in prod.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Free trial\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4a0a8a27-41ee-4993-8274-dab982a68d7d\",\"url\":\"https://app.launchdarkly.com/signup\"}}],\"new_products_group\":[{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format,compress\",\"id\":\"agpUVqYofJOwHTu-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agTAhBIAACEAWwQ2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ship-confidently-with-automatic-recovery-and-continuous-improvement-built-in.\",\"first_publication_date\":\"2026-05-13T18:19:33+0000\",\"last_publication_date\":\"2026-05-19T05:42:39+0000\",\"uid\":\"platform.code-control\",\"url\":\"/platform.code-control/\",\"link_type\":\"Document\",\"key\":\"31f8582d-1543-426b-bfe9-b2e3aa405ab6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"CodeControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Ship confidently, with automated control built in.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format,compress\",\"id\":\"agpUVaYofJOwHTu9\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agSf7RIAAI1IWtRB\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"one-place-to-control-agent-behavior.\",\"first_publication_date\":\"2026-05-13T16:04:01+0000\",\"last_publication_date\":\"2026-06-01T17:57:35+0000\",\"uid\":\"platform.agent-control\",\"url\":\"/platform.agent-control/\",\"link_type\":\"Document\",\"key\":\"a6029978-2730-4f8c-aa21-9c15c2e2fbff\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"One place to keep your agent behavior under control.\",\"spans\":[],\"direction\":\"ltr\"}]}]}},\"showBanner\":true,\"noNav\":\"$undefined\",\"addRiskMeterLogo\":false,\"hideLinks\":false,\"useSnowflakeHeader\":\"$undefined\",\"EoDNav\":\"$undefined\",\"useAiTheme\":\"$undefined\",\"isHomepage\":\"$undefined\",\"useRefreshDesign\":\"$undefined\",\"useWhiteLogo\":true}]\n"])</script><script>self.__next_f.push([1,"35:[\"$\",\"$L31\",null,{\"supportItems\":[{\"title\":\"Support home\",\"url\":\"https://support.launchdarkly.com/\"},{\"title\":\"Professional Services\",\"url\":\"/services/\"},{\"title\":\"Documentation\",\"url\":\"https://launchdarkly.com/docs/home\"},{\"title\":\"Status\",\"url\":\"https://status.launchdarkly.com/\"}],\"whyUsItems\":[{\"title\":\"Economic Impact of LaunchDarkly\",\"url\":\"https://launchdarkly.com/guides/forrester-tei-report-2026/\"},{\"title\":\"How LaunchDarkly works\",\"url\":\"/how-it-works.platform/\"},{\"title\":\"Solutions\",\"url\":\"/solutions/\"},{\"title\":\"Trust \u0026 Security\",\"url\":\"/security/\"},{\"title\":\"Trust Center\",\"url\":\"https://trust.launchdarkly.com\"},{\"title\":\"LaunchDarkly vs. Competitors\",\"url\":\"https://launchdarkly.com/compare/\"},{\"title\":\"LaunchDarkly on AWS\",\"url\":\"https://launchdarkly.com/solutions/launchdarkly-aws/\"}],\"companyItems\":[{\"title\":\"About Us\",\"url\":\"/about-us/\"},{\"title\":\"Careers\",\"url\":\"/careers/\"},{\"title\":\"Media \u0026 Analysts\",\"url\":\"/press-and-analysts/\"},{\"title\":\"Partner Program\",\"url\":\"/partner-program/\"},{\"title\":\"Terms \u0026 Policies\",\"url\":\"https://launchdarkly.com/policies/subscription-terms/\"},{\"title\":\"Contact Us\",\"url\":\"/contact-us/\"},{\"title\":\"Community\",\"url\":\"https://launchdarkly.com/community/\"}],\"snsLinks\":[{\"url\":\"https://twitter.com/launchdarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4508c29-da0c-4e9b-bcae-205a95a6ba5d_logo--x-twitter.svg?auto=compress,format\",\"iconAlt\":\"twitter\"},{\"url\":\"https://www.youtube.com/@LaunchDarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/276be984-0bd0-44ed-9e32-44a21a0c4fac_icon-youtube.svg\",\"iconAlt\":\"YouTube\"},{\"url\":\"https://www.linkedin.com/company/launchdarkly/mycompany/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b512fb1-6ecc-4e7f-bfe2-368f1a29898b_icon-LinkedIn.svg\",\"iconAlt\":\"LinkedIn\"},{\"url\":\"https://discord.com/invite/launchdarklycommunity\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ZpaT7h5LeNNTxNRX_discord-logo-white.svg?auto=compress,format\",\"iconAlt\":\"Discord\"},{\"url\":\"https://www.instagram.com/launchdarkly/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b8446e4-02c7-468e-bb32-79d0432dd1d0_instagram-icon-small.svg\",\"iconAlt\":\"Instagram\"}],\"useRefresShortFooter\":\"$undefined\",\"loadFooterNewsletter\":true,\"shortFooter\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"4e:I[91711,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"37:[\"$\",\"$L4e\",null,{\"mainBreadcrumb\":\"Blog\",\"mainBreadcrumbLink\":\"/blog\",\"subBreadcrumb\":\"DevOps\",\"subBreadcrumbLink\":\"/blog/category/devops\",\"title\":\"The Time Our Provider Screwed Us\",\"popularSearchTerms\":[{\"term\":[{\"type\":\"paragraph\",\"text\":\"Feature flags\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"Progressive delivery\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"feature management\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"Git branching strategies vs. trunk-based development\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"experimentation and A/B testing\",\"spans\":[]}]}]}]\n"])</script></body></html> |