1<!DOCTYPE html><html lang="en" class="ibm_plex_sans_949af5b-module__Xd9jba__variable ibm_plex_mono_1396f621-module__yAoysW__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0x7kcn5crc1vz.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2lqvm_7bnpo4s.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3o9ndxbclbhv4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1qt6pht_u0de1.js"/>
1<script src="/_next/static/chunks/2ul8ophnk13y-.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/3sr9j71te8kyd.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/2-rtuqsgzmno4.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/turbopack-41818_pseh4aj.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/1pz8nl2fwrd8r.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/43nnncnxzxrsc.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/1h5wk3de-b3gy.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/1l452285ljiry.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/0xvt93wodqzki.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/0-fbly-mdk3ec.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/41s986c8g8a7i.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/00w9d_di6xdy5.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/1k7v0ctpni0yl.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/13quooy621rq5.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/30jw9kkjsbx-p.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/2mr-ot5yhim68.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/1kq57lpvtitd-.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<script src="/_next/static/chunks/3s_23c3y3a-cc.js" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.0/github-markdown.min.css" as="style" crossorigin="anonymous" integrity="sha512-h/laqMqQKUXxFuu6aLAaSrXYwGYQ7qk4aYCQ+KJwHZMzAGaEoxMM6h8C+haeJTU1V6E9jrSUnjpEzX23OmV/Aw==" referrerPolicy="no-referrer"/><link rel="preload" href="/_next/static/chunks/2z7egligy77ig.js" as="script" fetchPriority="low"/><meta name="theme-color" content="#4F21EA"/><meta name="next-size-adjust" content=""/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.0/github-markdown.min.css" integrity="sha512-h/laqMqQKUXxFuu6aLAaSrXYwGYQ7qk4aYCQ+KJwHZMzAGaEoxMM6h8C+haeJTU1V6E9jrSUnjpEzX23OmV/Aw==" crossorigin="anonymous" referrerPolicy="no-referrer"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
1<style data-styled="" data-styled-version="5.3.11">html{line-height:1.15;-webkit-text-size-adjust:100%;text-size-adjust:100%;}/*!sc*/ 2body{margin:0;}/*!sc*/ 3main{display:block;}/*!sc*/ 4h1{font-size:2em;margin:0.67em 0;}/*!sc*/ 5hr{box-sizing:content-box;height:0;overflow:visible;}/*!sc*/ 6pre{font-family:monospace,monospace;font-size:1em;}/*!sc*/ 7a{background-color:transparent;}/*!sc*/ 8abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 9b,strong{font-weight:bolder;}/*!sc*/ 10code,kbd,samp{font-family:monospace,monospace;font-size:1em;}/*!sc*/ 11small{font-size:80%;}/*!sc*/ 12sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}/*!sc*/ 13sub{bottom:-0.25em;}/*!sc*/ 14sup{top:-0.5em;}/*!sc*/ 15img{border-style:none;}/*!sc*/ 16button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}/*!sc*/ 17button,input{overflow:visible;}/*!sc*/ 18button,select{text-transform:none;}/*!sc*/ 19button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}/*!sc*/ 20button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}/*!sc*/ 21button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText;}/*!sc*/ 22fieldset{padding:0.35em 0.625em 0.75em;}/*!sc*/ 23legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}/*!sc*/ 24progress{vertical-align:baseline;}/*!sc*/ 25textarea{overflow:auto;}/*!sc*/ 26[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}/*!sc*/ 27[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}/*!sc*/ 28[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}/*!sc*/ 29[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}/*!sc*/ 30::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}/*!sc*/ 31details{display:block;}/*!sc*/ 32summary{display:list-item;}/*!sc*/ 33template{display:none;}/*!sc*/ 34[hidden]{display:none;}/*!sc*/ 35abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}/*!sc*/ 36*{box-sizing:border-box;}/*!sc*/ 37html,body{padding:0px;margin:0px;font-family:"Niveau Grotesk";max-width:100vw;overflow-x:hidden;background:#0E0E0F;color:#D8D8D8B3;}/*!sc*/ 38@media(max-width:992px){html,body{font-size:95%;}}/*!sc*/ 39@media(max-width:576px){html,body{font-size:92%;}}/*!sc*/ 40html{overflow-y:overlay;-webkit-scroll-behavior:smooth;-moz-scroll-behavior:smooth;-ms-scroll-behavior:smooth;scroll-behavior:smooth;}/*!sc*/ 41html{overflow-y:overlay;}/*!sc*/ 42html::-webkit-scrollbar{width:8px;margin-top:0.5em;margin-bottom:0.5em;height:80%;border-radius:40px;}/*!sc*/ 43html::-webkit-scrollbar-track{background:#eaeaea;background:transparent;}/*!sc*/ 44html::-webkit-scrollbar-thumb{background:#c4c4c4;border-radius:40px;background:transparent;}/*!sc*/ 45html:hover::-webkit-scrollbar-thumb{background:#c4c4c4;border-radius:40px;}/*!sc*/ 46html.disable-scroll{overflow:hidden;}/*!sc*/ 47html div#root{max-width:100vw;overflow-x:hidden;}/*!sc*/ 48html button,html a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}/*!sc*/ 49html hr{border:none;border-bottom:1px solid #EEF0F9;}/*!sc*/ 50html h1{font-size:clamp(3rem,6vw,4.875rem);font-weight:400;line-height:110%;}/*!sc*/ 51html h2{font-size:clamp(2.3rem,5vw,3.2rem);}/*!sc*/ 52html h1,html h2,html h3,html h4,html p{margin:0px;padding:0px;color:#D8D8D8B3;}/*!sc*/ 53html .dot{margin:auto 0.5em;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;justify-self:center;width:0.5em;height:0.5em;border-radius:50%;background:#fff;}/*!sc*/ 54html img{max-width:100%;}/*!sc*/ 55@media(max-width:992px){html img.float-img{display:none;}}/*!sc*/ 56html .appContentContainer{padding-top:4.5rem;width:90%;max-width:1300px;margin:0px auto;}/*!sc*/ 57html .u-color_primary{color:#4F21EA!important;}/*!sc*/ 58html .u-color_orange{color:#E6BA00;}/*!sc*/ 59html .u-color_yellow{color:#E6BA00;}/*!sc*/ 60html .u-color_green{color:#3DBA55;}/*!sc*/ 61html .u-color_brown{color:#BA5F3D;}/*!sc*/ 62html .u-typo_underline{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 63html .u-typo_title{font-weight:400;font-size:3rem;line-height:120%;}/*!sc*/ 64@media(max-width:576px){html .u-typo_title{font-size:1.8rem;}}/*!sc*/ 65html .toast-container{font-family:var(--font-plex-sans),'IBM Plex Sans',system-ui,sans-serif;}/*!sc*/ 66html .toast-container .Toastify__toast{border-radius:15px;background:#111111 0% 0% no-repeat padding-box;box-shadow:0px 20px 20px #00000033;border:2px solid #4F21EA;border-radius:12px;padding-left:1.5em;}/*!sc*/ 67html .dash{display:block;width:1.8rem;height:0.3rem;
67background:#3DBA55 0% 0% no-repeat padding-box;border-radius:4px;}/*!sc*/ 68html .u-typo_section_label{-webkit-letter-spacing:3.2px;-moz-letter-spacing:3.2px;-ms-letter-spacing:3.2px;letter-spacing:3.2px;font-size:1rem!important;color:#D8D8D899;line-height:130%;margin-bottom:0.8em;font-weight:300;}/*!sc*/ 69html .u-typo_primaryDot:after{content:".";font-size:inherit;color:#4F21EA;}/*!sc*/ 70html .u-primary_last_letter::last-letter{color:#4F21EA;}/*!sc*/ 71html strong{font-weight:500;}/*!sc*/ 72html div.appContent-container{padding-top:4.5rem;width:90%;max-width:1300px;margin:0 auto;margin:0 auto;}/*!sc*/ 73html div.appContent-container p{font-size:0.9rem;}/*!sc*/ 74body{overflow-x:unset;}/*!sc*/ 75h1,h2{-webkit-letter-spacing:-1.5px;-moz-letter-spacing:-1.5px;-ms-letter-spacing:-1.5px;letter-spacing:-1.5px;}/*!sc*/ 76h2{color:#FFFFFF;font-weight:400;font-size:clamp(2.3rem,5vw,3.2rem);background:linear-gradient(106deg,#FFFFFFD8 0%,#FFFFFF55 61%,#FFFFFF9B 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;}/*!sc*/ 77.rec-arrow{width:50px;min-width:50px;height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:1.6rem;line-height:unset;border:2px solid rgba(255,255,255,0.48) !important;background:#0e0e0f;background-color:none;}/*!sc*/ 78.rec-arrow:hover,.rec-arrow:hover:enabled,.rec-arrow:focus,.rec-arrow:focus:enabled{background-color:none;}/*!sc*/ 79.reviews{width:95%;max-width:90rem;margin:0 auto;}/*!sc*/ 80.reviews h2{text-align:center;font-size:clamp(2.3rem,5vw,3.2rem);}/*!sc*/ 81.reviews h2{max-width:34rem;width:100%;margin:0 auto !important;}/*!sc*/ 82.reviews .reviewContainer{position:relative;}/*!sc*/ 83.reviews .reviewContainer:after{content:'';position:absolute;width:100%;height:100%;top:0;-webkit-filter:blur(2.8rem);filter:blur(2.8rem);left:0;background:url(https://pub-950943fa1bc54978bed46ef104f9d81a.r2.dev/discoverTwoPattern.svg) no-repeat center center;background-size:57rem;}/*!sc*/ 84@media (max-width:767px){.reviews .reviewContainer:after{background-size:37rem;}}/*!sc*/ 85.reviews .reviewContainer .review{background:transparent linear-gradient(180deg,#FFFFFFD8 0%,#FFFFFF62 61%,#FFFFFF9B 100%) 0% 0% no-repeat padding-box;background:transparent linear-gradient(180deg,#FFFFFFD8 0%,#FFFFFF62 61%,#FFFFFF9B 100%) 0% 0% no-repeat padding-box;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-align:left;font-weight:300;line-height:160%;font-size:clamp(1.8rem,5vw,2.5rem);}/*!sc*/ 86.reviews .reviewContainer .userDetails{margin-top:0.5em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:0.3em;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 87.reviews .reviewContainer .userDetails .userImg{padding:2px;background:linear-gradient(180deg,#ffeb00 0%,#9fffd6 61%,#b098ff 100%);overflow:hidden;height:3.56rem;width:3.56rem;border-radius:50%;}/*!sc*/ 88.reviews .reviewContainer .userDetails .userImg .screen{background:#0e0e0f;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:100%;width:100%;border-radius:50%;}/*!sc*/ 89.reviews .reviewContainer .userDetails p{text-align:left;}/*!sc*/ 90.reviews .reviewContainer .userDetails p:first-child{font-weight:400;font-size:1.7rem;background:transparent linear-gradient(148deg,#FFFFFFD8 0%,#FFFFFF62 61%,#FFFFFF9B 100%) 0% 0% no-repeat padding-box;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;}/*!sc*/ 91.reviews .reviewContainer .userDetails p:last-child{font-size:1rem;font-weight:300;color:#D8D8D8B3;}/*!sc*/ 92@media (max-width:767px){.userDetails p:first-child{font-size:1.37rem !important;}.userDetails p:last-child{font-size:1rem !important;}}/*!sc*/ 93@media (max-width:1023px){.reviews{max-width:60rem;width:100%;}.reviews .reviewContainer .userImg{width:3rem !important;height:3rem !important;}}/*!sc*/ 94@media (max-width:1023px){.luma-checkout--overlay{height:100vh !important;width:100vw !important;position:fixed !important;top:0 !important;left:0 !important;background:rgba(75,101,132,.467) !important;right:0 !important;bottom:0 !important;z-index:999999999 !important;}.luma-checkout--overlay .luma-checkout--close-btn{position:absolute !important;right:1rem !important;top:1rem !important;background:none !important;background-color:hsla(0,0%,100%,.533) !important;border:none !important;border-radius:100px !important;cursor:pointer !important;line-height:0 !important;padding:.25rem !important;position:absolute !important;right:1rem;top:1rem;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1) !important;transition:all .3s cubic-bezier(.4,0,.2,1) !important;z-index:100 !important;}.luma-checkout--overlay .luma-checkout--close-btn img{height:1rem;width:1rem;}.luma-checkout--modal{position:absolute !important;top:0 !important;left:0 !important;width:100% !important;max-width:600px !important;height:100vh !important;max-height:100% !important;overflow:auto !important;}svg.luma-spinner{-webkit-animation:luma-rotator 1.4s linear infinite !important;animation:luma-rotator 1.4s linear infinite !important;height:40px !important;left:calc(50% - 20px) !important;position:absolute !important;top:calc(50% - 20px) !important;width:40px !important;}}/*!sc*/ 95data-styled.g38[id="sc-global-iRhmrs1"]{content:"sc-global-iRhmrs1,"}/*!sc*/ 96.kGizPY{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;gap:0.6rem;padding:0.7rem 1rem 0.8rem;background:#111;border:2px solid #1f1f21;border-radius:15px;}/*!sc*/ 97.kGizPY .label{font-size:10px;font-weight:500;-webkit-letter-spacing:0.2em;-moz-letter-spacing:0.2em;-ms-letter-spacing:0.2em;letter-spacing:0.2em;text-transform:uppercase;color:#cbcbcb;line-height:1;}/*!sc*/ 98.kGizPY .logos{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:0.85rem;}/*!sc*/ 99.kGizPY.kGizPY img{width:auto;display:block;object-fit:contain;}/*!sc*/ 100data-styled.g39[id="BackedBy__Box-sc-71d769d-0"]{content:"kGizPY,"}/*!sc*/ 101.cQbHsq{width:90%;max-width:1300px;margin:0 auto;position:relative;padding-top:15em;font-family:var(--font-plex-sans),'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
101/*!sc*/ 102@media (max-width:560px){.cQbHsq{padding-top:5rem;}}/*!sc*/ 103.cQbHsq.homeFooter{padding-top:5rem;}/*!sc*/ 104.cQbHsq.homeFooter::before{content:'';position:absolute;top:0;left:50%;width:100vw;height:100%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);background:#111111;border-top:1px solid rgba(255,255,255,0.12);z-index:0;pointer-events:none;}/*!sc*/ 105.cQbHsq.homeFooter > *{position:relative;z-index:1;}/*!sc*/ 106@media (max-width:560px){.cQbHsq.homeFooter{padding-top:3.5rem;}}/*!sc*/ 107.cQbHsq div.soc-container{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:2.5em;}/*!sc*/ 108.cQbHsq div.help-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}/*!sc*/ 109@media(max-width:992px){.cQbHsq div.help-container{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-bottom:2em;}}/*!sc*/ 110.cQbHsq div.help-container div.help-row{cursor:pointer;grid-gap:1em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:-webkit-sticky;position:sticky;bottom:2em;background:#1f1f21 0% 0% no-repeat padding-box;box-shadow:0px 8px 20px #00000029;border-radius:15px;opacity:1;padding:1em;padding-right:2em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}/*!sc*/ 111.cQbHsq div.help-container div.help-row img{width:3.5rem;}/*!sc*/ 112.cQbHsq div.help-container div.help-row div.content-container p{color:#d8d8d8;}/*!sc*/ 113.cQbHsq div.help-container div.help-row div.content-container h2{font-size:1rem;font-weight:400;}/*!sc*/ 114.cQbHsq div.help-container div.help-row:hover h2,.cQbHsq div.help-container div.help-row:focus h2{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 115.cQbHsq div.top-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;padding:1.5em 0px 4em;}/*!sc*/ 116@media (max-width:561px){.cQbHsq div.top-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.cQbHsq div.top-container nav{margin-bottom:3rem;gap:0px !important;}}/*!sc*/ 117.cQbHsq div.top-container *{position:relative;z-index:2;}/*!sc*/ 118.cQbHsq div.top-container div.col-1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;grid-gap:2em;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;color:#d8d8d8;font-weight:300;font-size:0.9rem;}/*!sc*/ 119.cQbHsq div.top-container div.col-1 svg{font-size:2.5rem;}/*!sc*/ 120.cQbHsq div.top-container div.col-1 img{width:100%;}/*!sc*/ 121@media (max-width:941px){.cQbHsq div.top-container div.col-1{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;margin-bottom:3rem;}}/*!sc*/ 122.cQbHsq div.top-container label{text-transform:uppercase;-webkit-letter-spacing:2.4px;-moz-letter-spacing:2.4px;-ms-letter-spacing:2.4px;letter-spacing:2.4px;color:#cbcbcb99;font-size:12px;}/*!sc*/ 123.cQbHsq div.top-container nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;gap:0.8em;}/*!sc*/ 124@media (max-width:561px){.cQbHsq div.top-container nav .partnership{margin:1.8rem 0 0.5rem;}}/*!sc*/ 125.cQbHsq div.top-container nav a{font-size:1rem !important;}/*!sc*/ 126.cQbHsq div.top-container nav ul{padding:0;list-style-type:none;}/*!sc*/ 127.cQbHsq div.top-container nav ul li{padding-bottom:1rem;}/*!sc*/ 128.cQbHsq div.top-container nav ul li:last-of-type{padding-bottom:0;}
128/*!sc*/ 129.cQbHsq div.top-container nav ul li a{text-transform:capitalize;font-size:1rem;outline:none;}/*!sc*/ 130.cQbHsq div.top-container nav a{color:#d8d8d8;outline:none;font-size:0.9rem;font-weight:400;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 131.cQbHsq div.top-container nav a:hover,.cQbHsq div.top-container nav a.active,.cQbHsq div.top-container nav a:focus{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 132.cQbHsq div.social-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;grid-gap:1.5em;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:1.5em 0px;position:relative;z-index:2;}/*!sc*/ 133.cQbHsq div.social-row:after{content:'';top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);border-top:2px solid #1f1f21;background:#111;width:100vw;position:absolute;z-index:-1;height:100%;}/*!sc*/ 134@media (max-width:561px){.cQbHsq div.social-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:2.5em;padding:3em 0;}}/*!sc*/ 135.cQbHsq div.social-row a.system-link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;grid-gap:0.6em;outline:none;color:rgb(216,216,216);font-size:0.9rem;font-weight:400;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 136.cQbHsq div.social-row a.system-link:hover p,.cQbHsq div.social-row a.system-link:focus p{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 137.cQbHsq div.social-row a.system-link span{display:block;width:0.9rem;height:0.9rem;position:relative;z-index:1;background:#3DBA55;-webkit-animation:jyQtQu 3s linear infinite;animation:jyQtQu 3s linear infinite;border-radius:50%;}/*!sc*/ 138.cQbHsq div.social-row a.system-link span:after{content:'';position:absolute;top:50%;z-index:-1;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:0.6rem;height:0.6rem;border-radius:50%;display:block;background:#3DBA55;}/*!sc*/ 139.cQbHsq div.social-row a.system-link span:last-of-type{visibility:hidden;}/*!sc*/ 140@media(max-width:992px){.cQbHsq div.social-row a.system-link span:last-of-type{display:none;}}/*!sc*/ 141.cQbHsq div.social-row a.system-link p{font-size:0.9rem;color:#d8d8d8;}/*!sc*/ 142.cQbHsq div.social-row .socialLinksWrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1.5em;}/*!sc*/ 143.cQbHsq div.social-row .socialLinksWrapper a{outline:none;}/*!sc*/ 144.cQbHsq div.social-row .socialLinksWrapper a svg{-webkit-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out;font-size:2rem;}/*!sc*/ 145.cQbHsq div.social-row .socialLinksWrapper a.twitter-link svg{font-size:1.75rem;fill:#fff;}/*!sc*/ 146.cQbHsq div.social-row .socialLinksWrapper a.linkedin-link svg{font-size:1.5rem;}/*!sc*/ 147.cQbHsq div.social-row .socialLinksWrapper a.slack-link svg{font-size:1.5rem;}/*!sc*/ 148.cQbHsq div.social-row .socialLinksWrapper a:hover svg *,.cQbHsq div.social-row .socialLinksWrapper a:focus svg *{fill:#4F21EA;}/*!sc*/ 149.cQbHsq.ccHubFooter{padding:8em 0 1.5rem;}/*!sc*/ 150.cQbHsq div.ccHubSocial{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;grid-gap:1.5em;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:1.5em 0px;}/*!sc*/ 151@media (max-width:400px){.cQbHsq div.ccHubSocial{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;gap:2.5em;padding:3em 0;}}/*!sc*/ 152.cQbHsq div.ccHubSocial .column-1{color:#a0a0a0;}/*!sc*/
153.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1em;}/*!sc*/ 154.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a{outline:none;}/*!sc*/ 155.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a svg{-webkit-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out;font-size:2rem;}/*!sc*/ 156.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a.twitter-link svg{font-size:1.9rem;}/*!sc*/ 157.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a.linkedin-link svg{font-size:1.5rem;}/*!sc*/ 158.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a.slack-link svg{font-size:1.5rem;}/*!sc*/ 159.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a:hover svg *,.cQbHsq div.ccHubSocial .ccHubSocialLinksWrapper a:focus svg *{stroke:#4F21EA;}/*!sc*/ 160.cQbHsq.waitlistFooter{background:#0e0e0f;}/*!sc*/ 161.cQbHsq.waitlistFooter:after{background:#0e0e0f;z-index:0;}/*!sc*/ 162.cQbHsq.waitlistFooter div.top-container:after{background:#0e0e0f;}/*!sc*/ 163.cQbHsq.waitlistFooter .social-row{z-index:1;position:relative;}/*!sc*/ 164.cQbHsq.waitlistFooter .social-row:after,.cQbHsq.waitlistFooter .social-row:before{content:'';position:absolute;height:100%;background:#18181a;width:100vw;left:50%;top:0px;z-index:-1;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/ 165.cQbHsq.waitlistFooter .social-row:before{height:2px;background:#1f1f21;z-index:1;}/*!sc*/ 166data-styled.g40[id="styles-sc-a84aac49-0"]{content:"cQbHsq,"}/*!sc*/ 167.hEjsqF{--nav-ground:rgba(17,17,17,0.72);--nav-ink:rgba(255,255,255,0.72);--nav-ink-strong:#ffffff;--nav-hairline:rgba(255,255,255,0.12);--nav-primary:#4f21ea;--nav-primary-hover:#5f19f2;--nav-gutter:clamp(1.25rem,4vw,3.5rem);position:fixed;top:0;left:0;width:100%;z-index:88;font-family:var(--font-plex-sans),'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;color:var(--nav-ink-strong);background:var(--nav-ground);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 0 transparent;-webkit-transition: box-shadow 0.25s ease, background 0.25s ease, top 0.3s ease-in-out;transition: box-shadow 0.25s ease, background 0.25s ease, top 0.3s ease-in-out;}/*!sc*/ 168.hEjsqF.scrolled,.hEjsqF.menu-open{box-shadow:0 1px 0 0 var(--nav-hairline);background:rgba(17,17,17,0.88);}/*!sc*/ 169.hEjsqF a{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 170.hEjsqF .bar{position:relative;z-index:3;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;gap:1rem;height:4.5rem;padding:0 var(--nav-gutter);max-width:1440px;margin:0 auto;}/*!sc*/ 171@media (max-width:1199px){.hEjsqF .bar{height:4rem;}}/*!sc*/ 172.hEjsqF .col-1,.hEjsqF .col-2{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.5rem;-webkit-flex:1;-ms-flex:1;flex:1;}/*!sc*/ 173.hEjsqF .col-2{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}/*!sc*/ 174.hEjsqF a.link-btn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0;background:transparent;border:none;}/*!sc*/ 175.hEjsqF a.link-btn svg{height:1.875rem;width:auto;display:block;}/*!sc*/ 176.hEjsqF .nav-desktop{display:none;-webkit-flex:none;-ms-flex:none;flex:none;}/*!sc*/ 177@media (min-width:1200px){.hEjsqF .nav-desktop{display:block;}}/*!sc*/ 178.hEjsqF .pill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:0.25rem;padding:0.25rem;border:1px solid var(--nav-hairline);border-radius:100px;font-size:0.875rem;}/*!sc*/ 179.hEjsqF .nav-item{position:relative;}/*!sc*/ 180.hEjsqF .nav-link{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.25rem;padding:0.5rem 1rem;border-radius:100px;border:none;background:transparent;color:var(--nav-ink);font:inherit;font-size:0.875rem;line-height:1.2;cursor:pointer;white-space:nowrap;-webkit-transition: background 0.2s ease, color 0.2s ease;transition: background 0.2s ease, color 0.2s ease;}/*!sc*/ 181.hEjsqF .nav-link svg{-webkit-transition:-webkit-transform 0.2s ease;-webkit-transition:transform 0.2s ease;transition:transform 0.2s ease;}/*!sc*/ 182.hEjsqF .nav-link:hover,.hEjsqF .nav-link:focus-visible,.hEjsqF .nav-link.active,.hEjsqF .nav-link.active-menu{background:rgba(255,255,255,0.08);color:var(--nav-ink-strong);outline:none;}/*!sc*/ 183@media (min-width:1200px){.hEjsqF .nav-item.has-menu:hover .nav-link,.hEjsqF .nav-item.has-menu:focus-within .nav-link{background:rgba(255,255,255,0.08);color:var(--nav-ink-strong);}.hEjsqF .nav-item.has-menu:hover .nav-link svg,.hEjsqF .nav-item.open .nav-link svg{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}}/*!sc*/ 184@media (min-width:1200px){.hEjsqF .dropdown{position:absolute;top:100%;left:0;padding-top:0.875rem;opacity:0;-webkit-transform:translateY(-4px);-ms-transform:translateY(-4px);transform:translateY(-4px);pointer-events:none;-webkit-transition: opacity 0.18s ease, -webkit-transform 0.18s ease;-webkit-transition: opacity 0.18s ease, transform 0.18s ease;transition: opacity 0.18s ease, transform 0.18s ease;z-index:5;}}/*!sc*/ 185@media (min-width:1200px){.hEjsqF .nav-item.has-menu:hover .dropdown,.hEjsqF .nav-item.has-menu:focus-within .dropdown,.hEjsqF .nav-item.open .dropdown{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);pointer-events:auto;}.hEjsqF .nav-item.has-menu.suppressed .dropdown{opacity:0;-webkit-transform:translateY(-4px);-ms-transform:translateY(-4px);transform:translateY(-4px);pointer-events:none;}.hEjsqF .nav-item.has-menu.suppressed .nav-link{background:transparent;color:var(--nav-ink);}.hEjsqF .nav-item.has-menu.suppressed .nav-link svg{-webkit-transform:none;-ms-transform:none;transform:none;}}/*!sc*/ 186.hEjsqF .dropdownPanel{min-width:18rem;background:#141416;border:1px solid var(--nav-hairline);padding:0.375rem;display:grid;gap:2px;box-shadow:0 24px 48px rgba(0,0,0,0.45);}/*!sc*/ 187.hEjsqF .subItem{display:grid;gap:0.125rem;padding:0.75rem 0.875rem;color:var(--nav-ink-strong);-webkit-transition:background 0.15s ease;transition:background 0.15s ease;}/*!sc*/ 188.hEjsqF .subItem:hover,.hEjsqF .subItem:focus-visible,.hEjsqF .subItem.active{background:rgba(255,255,255,0.06);outline:none;}/*!sc*/ 189.hEjsqF .subItem.comingSoon{cursor:not-allowed;opacity:0.55;}/*!sc*/ 190.hEjsqF .subTitle{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.5rem;font-size:0.9375rem;line-height:1.3;}/*!sc*/ 191.hEjsqF .subBadge{font-family:var(--font-plex-mono),'IBM Plex Mono',ui-monospace,monospace;font-size:0.625rem;-webkit-letter-spacing:0.08em;-moz-letter-spacing:0.08em;-ms-letter-spacing:0.08em;letter-spacing:0.08em;text-transform:uppercase;color:#bec8ff;border:1px solid rgba(190,200,255,0.4);padding:0.125rem 0.375rem;}/*!sc*/ 192.hEjsqF .subText{font-size:0.75rem;line-height:1.4;color:rgba(255,255,255,0.48);}/*!sc*/ 193.hEjsqF .actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.5rem;}/*!sc*/ 194.hEjsqF .actions-desktop{display:none;}/*!sc*/ 195@media (min-width:1200px){.hEjsqF .actions-desktop{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}/*!sc*/ 196.hEjsqF .btn-primary,.hEjsqF .btn-ghost{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;
196-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:2.75rem;padding:0 1.5rem;font:inherit;font-size:0.9375rem;font-weight:600;line-height:1;border:none;border-radius:0;cursor:pointer;white-space:nowrap;-webkit-transition: background 0.2s ease, color 0.2s ease;transition: background 0.2s ease, color 0.2s ease;}/*!sc*/ 197.hEjsqF .btn-primary{background:var(--nav-primary);color:#fff;}/*!sc*/ 198.hEjsqF .btn-primary:hover,.hEjsqF .btn-primary:focus-visible{background:var(--nav-primary-hover);color:#fff;outline:none;}/*!sc*/ 199.hEjsqF .btn-ghost{background:transparent;color:var(--nav-ink);font-weight:400;}/*!sc*/ 200.hEjsqF .btn-ghost:hover,.hEjsqF .btn-ghost:focus-visible{color:var(--nav-ink-strong);background:rgba(255,255,255,0.06);outline:none;}/*!sc*/ 201.hEjsqF .nav-btn{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:2.75rem;height:2.75rem;background:transparent;border:1px solid var(--nav-hairline);border-radius:100px;color:#fff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}/*!sc*/ 202.hEjsqF .nav-btn svg{font-size:1.5rem;}/*!sc*/ 203@media (min-width:1200px){.hEjsqF .nav-btn{display:none;}}/*!sc*/ 204.hEjsqF .nav-mobile{position:fixed;left:0;right:0;top:4rem;height:calc(100dvh - 4rem);overflow:auto;background:rgba(17,17,17,0.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);-webkit-transform:translate3d(0,-110%,0);-ms-transform:translate3d(0,-110%,0);transform:translate3d(0,-110%,0);opacity:0;visibility:hidden;pointer-events:none;-webkit-transition: -webkit-transform 0.22s ease-out, opacity 0.18s ease-out, visibility 0s linear 0.22s;-webkit-transition: transform 0.22s ease-out, opacity 0.18s ease-out, visibility 0s linear 0.22s;transition: transform 0.22s ease-out, opacity 0.18s ease-out, visibility 0s linear 0.22s;z-index:1;}/*!sc*/ 205.hEjsqF .nav-mobile.active-nav{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible;pointer-events:auto;-webkit-transition: -webkit-transform 0.22s ease-out, opacity 0.18s ease-out;-webkit-transition: transform 0.22s ease-out, opacity 0.18s ease-out;transition: transform 0.22s ease-out, opacity 0.18s ease-out;}/*!sc*/ 206@media (min-width:1200px){.hEjsqF .nav-mobile{display:none;}}/*!sc*/ 207.hEjsqF .nav-mobile .nav-container{display:grid;gap:0.25rem;padding:1.5rem var(--nav-gutter) 3rem;}/*!sc*/ 208.hEjsqF .nav-mobile .nav-item{border-bottom:1px solid var(--nav-hairline);}/*!sc*/ 209.hEjsqF .nav-mobile .nav-link{width:100%;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 0;border-radius:0;font-size:1.125rem;color:var(--nav-ink-strong);background:transparent !important;}/*!sc*/ 210.hEjsqF .nav-mobile .nav-item.open .nav-link svg{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}/*!sc*/ 211.hEjsqF .nav-mobile .dropdown{display:none;}/*!sc*/ 212.hEjsqF .nav-mobile .nav-item.open .dropdown{display:block;}/*!sc*/ 213.hEjsqF .nav-mobile .dropdownPanel{border:none;background:transparent;box-shadow:none;padding:0 0 1rem;min-width:0;}/*!sc*/ 214.hEjsqF .nav-mobile .subItem{padding:0.75rem 0.5rem;}/*!sc*/ 215.hEjsqF .nav-mobile .actions-mobile{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin-top:1.5rem;gap:0.75rem;}/*!sc*/ 216.hEjsqF .nav-mobile .actions-mobile .btn-primary,.hEjsqF .nav-mobile .actions-mobile .btn-ghost{height:3rem;width:100%;}/*!sc*/ 217.hEjsqF .nav-mobile .actions-mobile .btn-ghost{border:1px solid var(--nav-hairline);}/*!sc*/ 218.hEjsqF.nav-variant{top:40px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;}/*!sc*/ 219.hEjsqF.nav-variant .actions-desktop{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ 220.hEjsqF.nav-variant .bar{max-width:none;width:90%;padding:0;}/*!sc*/ 221data-styled.g41[id="styles-sc-d30da83e-0"]{content:"hEjsqF,"}/*!sc*/ 222@-webkit-keyframes jyQtQu{0%{background:rgba(61,186,85,0.5);}50%{background:rgba(61,186,85,0.1);}100%{background:rgba(61,186,85,0.5);}}/*!sc*/ 223@keyframes jyQtQu{0%{background:rgba(61,186,85,0.5);}50%{background:rgba(61,186,85,0.1);}100%{background:rgba(61,186,85,0.5);}}/*!sc*/ 224data-styled.g43[id="sc-keyframes-jyQtQu"]{content:"jyQtQu,"}/*!sc*/ 225</style></head><body><div hidden=""><!--$?--><template id="B:0"></template><!--/$--></div>
vendor: 67 bytes, line 225
225<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
225GTM-P44WNWW
vendor: 82 bytes, line 225
225" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
225<!--$?--><template id="B:1"></template><!--/$-->
225<script type="039fd87e3c1c1e513804e704-text/javascript">requestAnimationFrame(function(){$RT=performance.now()});</script>
225<script src="/_next/static/chunks/1qt6pht_u0de1.js" id="_R_" async="" type="039fd87e3c1c1e513804e704-text/javascript"></script>
225<div hidden id="S:1"><!--$--><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><header class="styles-sc-d30da83e-0 hEjsqF "><div class="bar"><div class="col-1"><a class="link-btn" aria-label="PipeOps home" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" viewBox="0 0 158.664 37.316" color="#fff"><g data-name="Pipeops 1 White"><g data-name="Group 7"><path data-name="Path 9" d="M27.607 34.536a17.957 17.957 0 01-12.151 2.6 14.623 14.623 0 01-.693-.112c-.046-.009-.1-.018-.149-.032a17.558 17.558 0 01-3.325-.965c-.417-.167-.83-.347-1.237-.547a.24.24 0 01-.042-.021 5.05 5.05 0 01-.233-.116s-.007 0-.01-.007 0 0-.007 0a10.996 10.996 0 01-.623-.335c-.035-.019-.072-.037-.1-.058-.007 0-.011 0-.011-.007a17.246 17.246 0 01-1.857-1.217.07.07 0 01-.026-.018 1.48 1.48 0 01-.107-.079 17.8 17.8 0 01-3.4-3.406c-.075-.1-.151-.2-.219-.3l-.414-.591a5.33 5.33 0 01-.17-.253 17.716 17.716 0 01-1.752-3.524 17.433 17.433 0 01-1.012-4.511c-.039-.4-.058-.8-.065-1.2A17.686 17.686 0 018.263 4.5a18.011 18.011 0 0116.735-1.315q.458.192.9.412a17.405 17.405 0 012.147 1.249q.621.421 1.208.9c.265.214.524.438.777.67.072.065.142.13.212.2a17.923 17.923 0 012.261 2.576q.274.381.531.78l.2.314q.305.5.572 1.007a18.1 18.1 0 01.93 2.047 17.834 17.834 0 01.719 2.411 17.7 17.7 0 01-7.848 18.785z" fill="#4f21ea"></path><g data-name="Group 3" opacity="0.25"><path data-name="Path 10" d="M4.374 24.283a3.046 3.046 0 01-.062.39 3.4 3.4 0 01-1.878 2.274c-.185-.4-.352-.814-.5-1.228a17.455 17.455 0 01-1.012-4.511c-.038-.4-.058-.8-.065-1.2a4.821 4.821 0 013.458 3.362 3.013 3.013 0 01.059.913z"></path><path data-name="Path 11" d="M8.981 27.535a3.44 3.44 0 01-1.313 2.025 3.5 3.5 0 01-.752.434 3.675 3.675 0 01-2.247.2 3.761 3.761 0 01-.393-.109l-.414-.592a4.889 4.889 0 01-.171-.253 17.558 17.558 0 01-1.252-2.295c-.185-.4-.352-.814-.5-1.228a3.5 3.5 0 012.38-2.346 3.713 3.713 0 014.357 1.84 3.443 3.443 0 01.305 2.324z"></path><path data-name="Path 12" d="M4.272 30.087c.068.1.144.2.219.3a17.8 17.8 0 003.4 3.406c.034.027.068.051.106.079a.166.166 0 00.007.041.066.066 0 00.021-.024 2.783 2.783 0 00.575-.872 3.11 3.11 0 00.157-.492 2.959 2.959 0 00.048-.947 2.62 2.62 0 00-.048-.287 2.993 2.993 0 00-1.084-1.73.272.272 0 00-.034-.031 3.173 3.173 0 00-1.238-.575l-.055-.01a2.722 2.722 0 00-.188-.034 3.093 3.093 0 00-2.295.585z"></path><path data-name="Path 13" d="M15.469 37.163a17.608 17.608 0 01-3.324-.964 18.102 18.102 0 01-1.512-.684s-.007 0-.01-.007 0 0-.007 0a11.27 11.27 0 01-.622-.335 3.172 3.172 0 011.809-.711 3.135 3.135 0 011.734.41 4.6 4.6 0 011.932 2.291z"></path><path data-name="Path 14" d="M13.899 33.216a3.1 3.1 0 01-.362 1.655 2.976 2.976 0 01-1.392 1.327 18.102 18.102 0 01-1.512-.684s-.007 0-.01-.007 0 0-.007 0a11.27 11.27 0 01-.622-.335c-.034-.021-.072-.037-.1-.058-.007 0-.01 0-.01-.007a16.863 16.863 0 01-1.857-1.218.064.064 0 01-.021.024.169.169 0 01-.007-.041 3.08 3.08 0 01-.031-.26v-.048a3.128 3.128 0 01.26-1.454 3.118 3.118 0 01.534-.817.721.721 0 01.048-.055 2.913 2.913 0 011.946-.906 2.778 2.778 0 01.7.045 3.047 3.047 0 012.443 2.839z"></path></g><path data-name="Path 15" d="M14.481 21.816s-5.253 4.672-8.405 4.378 3.975 9.321 3.975 9.321.542-7.923 7.309-11.255-2.879-2.444-2.879-2.444z" opacity="0.25"></path><path data-name="Path 16" d="M14.139 21.132a24.221 24.221 0 01-6.272 4.016c-.016-.035-.031-.071-.049-.106a3.713 3.713 0 00-4.357-1.84A4.821 4.821 0 00.003 19.84c.007.4.027.8.065 1.2a17.438 17.438 0 001.012 4.511c.147.414.315.824.5 1.228a18.695 18.695 0 001.251 2.295c.055.086.109.168.171.253l.414.592c.068.1.144.2.219.3a17.8 17.8 0 003.4 3.406c.034.027.068.051.106.079a.166.166 0 00.007.041.066.066 0 00.021-.024 16.853 16.853 0 001.857 1.218c0 .007 0 .007.01.007.031.021.068.038.1.058.205.12.41.229.622.335h.007c.007 0 .007.007.01.007.5.253 1 .479 1.512.684a17.608 17.608 0 003.324.964 4.6 4.6 0 00-1.932-2.292 3.1 3.1 0 00.363-1.655 3.058 3.058 0 00-2.146-2.765 12.837 12.837 0 016.12-6.7c6.768-3.338-2.877-2.45-2.877-2.45z" fill="#e6e6e6"></path><g data-name="Group 4" opacity="0.25"><path data-name="Path 17" d="M39.447 6.338a11.433 11.433 0 01-3.436 7.931 2.291 2.291 0 01-.363.27l-.428.26c.089.317.168.635.24.954l-8.848 5.377-.87
2257.531-4.16 2.527-.61.372-1.522.924a2.423 2.423 0 01-3.083-.475l-.11-.128-.161-.182-.346-.395-1.787-2.043-.279-.318a2.486 2.486 0 01-.2-.258 2.423 2.423 0 01.135-2.86l1.566-1.942.377-.467 3.33-4.12.577-.714 6.44-7.982.125-.154a2.306 2.306 0 01.316-.326c3.1-2.561 8.729-3.455 11.749-.947a6.394 6.394 0 011.355 4.165z"></path><path data-name="Path 18" d="M8.648 19.169l1.6-6.108a.756.756 0 01.729-.571l11.179-.272a1.009 1.009 0 01.914 1.44l-2.263 3.853a.777.777 0 01-.847.353l-6.049-1.239a.79.79 0 00-.759.233l-2.953 3.3c-.597.673-1.788-.085-1.551-.989z"></path><path data-name="Path 19" d="M18.445 30.363l6.267-.78a.756.756 0 00.663-.647l1.751-11.044a1.009 1.009 0 00-1.306-1.1l-4.118 1.732a.778.778 0 00-.462.792l.426 6.16a.79.79 0 01-.331.721l-3.663 2.489c-.748.511-.155 1.796.773 1.677z"></path><g data-name="Ellipse 1" transform="translate(26.94 6.385)" stroke="#f7931e" stroke-width="5"><circle cx="3.568" cy="3.568" r="3.568" stroke="none"></circle><circle cx="3.568" cy="3.568" r="1.068" fill="none"></circle></g></g><g data-name="Group 6"><path data-name="Path 20" d="M39.448 6.338a11.433 11.433 0 01-3.436 7.931 2.291 2.291 0 01-.363.27l-.428.26-8.417 5.114-.875.533-4.427 2.687-.61.372-2.133 1.3a2.421 2.421 0 01-2.445.042 1.9 1.9 0 01-.226-.144 2.338 2.338 0 01-.4-.359.1.1 0 01-.012-.014l-1.771-2.022-.491-.563-.421-.481a2.424 2.424 0 01-.061-3.118l1.191-1.475.375-.466 3.125-3.873.577-.716L25 3.192l.344-.426a2.221 2.221 0 01.316-.326c3.317-2.743 9.541-3.573 12.351-.361.028.032.056.065.082.1a6.394 6.394 0 011.355 4.159z" fill="#fff"></path><path data-name="Path 21" d="M7.964 18.485l1.6-6.108a.756.756 0 01.729-.571l11.179-.272a1.01 1.01 0 01.914 1.44l-2.263 3.852a.778.778 0 01-.847.353l-6.049-1.239a.79.79 0 00-.759.233l-2.953 3.3c-.597.674-1.788-.084-1.551-.988z" fill="#fff"></path><path data-name="Path 22" d="M17.761 29.679l6.267-.78a.756.756 0 00.663-.647l1.751-11.045a1.009 1.009 0 00-1.306-1.1l-4.118 1.732a.777.777 0 00-.462.792l.426 6.16a.79.79 0 01-.331.721l-3.663 2.49c-.748.511-.154 1.796.773 1.677z" fill="#fff"></path><g data-name="Group 5" transform="translate(26.256 5.701)"><circle data-name="Ellipse 2" cx="3.568" cy="3.568" r="3.568" fill="#4f21ea" opacity="0.48"></circle><path data-name="Path 23" d="M6.409 1.411a3.064 3.064 0 00-.291-.339 3.7 3.7 0 00-.289-.265A3.582 3.582 0 003.005.044a3.358 3.358 0 00-.368.079c-.1.028-.2.06-.3.1a3.568 3.568 0 001.235 6.915 3.582 3.582 0 00.622-.054 3.568 3.568 0 00.61-.165c.1-.037.2-.079.295-.125a3.571 3.571 0 001.312-5.381zm-.156 2.336A2.69 2.69 0 11.99 2.805 2.683 2.683 0 012.823.985a2.7 2.7 0 01.744-.1 2.672 2.672 0 01.428.035 2.7 2.7 0 011.6.882 2.67 2.67 0 01.663 1.694 2.541 2.541 0 01-.005.251z"></path></g></g></g><g data-name="Group 8"><path data-name="Path 24" d="M65.345 11.685a6.744 6.744 0 00-2.057-1.357 6.438 6.438 0 00-2.539-.512h-9.527V29.48h3.438v-6.84h6.081a6.445 6.445 0 002.542-.512 6.732 6.732 0 002.06-1.356 6.366 6.366 0 001.406-2.035 6.336 6.336 0 000-5.018 6.365 6.365 0 00-1.404-2.034zm-10.686 1.526h6.018a2.921 2.921 0 011.189.241 3.29 3.29 0 011.011.673 2.982 2.982 0 01.655.957 2.817 2.817 0 01.232 1.145 2.762 2.762 0 01-.236 1.152 3.04 3.04 0 01-.674.963 3.269 3.269 0 01-1.016.665 3.038 3.038 0 01-1.2.237h-5.976z" fill="#fff"></path><path data-name="Path 25" d="M70.725 6.715a2.163 2.163 0 00-1.561.643 2.188 2.188 0 00-.642 1.581 2.203 2.203 0 104.406 0 2.191 2.191 0 00-.644-1.583 2.163 2.163 0 00-1.559-.641z" fill="#4f21ea"></path><path data-name="Path 26" d="M68.395 16.684h.989v12.775h3.438V13.331h-4.427z" fill="#fff"></path><path data-name="Path 27" d="M88.486 15.445a8.474 8.474 0 00-2.662-1.789 8.277 8.277 0 00-3.283-.661 9.47 9.47 0 00-1.87.2 7.645 7.645 0 00-2.028.733 7.774 7.774 0 00-1.022.647v-1.239h-3.417v20.779h3.417v-5.959a8.261 8.261 0 00.823.537 7.959 7.959 0 002.073.828 8.11 8.11 0 005.334-.454 8.633 8.633 0 004.431-4.526 8.215 8.215 0 00.661-3.245 7.994 7.994 0 00-.666-3.225 8.53 8.53 0 00-1.791-2.626zm-.981 5.939a4.744 4.744 0 01-.383 1.884 5.275 5.275 0 01-2.676 2.768 4.712 4.712 0 01-3.829 0 5.114 5.114 0 01-1.584-1.126 5.441 5.441 0 01-1.071-1.642 4.819 4.819 0 010-3.768 5.445 5.445 0 011.071-1.641 5.19 5.19 0 011.584-1.126 4.712 4.712 0 013.828 0 5.275 5.275 0 012.676 2.768 4.745 4.745 0 01.384 1.883z" fill="#fff"></path><path data-name="Path 28" d="M105.918 15.483a8.57 8.57 0 00-2.644-1.812 8.09 8.09 0 00-3.285-.677 8.276 8.276 0 00-3.283.661 8.384 8.384 0 00-4.455 4.449 8.247 8.247 0 00-.662 3.28 8.093 8.093 0 00.675 3.267 8.513 8.513 0 004.448 4.448 8.149 8.149 0 003.288.675 8.261 8.261 0 002.851-.507 8.594 8.594 0 002.5-1.433l1.195-.983-2.409-2.407-.981.794a5.855 5.855 0 01-1.528.9 4.343 4.343 0 01-1.63.3 4.55 4.55 0 01-1.867-.376 5.056 5.056 0 01-1.55-1.054 5.327 5.327 0 01-1.083-1.577q-.093-.2-.168-.416h13.037v-1.656a8.067 8.067 0 00-.664-3.232 8.623 8.623 0 00-1.785-2.644zm-5.929.844a4.5 4.5 0 011.842.375 5.152 5.152 0 011.554 1.046 5.213 5.213 0 011.075 1.547q.089.193.161.393h-9.292q.066-.176.146-.351a5.246 5.246 0 011.086-1.557 5.341 5.341 0 011.573-1.071 4.445 4.445 0 011.855-.383z" fill="#fff"></path><path data-name="Path 29" d="M123.338 15.445a8.508 8.508 0 00-2.647-1.789 8.457 8.457 0 00-6.559 0 8.383 8.383 0 00-4.455 4.449 8.454 8.454 0 000 6.56 8.384 8.384 0 004.456 4.449 8.458 8.458 0 006.559 0 8.41 8.41 0 004.442-4.448 8.452 8.452 0 000-6.56 8.459 8.459 0 00-1.796-2.661zm-5.923 11a4.481 4.481 0 01-1.9-.4 5.075 5.075 0 01-1.588-1.117 5.5 5.5 0 01-1.088-1.645 4.7 4.7 0 01-.389-1.9 4.766 4.766 0 01.391-1.911 5.334 5.334 0 011.081-1.635 5.214 5.214 0 011.6-1.11 4.512 4.512 0 011.892-.4 4.441 4.441 0 011.876.4 5.253 5.253 0 011.594 1.112 5.337 5.337 0 011.081 1.635 4.769 4.769 0 01.391 1.911 4.692 4.692 0 01-.389 1.9 5.512 5.512 0 01-1.089 1.646 5.149 5.149 0 01-1.588 1.116 4.434 4.434 0 01-1.878.395z" fill="#fff"></path><path data-name="Path 30" d="M142.429 18.075a8.439 8.439 0 00-4.453-4.419 8.278 8.278 0 00-3.283-.661 9.471 9.471 0 00-1.87.2 7.643 7.643 0 00-2.028.733 7.775 7.775 0 00-1.022.647v-1.239h-3.417v20.779h3.417v-5.959a8.232 8.232 0 00.823.537 7.96 7.96 0 002.073.828 8.11 8.11 0 005.334-.454 8.633 8.633 0 004.432-4.526 8.215 8.215 0 00.661-3.245 8 8 0 00-.66
2257-3.221zm-2.772 3.309a4.745 4.745 0 01-.384 1.884 5.274 5.274 0 01-2.676 2.768 4.712 4.712 0 01-3.829 0 5.116 5.116 0 01-1.585-1.126 5.437 5.437 0 01-1.071-1.642 4.816 4.816 0 010-3.768 5.447 5.447 0 011.07-1.641 5.189 5.189 0 011.585-1.126 4.712 4.712 0 013.828 0 5.274 5.274 0 012.676 2.768 4.747 4.747 0 01.386 1.883z" fill="#fff"></path><path data-name="Path 31" d="M156.472 21.513a7.382 7.382 0 00-1.624-.834 15.652 15.652 0 00-1.642-.509l-2.988-.7-.108-.021c-.146-.022-.3-.051-.444-.085s-.314-.077-.477-.123l-1.075-.345a4.629 4.629 0 01-.615-.27 1.857 1.857 0 01-.41-.288 1.194 1.194 0 01-.241-.309.343.343 0 01-.029-.16.086.086 0 01.01-.047 1.714 1.714 0 01.153-.259 2.3 2.3 0 01.6-.465 5.545 5.545 0 011.022-.436 7.079 7.079 0 011.122-.255 7.324 7.324 0 011-.081 7.934 7.934 0 011.078.081 9.542 9.542 0 011.2.248 8.164 8.164 0 011.172.422 6.077 6.077 0 011.015.572l.945.665 2.524-2.419-1.348-.988a8.465 8.465 0 00-1.627-.934 11.232 11.232 0 00-1.673-.577 12.332 12.332 0 00-1.677-.309 14.433 14.433 0 00-1.6-.093 12.1 12.1 0 00-2.241.225 9.382 9.382 0 00-2.278.733 5.944 5.944 0 00-1.908 1.409 3.69 3.69 0 00-.932 2.489 3.785 3.785 0 00.559 2.035 4.642 4.642 0 001.319 1.371 7.368 7.368 0 001.625.835 15.012 15.012 0 001.673.511l3.467.782c.327.075.707.182 1.132.317a5.424 5.424 0 011.036.451 2.406 2.406 0 01.656.531.349.349 0 01.087.259.174.174 0 01-.016.081 1.26 1.26 0 01-.138.236 2.107 2.107 0 01-.65.476 6 6 0 01-1.115.418 7.975 7.975 0 01-1.2.224 10.184 10.184 0 01-1.048.066 9.084 9.084 0 01-1.1-.073 7.8 7.8 0 01-1.174-.241 9.371 9.371 0 01-1.215-.44 6.289 6.289 0 01-1.082-.611l-.965-.677-2.516 2.516 1.4.954a10.114 10.114 0 003.39 1.511 14.29 14.29 0 003.24.395 15.038 15.038 0 002.131-.172 9.735 9.735 0 002.377-.653 6.2 6.2 0 002.064-1.389 3.737 3.737 0 001.05-2.661 3.685 3.685 0 00-.587-2.052 4.855 4.855 0 00-1.304-1.337z" fill="#fff"></path></g></g></svg></a></div><nav class="nav-desktop" aria-label="Primary"><div class="pill"><div class="nav-item "><a href="https://aeonsec.io/" class="nav-link" target="_blank" rel="noopener noreferrer">Aeon</a></div><div class="nav-item has-menu "><button type="button" class="nav-link menu-btn " aria-expanded="false" aria-haspopup="true">Cloud console<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-hidden="true" class="icon" style="vertical-align:middle" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path></svg></button><div class="dropdown" role="menu" aria-label="Cloud console"><div class="dropdownPanel"><a class="subItem" href="https://console.pipeops.io/" target="_blank" rel="noopener noreferrer"><span class="subTitle">Cloud console</span><span class="subText">Sovereign cloud infrastructure, one console.</span></a><a class="subItem " href="/nova"><span class="subTitle">Nova</span><span class="subText">Fast app deployments without DevOps.</span></a><a class="subItem " href="/addons"><span class="subTitle">Marketplace</span><span class="subText">One-click add-ons for databases, queues, more.</span></a><a class="subItem " href="/bring-your-own-server"><span class="subTitle">Bring your own server<span class="subBadge">New</span></span><span class="subText">Deploy on infrastructure you already own.</span></a><span class="subItem comingSoon" aria-disabled="true"><span class="subTitle">Ora<span class="subBadge">coming soon</span></span><span class="subText">AI for automation, debugging, and infra insights.</span></span><a class="subItem " href="/pricing"><span class="subTitle">Pricing</span><span class="subText">
225Plans for every stage, billed in your currency.</span></a></div></div></div><div class="nav-item has-menu "><button type="button" class="nav-link menu-btn " aria-expanded="false" aria-haspopup="true">Resources<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-hidden="true" class="icon" style="vertical-align:middle" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path></svg></button><div class="dropdown" role="menu" aria-label="Resources"><div class="dropdownPanel"><a class="subItem" href="https://docs.pipeops.io/" target="_blank" rel="noopener noreferrer"><span class="subTitle">Documentation</span><span class="subText">Core guides and API references.</span></a><a class="subItem" href="https://pipeops.io/blog" target="_blank" rel="noopener noreferrer"><span class="subTitle">Blog</span><span class="subText">Product news and engineering stories.</span></a><a class="subItem " href="/resources/guides"><span class="subTitle">Guides</span><span class="subText">Quickstarts and practical workflows.</span></a><a class="subItem " href="/resources/tutorials"><span class="subTitle">Tutorials</span><span class="subText">Learn by doing with real examples.</span></a></div></div></div></div></nav><div class="col-2"><div class="actions actions-desktop"><a class="btn-ghost" href="https://console.pipeops.io/auth/signin" target="_blank" rel="noopener noreferrer">Sign in</a><a class="btn-primary" href="https://console.pipeops.io/auth/signup" target="_blank" rel="noopener noreferrer">Get started</a></div><button class="nav-btn" type="button" aria-controls="mobile-navigation-menu" aria-expanded="false" aria-label="Open menu"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="icon" style="vertical-align:middle" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></svg></button></div></div><nav id="mobile-navigation-menu" class="nav-mobile " aria-label="Primary mobile" aria-hidden="true"><div class="nav-container"><div class="nav-item "><a href="https://aeonsec.io/" class="nav-link" target="_blank" rel="noopener noreferrer">Aeon</a></div><div class="nav-item has-menu "><button type="button" class="nav-link menu-btn " aria-expanded="false" aria-haspopup="true">Cloud console<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-hidden="true" class="icon" style="vertical-align:middle" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path></svg></button><div class="dropdown" role="menu" aria-label="Cloud console"><div class="dropdownPanel"><a class="subItem" href="https://console.pipeops.io/" target="_blank" rel="noopener noreferrer"><span class="subTitle">Cloud console</span><span class="subText">Sovereign cloud infrastructure, one console.</span></a><a class="subItem " href="/nova"><span class="subTitle">Nova</span><span class="subText">Fast app deployments without DevOps.</span></a><a class="subItem " href="/addons"><span class="subTitle">Marketplace</span><span class="subText">One-click add-ons for databases, queues, more.</span></a><a class="subItem " href="/bring-your-own-server"><span class="subTitle">Bring your own server<span class="subBadge">New</span></span><span class="subText">Deploy on infrastructure you already own.</span></a><span class="subItem comingSoon" aria-disabled="true"><span class="subTitle">Ora<span class="subBadge">coming soon</span></span><span class="subText">AI for automation, debugging, and infra insights.</span></span><a class="subItem " href="/pricing"><span class="subTitle">Pricing</span><span class="subText">
225Plans for every stage, billed in your currency.</span></a></div></div></div><div class="nav-item has-menu "><button type="button" class="nav-link menu-btn " aria-expanded="false" aria-haspopup="true">Resources<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-hidden="true" class="icon" style="vertical-align:middle" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path></svg></button><div class="dropdown" role="menu" aria-label="Resources"><div class="dropdownPanel"><a class="subItem" href="https://docs.pipeops.io/" target="_blank" rel="noopener noreferrer"><span class="subTitle">Documentation</span><span class="subText">Core guides and API references.</span></a><a class="subItem" href="https://pipeops.io/blog" target="_blank" rel="noopener noreferrer"><span class="subTitle">Blog</span><span class="subText">Product news and engineering stories.</span></a><a class="subItem " href="/resources/guides"><span class="subTitle">Guides</span><span class="subText">Quickstarts and practical workflows.</span></a><a class="subItem " href="/resources/tutorials"><span class="subTitle">Tutorials</span><span class="subText">Learn by doing with real examples.</span></a></div></div></div><div class="actions actions-mobile"><a class="btn-ghost" href="https://console.pipeops.io/auth/signin" target="_blank" rel="noopener noreferrer">Sign in</a><a class="btn-primary" href="https://console.pipeops.io/auth/signup" target="_blank" rel="noopener noreferrer">Get started</a></div></div></nav></header><main><template id="P:2"></template><!--$?--><template id="B:3"></template><!--/$--></main><footer class="styles-sc-a84aac49-0 cQbHsq"><div class="top-container"><div class="col-1"><a aria-label="home" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 39.448 37.316"><g data-name="Pipeops 1 White"><g data-name="Group 7"><path data-name="Path 9" d="M27.607 34.536a17.957 17.957 0 01-12.151 2.6 14.623 14.623 0 01-.693-.112c-.046-.009-.1-.018-.149-.032a17.558 17.558 0 01-3.325-.965c-.417-.167-.83-.347-1.237-.547a.24.24 0 01-.042-.021 5.05 5.05 0 01-.233-.116s-.007 0-.01-.007 0 0-.007 0a10.996 10.996 0 01-.623-.335c-.035-.019-.072-.037-.1-.058-.007 0-.011 0-.011-.007a17.246 17.246 0 01-1.857-1.217.07.07 0 01-.026-.018 1.48 1.48 0 01-.107-.079 17.8 17.8 0 01-3.4-3.406c-.075-.1-.151-.2-.219-.3l-.414-.591a5.33 5.33 0 01-.17-.253 17.716 17.716 0 01-1.752-3.524 17.433 17.433 0 01-1.012-4.511c-.039-.4-.058-.8-.065-1.2A17.686 17.686 0 018.263 4.5a18.011 18.011 0 0116.735-1.315q.458.192.9.412a17.405 17.405 0 012.147 1.249q.621.421 1.208.9c.265.214.524.438.777.67.072.065.142.13.212.2a17.923 17.923 0 012.261 2.576q.274.381.531.78l.2.314q.305.5.572 1.007a18.1 18.1 0 01.93 2.047 17.834 17.834 0 01.719 2.411 17.7 17.7 0 01-7.848 18.785z" fill="#4f21ea"></path><g data-name="Group 3" opacity="0.25"><path data-name="Path 10" d="M4.374 24.283a3.046 3.046 0 01-.062.39 3.4 3.4 0 01-1.878 2.274c-.185-.4-.352-.814-.5-1.228a17.455 17.455 0 01-1.012-4.511c-.038-.4-.058-.8-.065-1.2a4.821 4.821 0 013.458 3.362 3.013 3.013 0 01.059.913z"></path><path data-name="Path 11" d="M8.981 27.535a3.44 3.44 0 01-1.313 2.025 3.5 3.5 0 01-.752.434 3.675 3.675 0 01-2.247.2 3.761 3.761 0 01-.393-.109l-.414-.592a4.889 4.889 0 01-.171-.253 17.558 17.558 0 01-1.252-2.295c-.185-.4-.352-.814-.5-1.228a3.5 3.5 0 012.38-2.346 3.713 3.713 0 014.357 1.84 3.443 3.443 0 01.305 2.324z"></path><path data-name="Path 12" d="M4.272 30.087c.068.1.144.2.219.3a17.8 17.8 0 003.4 3.406c.034.027.068.051.106.079a.166.166 0 00.007.041.066.066 0 00.021-.024 2.783 2.783 0 00.575-.872 3.11 3.11 0 00.157-.492 2.959 2.959 0 00.048-.947 2.62 2.62 0 00-.048-.287 2.993 2.993 0 00-1.084-1.73.272.272 0 00-.034-.031 3.173 3.173 0 00-1.238-.575l-.055-.01a2.722 2.722 0 00-.188-.034 3.093 3.093 0 00-2.295.585z"></path><path data-name="Path 13" d="M15.469 37.163a17.608 17.608 0 01-3.324-.964 18.102 18.102 0 01-1.512-.684s-.007 0-.01-.007 0 0-.007 0a11.27 11.27 0 01-.622-.335 3.172 3.172 0 011.809-.711 3.135 3.135 0 011.734.41 4.6 4.6 0 011.932 2.291z"></path><path data-name="Path 14" d="M13.899 33.216a3.1 3.1 0 01-.362 1.655 2.976 2.976 0 01-1.392 1.327 18.102 18.102 0 01-1.512-.684s-.007 0-.01-.007 0 0-.007 0a11.27 11.27 0 01-.622-.335c-.034-.021-.072-.037-.1-.058-.007 0-.01 0-.01-.007a16.863 16.863 0 01-1.857-1.218.064.064 0 01-.021.024.169.169 0 01-.007-.041 3.08 3.08 0 01-.031-.26v-.048a3.128 3.128 0 01.26-1.454 3.118 3.118 0 01.534-.817.721.721 0 01.048-.055 2.913 2.913 0 011.946-.906 2.778 2.778 0 01.7.045 3.047 3.047 0 012.443 2.839z"></path></g><path data-name="Path 15" d="M14.481 21.816s-5.253 4.672-8.405 4.378 3.975 9.321 3.975 9.321.542-7.923 7.309-11.255-2.879-2.444-2.879-2.444z" opacity="0.25"></path><path data-name="Path 16" d="M14.139 21.132a24.221 24.221 0 01-6.272 4.016c-.016-.035-.031-.071-.049-.106a3.713 3.713 0 00-4.357-1.84A4.821 4.821 0 00.003 19.84c.00
2257.4.027.8.065 1.2a17.438 17.438 0 001.012 4.511c.147.414.315.824.5 1.228a18.695 18.695 0 001.251 2.295c.055.086.109.168.171.253l.414.592c.068.1.144.2.219.3a17.8 17.8 0 003.4 3.406c.034.027.068.051.106.079a.166.166 0 00.007.041.066.066 0 00.021-.024 16.853 16.853 0 001.857 1.218c0 .007 0 .007.01.007.031.021.068.038.1.058.205.12.41.229.622.335h.007c.007 0 .007.007.01.007.5.253 1 .479 1.512.684a17.608 17.608 0 003.324.964 4.6 4.6 0 00-1.932-2.292 3.1 3.1 0 00.363-1.655 3.058 3.058 0 00-2.146-2.765 12.837 12.837 0 016.12-6.7c6.768-3.338-2.877-2.45-2.877-2.45z" fill="#e6e6e6"></path><g data-name="Group 4" opacity="0.25"><path data-name="Path 17" d="M39.447 6.338a11.433 11.433 0 01-3.436 7.931 2.291 2.291 0 01-.363.27l-.428.26c.089.317.168.635.24.954l-8.848 5.377-.877.531-4.16 2.527-.61.372-1.522.924a2.423 2.423 0 01-3.083-.475l-.11-.128-.161-.182-.346-.395-1.787-2.043-.279-.318a2.486 2.486 0 01-.2-.258 2.423 2.423 0 01.135-2.86l1.566-1.942.377-.467 3.33-4.12.577-.714 6.44-7.982.125-.154a2.306 2.306 0 01.316-.326c3.1-2.561 8.729-3.455 11.749-.947a6.394 6.394 0 011.355 4.165z"></path><path data-name="Path 18" d="M8.648 19.169l1.6-6.108a.756.756 0 01.729-.571l11.179-.272a1.009 1.009 0 01.914 1.44l-2.263 3.853a.777.777 0 01-.847.353l-6.049-1.239a.79.79 0 00-.759.233l-2.953 3.3c-.597.673-1.788-.085-1.551-.989z"></path><path data-name="Path 19" d="M18.445 30.363l6.267-.78a.756.756 0 00.663-.647l1.751-11.044a1.009 1.009 0 00-1.306-1.1l-4.118 1.732a.778.778 0 00-.462.792l.426 6.16a.79.79 0 01-.331.721l-3.663 2.489c-.748.511-.155 1.796.773 1.677z"></path><g data-name="Ellipse 1" transform="translate(26.94 6.385)" stroke="#f7931e" stroke-width="5"><circle cx="3.568" cy="3.568" r="3.568" stroke="none"></circle><circle cx="3.568" cy="3.568" r="1.068" fill="none"></circle></g></g><g data-name="Group 6"><path data-name="Path 20" d="M39.448 6.338a11.433 11.433 0 01-3.436 7.931 2.291 2.291 0 01-.363.27l-.428.26-8.417 5.114-.875.533-4.427 2.687-.61.372-2.133 1.3a2.421 2.421 0 01-2.445.042 1.9 1.9 0 01-.226-.144 2.338 2.338 0 01-.4-.359.1.1 0 01-.012-.014l-1.771-2.022-.491-.563-.421-.481a2.424 2.424 0 01-.061-3.118l1.191-1.475.375-.466 3.125-3.873.577-.716L25 3.192l.344-.426a2.221 2.221 0 01.316-.326c3.317-2.743 9.541-3.573 12.351-.361.028.032.056.065.082.1a6.394 6.394 0 011.355 4.159z" fill="#fff"></path><path data-name="Path 21" d="M7.964 18.485l1.6-6.108a.756.756 0 01.729-.571l11.179-.272a1.01 1.01 0 01.914 1.44l-2.263 3.852a.778.778 0 01-.847.353l-6.049-1.239a.79.79 0 00-.759.233l-2.953 3.3c-.597.674-1.788-.084-1.551-.988z" fill="#fff"></path><path data-name="Path 22" d="M17.761 29.679l6.267-.78a.756.756 0 00.663-.647l1.751-11.045a1.009 1.009 0 00-1.306-1.1l-4.118 1.732a.777.777 0 00-.462.792l.426 6.16a.79.79 0 01-.331.721l-3.663 2.49c-.748.511-.154 1.796.773 1.677z" fill="#fff"></path><g data-name="Group 5" transform="translate(26.256 5.701)"><circle data-name="Ellipse 2" cx="3.568" cy="3.568" r="3.568" fill="#4f21ea" opacity="0.48"></circle><path data-name="Path 23" d="M6.409 1.411a3.064 3.064 0 00-.291-.339 3.7 3.7 0 00-.289-.265A3.582 3.582 0 003.005.044a3.358 3.358 0 00-.368.079c-.1.028-.2.06-.3.1a3.568 3.568 0 001.235 6.915 3.582 3.582 0 00.622-.054 3.568 3.568 0 00.61-.165c.1-.037.2-.079.295-.125a3.571 3.571 0 001.312-5.381zm-.156 2.336A2.69 2.69 0 11.99 2.805 2.683 2.683 0 012.823.985a2.7 2.7 0 01.744-.1 2.672 2.672 0 01.428.035 2.7 2.7 0 011.6.882 2.67 2.67 0 01.663 1.694 2.541 2.541 0 01-.005.251z"></path></g></g></g></g></svg></a><div class="BackedBy__Box-sc-71d769d-0 kGizPY backedBy" aria-label="Backed by"><span class="label">Backed by</span><div class="logos"><img src="/assets/home/logos/logo-e.svg" alt="Terra" height="20" style="height:20px;width:auto" loading="lazy" decoding="async"/></div></div><div class="soc-container"><img alt="Nigeria Data Protection Commission" loading="lazy" width="188" height="64" decoding="async" data-nimg="1" style="color:transparent" src="/assets/home/ndpc-logo-white.png"/><img alt="stamp for SOC1" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" style="color:transparent" src="https://pub-950943fa1bc54978bed46ef104f9d81a.r2.dev/soc2-logo-blue.svg"/></div></div><nav><label>products</label><ul><li><a href="https://aeonsec.io/" target="_blank" rel="noreferrer">aeon</a></li><li><a href="https://console.pipeops.io/" target="_blank" rel="noreferrer">cloud console</a></li><li><a href="/nova">nova</a></li><li><a href="/bring-your-own-server">bring your own server</a></li></ul></nav><nav><label>links</label><ul><li><a href="/pricing">pricing</a></li><li><a href="https://docs.pipeops.io/" target="_blank" rel="noreferrer">docs</a></li><li><a href="/blog">blog</a></li><li><a href="/resources">resources</a></li><li><a href="/addons">addons</a></li><li><a href="/hackathon">hackOps 1.0</a></li></ul></nav><nav><label>use cases</label><ul><li><a href="/usecases/developers">for developers</a></li><li><a href="/usecases/startups">for startups</a></li></ul><label class="partnership">partnerships</label><a href="/cchub">CcHub</a></nav><nav><label>legal</label><ul><li><a href="/legal?tab=terms">terms & conditions</a></li><li><a href="/legal?tab=privacy">privacy policy</a></li><li><a href="/legal?tab=cookie">cookie policy</a></li></ul></nav></div><div class="social-row"><a class="system-link" href="https://status.pipeops.io/"><span></span>
225<p>All systems are operational</p><span></span></a><div class="socialLinksWrapper"><a href="https://twitter.com/pipeopshq" target="_blank" rel="noreferrer" aria-label="twitter" class="twitter-link"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="icon" style="vertical-align:middle" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a><a href="https://www.linkedin.com/company/pipeops/" target="_blank" rel="noreferrer" class="linkedin-link" aria-label="linkedIn"><svg data-name="Icon awesome-linkedin" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 29.313 29.313"><path data-name="Icon awesome-linkedin" d="M27.219 0H2.087A2.1 2.1 0 000 2.113v25.086a2.1 2.1 0 002.087 2.113h25.132a2.108 2.108 0 002.094-2.113V2.113A2.108 2.108 0 0027.219 0zM8.859 25.125H4.515V11.136h4.351v13.989zm-2.172-15.9a2.519 2.519 0 112.519-2.518 2.52 2.52 0 01-2.519 2.519zm18.458 15.9H20.8v-6.8c0-1.
225623-.033-3.71-2.257-3.71-2.264 0-2.611 1.767-2.611 3.592v6.922h-4.344V11.136h4.168v1.914h.059a4.576 4.576 0 014.116-2.257c4.4 0 5.215 2.9 5.215 6.667z" fill="#ffff"></path></svg></a><a href="https://discord.gg/wwRSXnJV" target="_blank" rel="noreferrer" class="discord-link" aria-label="discord"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" color="#ffff" class="icon" style="color:#ffff;vertical-align:middle" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><title></title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"></path></svg></a><a href="https://join.slack.com/t/pipeopscommunity/shared_invite/zt-36epz9i8k-p01_WcPQudJmabuF_NqD5Q" target="_blank" rel="noreferrer" class="slack-link" aria-label="slack"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" color="#ffff" class="icon" style="color:#ffff;vertical-align:middle" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><title></title><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></a></div><div class="col-1">© <!-- -->2026<!-- --> PipeOps</div></div></footer></div><style data-styled="" data-styled-version="5.3.11"></style>
225<script type="039fd87e3c1c1e513804e704-text/javascript">(self.__next_f=self.__next_f||[]).push([0])</script>
225<script type="039fd87e3c1c1e513804e704-text/javascript">self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[80061,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"default\"]\n4:\"$Sreact.suspense\"\n5:I[12850,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"default\"]\n6:I[39756,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"default\"]\n7:I[37457,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"default\"]\n8:I[79520,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"\"]\n11:I[68027,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0x7kcn5crc1vz.css\",\"style\"]\n:HL[\"/_next/static/chunks/2lqvm_7bnpo4s.css\",\"style\"]\n:HL[\"/_next/static/chunks/3o9ndxbclbhv4.css\",\"style\"]\n:HL[\"/_next/static/media/03fc1b4a8d284b5e.p.0wiir8udbzjvx.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/99e609270109b47d.p.40sczeszzbjw1.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/effe91970fc4db64.p.0oace-s_gkfks.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.0/github-markdown.min.css\",\"style\",{\"crossOrigin\":\"anonymous\",\"integrity\":\"sha512-h/laqMqQKUXxFuu6aLAaSrXYwGYQ7qk4aYCQ+KJwHZMzAGaEoxMM6h8C+haeJTU1V6E9jrSUnjpEzX23OmV/Aw==\",\"referrerPolicy\":\"no-referrer\"}]\n2:[\"$\",\"iframe\",null,{\"src\":\"https://www.googletagmanager.com/ns.html?id=GTM-P44WNWW\",\"height\":\"0\",\"width\":\"0\",\"style\":{\"display\":\"none\",\"visibility\":\"hidden\"}}]\nf:X\n0:{\"P\":null,\"c\":[\"\",\"blog\",\"161\",\"alerting-and-cost-control-cloud-bill-shock-is-a-product-problem-not-a-discipline-problem\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"id\",\"161\",\"d\",[\"containers\"]],{\"children\":[[\"slug\",\"alerting-and-cost-control-cloud-bill-shock-is-a-product-problem-not-a-discipline-problem\",\"d\",[]],{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4112],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0x7kcn5crc1vz.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2lqvm_7bnpo4s.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3o9ndxbclbhv4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/43nnncnxzxrsc.js\",\"async\":true,\"nonce\":\"$undefined\"}
225],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/1l452285ljiry.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/0xvt93wodqzki.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/41s986c8g8a7i.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/00w9d_di6xdy5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/1k7v0ctpni0yl.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"ibm_plex_sans_949af5b-module__Xd9jba__variable ibm_plex_mono_1396f621-module__yAoysW__variable\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.0/github-markdown.min.css\",\"integrity\":\"sha512-h/laqMqQKUXxFuu6aLAaSrXYwGYQ7qk4aYCQ+KJwHZMzAGaEoxMM6h8C+haeJTU1V6E9jrSUnjpEzX23OmV/Aw==\",\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"noscript\",null,{\"children\":\"$2\"}],[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$4\",null,{\"children\":[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],[\"$\",\"$L8\",null,{\"strategy\":\"lazyOnload\",\"data-domain\":\"pipeops.io\",\"src\":\"https://plausible.io/js/script.js\"}],[\"$\",\"$L8\",null,{\"strategy\":\"lazyOnload\",\"src\":\"https://embed.typeform.com/next/embed.js\"}],[\"$\",\"$L8\",null,{\"id\":\"intercomConfig\",\"strategy\":\"lazyOnload\",\"children\":\"\\n window.intercomSettings = {\\n api_base: \\\"https://api-iam.intercom.io\\\",\\n app_id: \\\"hj6cei99\\\"\\n };\\n \"}],[\"$\",\"$L8\",null,{\"id\":\"intercom\",\"strategy\":\"lazyOnload\",\"children\":\"\\n // We pre-filled your app ID in the widget URL: 'https://widget.intercom.io/widget/hj6cei99'\\n(function(){var w=window;var ic=w.Intercom;if(typeof ic===\\\"function\\\"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/hj6cei99';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};
225if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();\\n \"}],\"$L9\",\"$La\"]}]]}],{\"children\":[\"$Lb\",{\"children\":[\"$Lc\",{\"children\":[\"$Ld\",{\"children\":[\"$Le\",{},null,false,null]},null,false,\"$f\"]},null,false,\"$f\"]},null,false,\"$f\"]},null,false,null],\"$L10\",false]],\"m\":\"$undefined\",\"G\":[\"$11\",[\"$L12\",\"$L13\",\"$L14\"]],\"S\":false,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"EEiJrYpiLvdQsFJ3jIAyp\"}\n15:I[22850,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"default\"]\n17:I[97367,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"OutletBoundary\"]\n19:I[97367,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"ViewportBoundary\"]\n1b:I[97367,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\"],\"MetadataBoundary\"]\n9:[\"$\",\"$L15\",null,{}]\na:[\"$\",\"$L8\",null,{\"id\":\"google-tag-manager\",\"strategy\":\"lazyOnload\",\"children\":\"\\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\n j=d.createElement(s),dl=l!='dataLayer'?'\u0026l='+l:'';j.async=true;j.src=\\n 'https://www.googletagmanager.com/gtm.js?id='
225+i+dl;f.parentNode.insertBefore(j,f);\\n })(window,document,'script','dataLayer','GTM-P44WNWW');\\n \"}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nc:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nd:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\ne:[\"$\",\"$1\",\"c\",{\"children\":[\"$L16\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13quooy621rq5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/30jw9kkjsbx-p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/2mr-ot5yhim68.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/1kq57lpvtitd-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/3s_23c3y3a-cc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L17\",null,{\"children\":[\"$\",\"$4\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@18\"}]}]]}]\n10:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L19\",null,{\"children\":\"$L1a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1b\",null,{\"children\":[\"$\",\"$4\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1c\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n12:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0x7kcn5crc1vz.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n13:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2lqvm_7bnpo4s.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n14:[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3o9ndxbclbhv4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nf:C\n1a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#4F21EA\"}]]\n"])</script>
225<style data-styled="" data-styled-version="5.3.11"></style>
225<script type="039fd87e3c1c1e513804e704-text/javascript">self.__next_f.push([1,"1d:I[93493,[\"/_next/static/chunks/1pz8nl2fwrd8r.js\",\"/_next/static/chunks/43nnncnxzxrsc.js\",\"/_next/static/chunks/1h5wk3de-b3gy.js\",\"/_next/static/chunks/1l452285ljiry.js\",\"/_next/static/chunks/0xvt93wodqzki.js\",\"/_next/static/chunks/0-fbly-mdk3ec.js\",\"/_next/static/chunks/41s986c8g8a7i.js\",\"/_next/static/chunks/00w9d_di6xdy5.js\",\"/_next/static/chunks/1k7v0ctpni0yl.js\",\"/_next/static/chunks/13quooy621rq5.js\",\"/_next/static/chunks/30jw9kkjsbx-p.js\",\"/_next/static/chunks/2mr-ot5yhim68.js\",\"/_next/static/chunks/1kq57lpvtitd-.js\",\"/_next/static/chunks/3s_23c3y3a-cc.js\"],\"default\",1]\n1e:T23a5,There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected.\n\nThe usual response is personal. \"We should have checked the dashboard.\" \"Someone forgot to turn off the environment.\" \"The team needs to be more careful.\" Those things may be true, but they miss the deeper problem: if a costly change can happen silently and the first clear signal arrives on an invoice, the product is asking people to remember too much, and at the wrong moment, without enough support to act on it.\n\nCloud cost is not only a finance concern. It is an operational signal, much like latency, errors, saturation, or downtime. The earlier a team can see a meaningful change, understand its scope, and act on it, the less likely a normal engineering event becomes a budget incident.\n\nThat is why alerting and cost control belong together.\n\n\n## The Invoice Is a Lagging Indicator\n\nA cloud invoice tells you what happened. It is useful for reconciliation, but it is a poor first alert.\n\nBy the time a monthly bill arrives, the cause may be buried under weeks of deployments, experiments, retries, traffic spikes, idle resources, or a misconfigured autoscaler. The person looking at the invoice may not even be the person who made the change. The team then has to reconstruct a timeline while simultaneously explaining the unexpected spend.\n\nAn alert changes the timing. It can surface information like:\n\n- *\"This workspace has crossed the amount we decided was worth investigating.\"*\n- *\"This service has stayed above its normal CPU or memory range for ten minutes.\"*\n\nThose are actionable signals. They arrive while the system can still be changed, rolled back, resized, paused, or investigated.\n\n\n## Alerts Should Be Selective, Not Universal\n\nThe answer is not to notify everyone about every metric. An alerting system that sends too many notifications trains people to ignore them, and an ignored alert is worse than no alert at all.\n\nGood alerting has three properties:\n\n1. **A clear threshold:** What level actually matters?\n2. **A meaningful duration or condition:** Is this a brief fluctuation, or a sustained problem?\n3. **A clear owner and action:** Who should respond, and what should they check first?\n\nFor resource usage, a threshold without a duration is often noisy. A workload that briefly reaches 80% CPU may be healthy; one that stays there for 30 minutes may need attention. Cost alerts work the same way: a threshold should represent a decision point, not an arbitrary number.\n\nThe goal is not to predict every future expense. It is to shorten the distance between \"something changed\" and \"the right person knows.\"\n\n\n## Cost Control Starts with Visibility\n\nTeams cannot control what they cannot see. Before setting budgets or thresholds, make usage legible:\n\n- Which workspace, project, service, or server is generating the cost?\n- Is the spend fixed, usage-based, or the result of a one-off event?\n- What is the current billing or usage period?\n- Which resources are active, idle, duplicated, or unexpectedly expensive?\n- Who can view billing information, and who can change payment or resource settings?\n- Where do alert notifications actually go, and does anyone actively monitor that channel?\n\nThis applies equally to a developer running a side project, a startup foun
225der watching runway, and a larger engineering organization allocating costs across teams. The level of detail differs, but the need is the same: connect infrastructure activity to consequences people can understand and respond to.\n\nUseful cost control does not mean preventing all growth. Growth is often the point. It means making growth intentional, and making accidental growth visible early.\n\n\n## Guardrails Lower the Cost of Getting It Right\n\nThere are two ways to address cloud risk. One is to rely on vigilance: write a checklist, remind people to consult it, and hope the important step survives a busy sprint. The other is to build a guardrail into the product itself.\n\nGuardrails can include:\n\n- showing an estimated cost before creating or scaling a resource;\n- displaying current usage and quota alongside billing data;\n- enabling a workspace-level spend threshold;\n- enabling a resource-level threshold for a specific server or service;\n- separating billing *visibility* from billing *management* permissions;\n- surfacing outstanding usage charges before they become a surprise;\n- making the recommended next action obvious when a limit is reached.\n\nThese controls do not replace judgment. They preserve it, freeing teams to focus attention on decisions that genuinely require it, rather than on remembering routine checks.\n\n\n## Workspace Budgets and Resource Budgets Answer Different Questions\n\nA workspace-level spend alert asks: \"Is the total cost of this environment crossing the amount we planned for this period?\"\n\nA resource-level alert asks: \"Is this particular server, cluster, or workload responsible for an unusual share of that cost?\"\n\nBoth views matter, and they serve different people. A total budget can protect a founder's monthly limit or a team's project allocation. A per-resource threshold helps an engineer pinpoint the specific cause. Without the first, an organization may miss a financial risk entirely. Without the second, it may know something is wrong but have no clear place to start.\n\nThe same logic applies to usage alerts. A workspace-wide notification sets a default policy. Individual resources can inherit that policy or override it when their workload has different characteristics, a batch processor, a customer-facing API, and a development environment should not necessarily share identical thresholds.\n\n\n## Cost Visibility Is a Collaboration Problem, Too\n\nCloud spending often becomes contentious when responsibility is unclear. Engineering sees a system that needs capacity. Finance sees a number that moved. Founders see runway shrinking. Each perspective is valid, but they need a shared vocabulary, and that vocabulary has to come from somewhere.\n\nAlerts help create it when they include scope and context. \"Spend alert for the payments service\" is more actionable than \"cloud usage high.\" \"Storage has stayed above 85% for 30 minutes on the staging environment\" is more useful than \"resource warning.\" Specific, scoped alerts let the right person investigate without first needing to reconstruct what the notification even means.\n\nPermissions matter too. Not every team member needs access to payment details, but more than one person should have visibility into usage. Separating view access from management access lets teams collaborate without unnecessarily exposing billing credentials or payment actions.\n\n\n## A Practical Starting Point\n\nYou do not need a full FinOps program, a formal practice for managing and optimizing cloud financial operations to start improving this. A small set of decisions is enough to begin:\n\n1. Decide the monthly (or usage-period) amount that should trigger a conversation, not a panic.\n2. Add a workspace-level spend alert for that amount.\n3. Identify the few resources whose failure or unexpected growth would materially affect the bill.\n4. Add resource-level spend alerts where ownership is clear.\n5. Set sustained CPU, memory, and storage thresholds for important workloads.\n6. Route notifications to a channel someone actually monitors.\n7. After a week, revisit the alerts: remove noisy ones, clarify owners, and adjust thresholds based on real behavior.\n\nThe last step is the most important. Alerting is a product capability, but it requires a feedback loop. A threshold nobody understands protects nobody. A notification nobody can act on becomes background noise. The goal is a small set of alerts that the right people trust, and can act on confidently when they fire.\n\n\n## The Bigger Idea\n\nCloud bill shock is rarely caused by one careless person or team. It is usually the result of a system that conceals consequences until they are expensive, distributes ownership across too many people, or assumes individuals will remember a routine check at exactly the right moment.\n\nBetter product design changes that equation. It brings cost closer to the infrastru
225cture decisions that drive it. It turns usage into a visible operational signal. It gives teams a chance to respond while the problem is still small, before it becomes a line item someone has to explain.\n\nThat is the value of alerting and cost control: not restriction or constant monitoring, but confidence. Developers can move quickly. Founders can understand their exposure. Engineering teams can grow their systems without discovering the cost only when the invoice arrives.\n\n\nPipeOps includes these capabilities as part of its core deployment and operations workflow, workspace and resource spend alerts, usage thresholds, event subscriptions, billing visibility, and access controls, all available through workspace and resource settings. If your current infrastructure tooling does not provide these guardrails, [sign up for PipeOps](https://console.pipeops.io/auth/signup) to add them to your workflow.16:[\"$\",\"$L1d\",null,{\"blogDetails\":{\"id\":161,\"documentId\":\"x7lg6rc2tk3b0uy1g2h2ccsh\",\"title\":\"Alerting \u0026 Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem\",\"createdat\":\"2026-09-11\",\"categories\":\"Engineering\",\"ReadTime\":7,\"slug\":null,\"createdAt\":\"2026-09-11T06:37:15.513Z\",\"updatedAt\":\"2026-09-11T06:37:48.555Z\",\"publishedAt\":\"2026-09-11T06:37:48.600Z\",\"locale\":\"en\",\"content\":\"$1e\",\"banner\":null,\"seo\":null,\"createdBy\":{\"id\":1,\"documentId\":\"tkj1geqikt3m9b9m3jagrxfv\",\"firstname\":\"Shaibu\",\"lastname\":\"Abdulsalam\",\"username\":\"Lamara\",\"preferedLanguage\":null,\"createdAt\":\"2026-02-01T15:40:55.293Z\",\"updatedAt\":\"2026-02-01T16:55:50.149Z\",\"publishedAt\":\"2026-02-01T15:40:55.295Z\"},\"updatedBy\":{\"id\":1,\"documentId\":\"tkj1geqikt3m9b9m3jagrxfv\",\"firstname\":\"Shaibu\",\"lastname\":\"Abdulsalam\",\"username\":\"Lamara\",\"preferedLanguage\":null,\"createdAt\":\"2026-02-01T15:40:55.293Z\",\"updatedAt\":\"2026-02-01T16:55:50.149Z\",\"publishedAt\":\"2026-02-01T15:40:55.295Z\"},\"localizations\":[]}}]\n18:null\n1c:[[\"$\",\"title\",\"0\",{\"children\":\"Alerting \u0026 Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem | PipeOps\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"devops, cloud infrastructure, cloud, cloud infra, deployment, heroku, gcp, google cloud services, azure, aws, amazon, cloud services, heroku alternative, pass, pass platforms\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"4\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://pipeops.io/blog/161/alerting-\u0026-cost-control:-cloud-bill-shock-is-a-product-problem,-not-a-discipline-problem\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Alerting \u0026 Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://pipeops.io/blog/161/alerting-\u0026-cost-control:-cloud-bill-shock-is-a-product-problem,-not-a-discipline-problem\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"PipeOps\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://pub-30c11acc143348fcae20835653c5514d.r2.dev/card_Bg4_09c37060fc.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:alt\",\"content\":\"PipeOps: cyber defence and sovereignty for critical infrastru
225cture\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:site\",\"content\":\"@pipeopshq\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:creator\",\"content\":\"@pipeopshq\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Alerting \u0026 Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://pub-30c11acc143348fcae20835653c5514d.r2.dev/card_Bg4_09c37060fc.png\"}]]\n"])</script>
225<style data-styled="" data-styled-version="5.3.11">.hhFrur{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;grid-gap:0.6em;}/*!sc*/ 226.hhFrur a{color:#d8d8d899 !important;font-size:0.875rem;font-weight:400;outline:none;-webkit-text-decoration:none !important;text-decoration:none !important;}/*!sc*/ 227.hhFrur a:hover,.hhFrur a.active,.hhFrur a:focus{-webkit-text-decoration:underline !important;text-decoration:underline !important;color:#fff !important;}/*!sc*/ 228.hhFrur a.active{pointer-events:none;}/*!sc*/ 229data-styled.g6[id="style-sc-3208084b-0"]{content:"hhFrur,"}/*!sc*/ 230.gJXuWv{background-image:linear-gradient(rgb(14,14,15),rgb(14,14,15)), linear-gradient( 90deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.12) 37%, rgba(255,255,255,0.04) 100% );background-origin:border-box;background-clip:padding-box,border-box;border:3px double transparent !important;border-radius:1rem;}/*!sc*/ 231.gJXuWv .screen{min-height:30rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:1.2em;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:2em 1.5em 3em;border-radius:0.9rem;background:#0e0e0f url(https://pub-950943fa1bc54978bed46ef104f9d81a.r2.dev/production-ready-bg.svg) no-repeat center -25rem;}/*!sc*/ 232@media (max-width:767px){.gJXuWv .screen{min-height:20rem;}}/*!sc*/ 233.gJXuWv p:first-child{color:rgba(255,255,255,0.4);font-weight:500;-webkit-letter-spacing:1.44px;-moz-letter-spacing:1.44px;-ms-letter-spacing:1.44px;letter-spacing:1.44px;}/*!sc*/ 234.gJXuWv p:last-child{max-width:44rem;width:100%;text-align:center;font-size:clamp(1.8rem,5vw,2.6rem);line-height:140%;background:linear-gradient( 93deg, rgba(255,255,255,0.72) 16.4%, rgba(255,255,255,0.24) 50.83%, rgba(255,255,255,0.48) 70.27% );background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;}/*!sc*/ 235.gJXuWv p:last-child span{font-size:clamp(1.8rem,5vw,2.6rem);}/*!sc*/ 236.gJXuWv p:last-child span.aws{background-clip:text !important;-webkit-background-clip:text !important;-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#bec8ff 70.62%,#ffd5d3 99.74%);}/*!sc*/ 237.gJXuWv p:last-child span.gcp{background-clip:text !important;-webkit-background-clip:text !important;-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#bec8ff 5.62%,#ffd5d3 90.74%);}/*!sc*/ 238.gJXuWv p:last-child span.azure{background-clip:text !important;-webkit-background-clip:text !important;-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#ffd5d3 5.74%,#ff6a6a 99.77%);}/*!sc*/ 239data-styled.g32[id="styles-sc-881b2e6c-0"]{content:"gJXuWv,"}/*!sc*/ 240.gvGwmS{position:relative;}/*!sc*/ 241.gvGwmS:after{content:'';width:100vw;left:50%;height:100%;position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);z-index:1;top:0px;}/*!sc*/ 242.gvGwmS *{position:relative;z-index:2;font-size:1.375rem;color:#a0a0a0;}/*!sc*/ 243.gvGwmS .section-resource__content{padding-top:3em;margin-bottom:12em;}/*!sc*/ 244.gvGwmS .section-resource__content strong{font-weight:400 !important;}/*!sc*/ 245.gvGwmS .section-resource__content a{-webkit-text-decoration:underline;text-decoration:underline;color:#fff;}/*!sc*/ 246.gvGwmS .section-resource__content a:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 247.gvGwmS .section-resource__content img{border-radius:1.5rem;}/*!sc*/ 248.gvGwmS .section-resource__content .guide-heading{width:95%;margin:0 auto;border-radius:2.5rem;background-image:linear-gradient(rgb(14,14,15),rgb(14,14,15)), linear-gradient( 180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.08) 70%, rgba(255,255,255,0.2) 100% );background-origin:border-box;background-clip:padding-box,border-box;border:3px double transparent !important;}/*!sc*/ 249.gvGwmS .section-resource__content .guide-heading .screen{background:#0e0e0f;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:center;
249-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1.2rem;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border-width:2px;min-height:35.5vh;padding:2em;position:relative;border-radius:2.4rem;}/*!sc*/ 250.gvGwmS .section-resource__content .guide-heading .screen:after{content:'';position:absolute;top:-4em;left:0;width:100%;height:120%;background:url(https://pub-950943fa1bc54978bed46ef104f9d81a.r2.dev/ballPattern.svg) no-repeat center;background-size:80%;-webkit-filter:blur(4.8rem);filter:blur(4.8rem);z-index:1;}/*!sc*/ 251.gvGwmS .section-resource__content .guide-heading .pageBreadcrumbsContainer{position:absolute;top:5px;left:20px;}/*!sc*/ 252.gvGwmS .section-resource__content .guide-heading .headerLoader{width:80%;margin:0 auto;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:1.5em;}/*!sc*/ 253.gvGwmS .section-resource__content .guide-heading .headerLoader span{width:100%;margin:0 auto;}/*!sc*/ 254.gvGwmS .section-resource__content .guide-heading h1{text-align:center;background:linear-gradient( 94deg, rgba(255,255,255,0.72) 42.56%, rgba(255,255,255,0.24) 63.66%, rgba(255,255,255,0.48) 83.86% );background-clip:text;-webkit-background-clip:text;font-size:clamp(2.5rem,5vw,4rem) !important;-webkit-text-fill-color:transparent;}/*!sc*/ 255.gvGwmS .section-resource__content .guide-heading .guide-category{color:rgba(255,255,255,0.32);text-align:center;text-overflow:ellipsis;font-size:12px;-webkit-letter-spacing:1.12px;-moz-letter-spacing:1.12px;-ms-letter-spacing:1.12px;letter-spacing:1.12px;text-transform:uppercase;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:0.8em;}/*!sc*/ 256.gvGwmS .section-resource__content .guide-heading .guide-category span{display:inline-block;height:4px;width:4px;border-radius:50%;background:#d8d8d899;}/*!sc*/ 257.gvGwmS .section-resource__content .guide-heading p,.gvGwmS .section-resource__content .guide-heading span{color:#d8d8d899;}/*!sc*/ 258.gvGwmS .section-resource__content .guide-heading span{text-transform:uppercase;}/*!sc*/ 259.gvGwmS .section-resource__content header{height:17.625rem;max-width:72.25rem;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:2em;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:1.3rem;box-shadow:0px 10px 40px #00000029;border:2px solid #4f21ea;border-radius:15px;margin:0 auto;}/*!sc*/ 260.gvGwmS .section-resource__content header span{-webkit-letter-spacing:2.8px;-moz-letter-spacing:2.8px;-ms-letter-spacing:2.8px;letter-spacing:2.8px;color:#d8d8d899;text-transform:uppercase;font-size:14px;}/*!sc*/ 261.gvGwmS .section-resource__content header p.tags{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 262.gvGwmS .section-resource__content header p.tags span{color:#d8d8d899;font-weight:400 !important;-webkit-letter-spacing:2.8px;-moz-letter-spacing:2.8px;-ms-letter-spacing:2.8px;letter-spacing:2.8px;font-size:0.75rem;text-transform:uppercase;}/*!sc*/ 263.gvGwmS .section-resource__content header p.tags span:nth-child(2){display:inline-block;width:6px;height:6px;border-radius:50%;background-color:#d8d8d899;margin:0 0.4rem;}/*!sc*/ 264.gvGwmS .section-resource__content header h1{font-size:clamp(1.8rem,5vw,2.2rem);font-weight:500;}/*!sc*/ 265.gvGwmS .section-resource__content .content-body{max-width:905px;width:100%;margin:5em auto 0;}/*!sc*/ 266.gvGwmS .section-resource__content .content-body a{color:#d8d8dd;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 267.gvGwmS .section-resource__content .content-body a:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 268.gvGwmS .section-resource__content .content-body h2{font-size:clamp(2.3rem,5vw,2.8rem) !important;margin-bottom:0.5em;}/*!sc*/ 269.gvGwmS .section-resource__content .content-body h2 span,.gvGwmS .section-resource__content .content-body h2 strong{font-size:2rem !important;}/*!sc*/ 270.gvGwmS .section-resource__content .content-body h3{font-weight:400;color:#ccc;font-size:1.875rem;background:linear-gradient( 106deg, #ffffffd8 0%, #ffffff55 61%, #ffffff9b 100% );background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:0.5em;}/*!sc*/ 271.gvGwmS .section-resource__content .content-body h3 strong{font-size:1.5rem !important;margin:1em 0;}/*!sc*/ 272.gvGwmS .section-resource__content .content-body img{margin-top:1em;}/*!sc*/ 273.gvGwmS .section-resource__content .content-body p{color:#a0a0a0 !important;font-size:1.375rem !important;font-weight:300 !important;line-height:170%;margin-bottom:1.5em;font-family:'Niveau Grotesk' !important;}/*!sc*/ 274.gvGwmS .section-resource__content .content-body p span{color:#a0a0a0 !important;font-size:1.375rem !important;font-weight:300 !important;line-height:170%;margin-bottom:1.5em;font-family:'Niveau Grotesk' !important;}/*!sc*/ 275.gvGwmS .section-resource__content .content-body ul{padding:0 0 0 1em !important;}/*!sc*/ 276.gvGwmS .section-resource__content .content-body ol{padding:0 0 0 1em !important;}/*!sc*/ 277.gvGwmS .section-resource__content .content-body li{color:#a3a3a3 !important;margin-bottom:0.5em;}/*!sc*/ 278.gvGwmS .section-resource__content .content-body li span,.gvGwmS .section-resource__content .content-body li p{color:#a3a3a3 !important;font-weight:300 !important;font-family:'Niveau Grotesk' !important;margin-bottom:0.5em;}/*!sc*/ 279.gvGwmS .section-resource__content .content-body li span strong,.gvGwmS .section-resource__content .content-body li p strong{color:#d8d8d8d9;}/*!sc*/ 280.gvGwmS .section-resource__content .content-body blockquote{margin:0;}/*!sc*/ 281.gvGwmS .section-resource__content .content-body pre{white-space:pre-line;font-size:1rem !important;font-family:cursive;}/*!sc*/ 282.gvGwmS .section-resource__content .content-body h1,.gvGwmS .section-resource__content .content-body h2 span,.gvGwmS .section-resource__content .content-body h2 strong,.gvGwmS .section-resource__content .content-body h3 strong,.gvGwmS .section-resource__content .content-body h4,.gvGwmS .section-resource__content .content-body h5,.gvGwmS .section-resource__content .content-body h6{color:#a3a3a3 !important;-webkit-text-fill-color:#a3a3a3 !important;-webkit-letter-spacing:0.25px !important;-moz-letter-spacing:0.25px !important;-ms-letter-spacing:0.25px !important;letter-spacing:0.25px !important;font-weight:400 !important;font-family:'Niveau Grotesk';}/*!sc*/ 283.gvGwmS .section-resource__content .content-body .emptyParagraphTag{display:none;}/*!sc*/ 284.gvGwmS .section-resource__content .author-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:2em auto 0;max-width:905px;
284gap:1em;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 285.gvGwmS .section-resource__content .author-container span{display:grid;place-items:center;width:5rem;height:5rem;border-radius:50%;font-size:2.5rem;font-weight:400;text-transform:uppercase;background:#1b1a1b;}/*!sc*/ 286.gvGwmS .section-resource__content .author-container p{margin:0;text-align:left;text-transform:capitalize;font-weight:400;font-size:1.375rem;-webkit-letter-spacing:0.5px;-moz-letter-spacing:0.5px;-ms-letter-spacing:0.5px;letter-spacing:0.5px;color:#d8d8d8;}/*!sc*/ 287.gvGwmS .section-resource__content .author-container p:last-child{color:#a3a3a3;font-weight:300;font-size:1.125rem;margin-top:0.3em;}/*!sc*/ 288.gvGwmS .section-resource__content table{width:100%;border-collapse:collapse;margin:20px 0 30px;}/*!sc*/ 289.gvGwmS .section-resource__content th,.gvGwmS .section-resource__content td{border:1px solid #ddd;padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1rem;padding-right:1rem;text-align:left;border-color:rgba(75,85,99,var(--tw-border-opacity));}/*!sc*/ 290.gvGwmS .section-resource__content tr:nth-child(even){background-color:rgba(75,85,99,0.2);border-color:rgba(75,85,99,var(--tw-border-opacity));}/*!sc*/ 291.gvGwmS .section-resource__content th{background-color:#121212;}/*!sc*/ 292.gvGwmS .section-resource__content .table-space{margin-top:20px;}/*!sc*/ 293.gvGwmS .section-resource__content code{background-color:hsla(0,0%,100%,0.1);padding:0.25rem 0.4em;border:0px solid hsla(0,0%,100%,0.1);border-radius:3px;font-size:1rem;font-family:monospace;}/*!sc*/ 294.gvGwmS .section-resource__content pre{background-color:hsla(0,0%,100%,0.1);border-radius:3px;padding:1em;}/*!sc*/ 295.gvGwmS .section-resource__content pre code{background-color:transparent;padding:0;line-height:1.5;}/*!sc*/ 296data-styled.g49[id="style-sc-28c80c2a-0"]{content:"gvGwmS,"}/*!sc*/ 297</style><title>Alerting & Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem | PipeOps</title><meta name="description" content="There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected"/><meta name="keywords" content="devops, cloud infrastructure, cloud, cloud infra, deployment, heroku, gcp, google cloud services, azure, aws, amazon, cloud services, heroku alternative, pass, pass platforms"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><link rel="canonical" href="https://pipeops.io/blog/161/alerting-&-cost-control:-cloud-bill-shock-is-a-product-problem,-not-a-discipline-problem"/><meta property="og:title" content="Alerting & Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem"/><meta property="og:description" content="There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected"/><meta property="og:url" content="https://pipeops.io/blog/161/alerting-&-cost-control:-cloud-bill-shock-is-a-product-problem,-not-a-discipline-problem"/><meta property="og:site_name" content="PipeOps"/><meta property="og:image" content="https://pub-30c11acc143348fcae20835653c5514d.r2.dev/card_Bg4_09c37060fc.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="PipeOps: cyber defence and sovereignty for critical infrastructure"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@pipeopshq"/><meta name="twitter:creator" content="@pipeopshq"/><meta name="twitter:title" content="Alerting & Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem"/><meta name="twitter:description" content="There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected"/><meta name="twitter:image" content="https://pub-30c11acc143348fcae20835653c5514d.r2.dev/card_Bg4_09c37060fc.png"/><div hidden id="S:2"><div class="style-sc-28c80c2a-0 gvGwmS appContentContainer"><section class="section-resource__content">
297<div class="guide-heading"><div class="screen"><div class="pageBreadcrumbsContainer"><nav class="style-sc-3208084b-0 hhFrur breadcrumbs"><a class="" href="/blog">Blog</a><span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" color="#d8d8d8b3" class="icon" style="color:#d8d8d8b3;vertical-align:middle" height="0.7rem" width="0.7rem" xmlns="http://www.w3.org/2000/svg"><path d="M271.653 1023.192c-8.685 0-17.573-3.432-24.238-10.097-13.33-13.33-13.33-35.144 0-48.474L703.67 508.163 254.08 58.573c-13.33-13.331-13.33-35.145 0-48.475 13.33-13.33 35.143-13.33 48.473 0L776.38 483.925c13.33 13.33 13.33 35.143 0 48.473l-480.492 480.694c-6.665 6.665-15.551 10.099-24.236 10.099z"></path></svg></span><a class="active" href="/blog/Alerting & Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem">Alerting & Cost C...</a></nav></div><p class="guide-category">Engineering<span></span>7<!-- --> min read</p><h1>Alerting & Cost Control: Cloud Bill Shock Is a Product Problem, Not a Discipline Problem</h1></div></div><div class="content-body"><p>There is a familiar cloud story: a team deploys something small, usage grows, and someone eventually opens an invoice that is far larger than expected.</p> 298<p>The usual response is personal. "We should have checked the dashboard." "Someone forgot to turn off the environment." "The team needs to be more careful." Those things may be true, but they miss the deeper problem: if a costly change can happen silently and the first clear signal arrives on an invoice, the product is asking people to remember too much, and at the wrong moment, without enough support to act on it.</p> 299<p>Cloud cost is not only a finance concern. It is an operational signal, much like latency, errors, saturation, or downtime. The earlier a team can see a meaningful change, understand its scope, and act on it, the less likely a normal engineering event becomes a budget incident.</p> 300<p>That is why alerting and cost control belong together.</p> 301<h2>The Invoice Is a Lagging Indicator</h2> 302<p>A cloud invoice tells you what happened. It is useful for reconciliation, but it is a poor first alert.</p> 303<p>By the time a monthly bill arrives, the cause may be buried under weeks of deployments, experiments, retries, traffic spikes, idle resources, or a misconfigured autoscaler. The person looking at the invoice may not even be the person who made the change. The team then has to reconstruct a timeline while simultaneously explaining the unexpected spend.</p> 304<p>An alert changes the timing. It can surface information like:</p> 305<ul> 306<li><em>"This workspace has crossed the amount we decided was worth investigating."</em></li> 307<li><em>"This service has stayed above its normal CPU or memory range for ten minutes."</em></li> 308</ul> 309<p>Those are actionable signals. They arrive while the system can still be changed, rolled back, resized, paused, or investigated.</p> 310<h2>Alerts Should Be Selective, Not Universal</h2> 311<p>The answer is not to notify everyone about every metric. An alerting system that sends too many notifications trains people to ignore them, and an ignored alert is worse than no alert at all.</p> 312<p>Good alerting has three properties:</p> 313<ol> 314<li><strong>A clear threshold:</strong> What level actually matters?</li> 315<li><strong>A meaningful duration or condition:</strong> Is this a brief fluctuation, or a sustained problem?</li> 316<li><strong>A clear owner and action:</strong> Who should respond, and what should they check first?</li> 317</ol> 318<p>For resource usage, a threshold without a duration is often noisy. A workload that briefly reaches 80% CPU may be healthy; one that stays there for 30 minutes may need attention. Cost alerts work the same way: a threshold should represent a decision point, not an arbitrary number.</p> 319<p>The goal is not to predict every future expense. It is to shorten the distance between "something changed" and "the right person knows."</p> 320<h2>Cost Control Starts with Visibility</h2> 321<p>Teams cannot control what they cannot see. Before setting budgets or thresholds, make usage legible:</p> 322<ul> 323<li>Which workspace, project, service, or server is generating the cost?</li> 324<li>Is the spend fixed, usage-based, or the result of a one-off event?</li> 325<li>What is the current billing or usage period?</li> 326<li>
326Which resources are active, idle, duplicated, or unexpectedly expensive?</li> 327<li>Who can view billing information, and who can change payment or resource settings?</li> 328<li>Where do alert notifications actually go, and does anyone actively monitor that channel?</li> 329</ul> 330<p>This applies equally to a developer running a side project, a startup founder watching runway, and a larger engineering organization allocating costs across teams. The level of detail differs, but the need is the same: connect infrastructure activity to consequences people can understand and respond to.</p> 331<p>Useful cost control does not mean preventing all growth. Growth is often the point. It means making growth intentional, and making accidental growth visible early.</p> 332<h2>Guardrails Lower the Cost of Getting It Right</h2> 333<p>There are two ways to address cloud risk. One is to rely on vigilance: write a checklist, remind people to consult it, and hope the important step survives a busy sprint. The other is to build a guardrail into the product itself.</p> 334<p>Guardrails can include:</p> 335<ul> 336<li>showing an estimated cost before creating or scaling a resource;</li> 337<li>displaying current usage and quota alongside billing data;</li> 338<li>enabling a workspace-level spend threshold;</li> 339<li>enabling a resource-level threshold for a specific server or service;</li> 340<li>separating billing <em>visibility</em> from billing <em>management</em> permissions;</li> 341<li>surfacing outstanding usage charges before they become a surprise;</li> 342<li>making the recommended next action obvious when a limit is reached.</li> 343</ul> 344<p>These controls do not replace judgment. They preserve it, freeing teams to focus attention on decisions that genuinely require it, rather than on remembering routine checks.</p> 345<h2>Workspace Budgets and Resource Budgets Answer Different Questions</h2> 346<p>A workspace-level spend alert asks: "Is the total cost of this environment crossing the amount we planned for this period?"</p> 347<p>A resource-level alert asks: "Is this particular server, cluster, or workload responsible for an unusual share of that cost?"</p> 348<p>Both views matter, and they serve different people. A total budget can protect a founder's monthly limit or a team's project allocation. A per-resource threshold helps an engineer pinpoint the specific cause. Without the first, an organization may miss a financial risk entirely. Without the second, it may know something is wrong but have no clear place to start.</p> 349<p>The same logic applies to usage alerts. A workspace-wide notification sets a default policy. Individual resources can inherit that policy or override it when their workload has different characteristics, a batch processor, a customer-facing API, and a development environment should not necessarily share identical thresholds.</p> 350<h2>Cost Visibility Is a Collaboration Problem, Too</h2> 351<p>Cloud spending often becomes contentious when responsibility is unclear. Engineering sees a system that needs capacity. Finance sees a number that moved. Founders see runway shrinking. Each perspective is valid, but they need a shared vocabulary, and that vocabulary has to come from somewhere.</p> 352<p>Alerts help create it when they include scope and context. "Spend alert for the payments service" is more actionable than "cloud usage high." "Storage has stayed above 85% for 30 minutes on the staging environment" is more useful than "resource warning." Specific, scoped alerts let the right person investigate without first needing to reconstruct what the notification even means.</p> 353<p>Permissions matter too. Not every team member needs access to payment details, but more than one person should have visibility into usage. Separating view access from management access lets teams collaborate without unnecessarily exposing billing credentials or payment actions.</p> 354<h2>A Practical Starting Point</h2> 355<p>You do not need a full FinOps program, a formal practice for managing and optimizing cloud financial operations to start improving this. A small set of decisions is enough to begin:</p> 356<ol> 357<li>Decide the monthly (or usage-period) amount that should trigger a conversation, not a panic.</li> 358<li>Add a workspace-level spend alert for that amount.</li> 359<li>
359Identify the few resources whose failure or unexpected growth would materially affect the bill.</li> 360<li>Add resource-level spend alerts where ownership is clear.</li> 361<li>Set sustained CPU, memory, and storage thresholds for important workloads.</li> 362<li>Route notifications to a channel someone actually monitors.</li> 363<li>After a week, revisit the alerts: remove noisy ones, clarify owners, and adjust thresholds based on real behavior.</li> 364</ol> 365<p>The last step is the most important. Alerting is a product capability, but it requires a feedback loop. A threshold nobody understands protects nobody. A notification nobody can act on becomes background noise. The goal is a small set of alerts that the right people trust, and can act on confidently when they fire.</p> 366<h2>The Bigger Idea</h2> 367<p>Cloud bill shock is rarely caused by one careless person or team. It is usually the result of a system that conceals consequences until they are expensive, distributes ownership across too many people, or assumes individuals will remember a routine check at exactly the right moment.</p> 368<p>Better product design changes that equation. It brings cost closer to the infrastructure decisions that drive it. It turns usage into a visible operational signal. It gives teams a chance to respond while the problem is still small, before it becomes a line item someone has to explain.</p> 369<p>That is the value of alerting and cost control: not restriction or constant monitoring, but confidence. Developers can move quickly. Founders can understand their exposure. Engineering teams can grow their systems without discovering the cost only when the invoice arrives.</p> 370<p>PipeOps includes these capabilities as part of its core deployment and operations workflow, workspace and resource spend alerts, usage thresholds, event subscriptions, billing visibility, and access controls, all available through workspace and resource settings. If your current infrastru
370cture tooling does not provide these guardrails, <a href="https://console.pipeops.io/auth/signup">sign up for PipeOps</a> to add them to your workflow.</p></div><div class="author-container"><span>S</span> <div><p>Shaibu<!-- --> <!-- -->Abdulsalam</p><p>September 11th 2026</p></div></div></section><div class="styles-sc-881b2e6c-0 gJXuWv"><div class="screen"><label>PRODUCTION READY IN NO TIME</label><p>PipeOps is the fastest and easiest way to go live in production on your <span class="aws">AWS</span>,<!-- --> <span class="gcp" style="padding-right:0.095rem">GCP</span>, or <span class="azure">Azure</span>.</p></div></div></div></div>
370<script type="039fd87e3c1c1e513804e704-text/javascript">$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("S:2","P:2")</script>
370<script type="039fd87e3c1c1e513804e704-text/javascript">$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}; 371$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:1","S:1")</script>
371<div hidden id="S:3"></div>
371<script type="039fd87e3c1c1e513804e704-text/javascript">$RC("B:3","S:3")</script>
371<div hidden id="S:0"></div>
371<script type="039fd87e3c1c1e513804e704-text/javascript">$RC("B:0","S:0")</script>
371<style data-styled="" data-styled-version="5.3.11"></style>
vendor: 142 bytes, line 371
371<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="039fd87e3c1c1e513804e704-|49" defer></script>
371<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"71cae522e1a64855bc002bfeb2dcea56","spa":2}' crossorigin="anonymous"></script>
371 372</body></html><style data-styled="" data-styled-version="5.3.11"></style>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.