[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"blog-\u002Fblog\u002Fwhy-gload-is-yaml-first":3},{"id":4,"title":5,"body":6,"date":169,"description":170,"extension":171,"meta":172,"navigation":87,"path":173,"seo":174,"stem":175,"tags":176,"__hash__":179},"blog\u002Fblog\u002Fwhy-gload-is-yaml-first.md","Why Gload is YAML-first",{"type":7,"value":8,"toc":164},"minimark",[9,13,16,21,135,138,142,145,149,160],[10,11,12],"p",{},"Most load testing tools ask you to write a script before you can run a test. That's the right choice for complex, branching scenarios — but most load tests aren't complex. Most are: hit this endpoint, at this rate, for this long, and tell me what broke.",[10,14,15],{},"Gload starts from that second case.",[17,18,20],"h2",{"id":19},"a-test-is-data-not-a-program","A test is data, not a program",[22,23,28],"pre",{"className":24,"code":25,"language":26,"meta":27,"style":27},"language-yaml shiki shiki-themes github-light github-dark","scenario: checkout-flow\ntarget: api.example.com\nduration: 30s\nvus: 50\n\nstages:\n  - ramp: 10s\n    to: 50\n  - hold: 20s\n","yaml","",[29,30,31,48,59,70,82,89,98,112,122],"code",{"__ignoreMap":27},[32,33,36,40,44],"span",{"class":34,"line":35},"line",1,[32,37,39],{"class":38},"s9eBZ","scenario",[32,41,43],{"class":42},"sVt8B",": ",[32,45,47],{"class":46},"sZZnC","checkout-flow\n",[32,49,51,54,56],{"class":34,"line":50},2,[32,52,53],{"class":38},"target",[32,55,43],{"class":42},[32,57,58],{"class":46},"api.example.com\n",[32,60,62,65,67],{"class":34,"line":61},3,[32,63,64],{"class":38},"duration",[32,66,43],{"class":42},[32,68,69],{"class":46},"30s\n",[32,71,73,76,78],{"class":34,"line":72},4,[32,74,75],{"class":38},"vus",[32,77,43],{"class":42},[32,79,81],{"class":80},"sj4cs","50\n",[32,83,85],{"class":34,"line":84},5,[32,86,88],{"emptyLinePlaceholder":87},true,"\n",[32,90,92,95],{"class":34,"line":91},6,[32,93,94],{"class":38},"stages",[32,96,97],{"class":42},":\n",[32,99,101,104,107,109],{"class":34,"line":100},7,[32,102,103],{"class":42},"  - ",[32,105,106],{"class":38},"ramp",[32,108,43],{"class":42},[32,110,111],{"class":46},"10s\n",[32,113,115,118,120],{"class":34,"line":114},8,[32,116,117],{"class":38},"    to",[32,119,43],{"class":42},[32,121,81],{"class":80},[32,123,125,127,130,132],{"class":34,"line":124},9,[32,126,103],{"class":42},[32,128,129],{"class":38},"hold",[32,131,43],{"class":42},[32,133,134],{"class":46},"20s\n",[10,136,137],{},"That's a complete load test. No imports, no boilerplate, nothing to compile. If you can read a YAML file, you can read what this test does — which matters as much for code review as it does for running it yourself.",[17,139,141],{"id":140},"inspired-by-k6-not-cloning-it","Inspired by k6, not cloning it",[10,143,144],{},"k6's scripting model is genuinely good for the scenarios that need it — multi-step flows, custom logic, complex assertions. We're not trying to replace that. Gload is for the far more common case where you don't need a scripting language at all, and shouldn't have to reach for one to get started.",[17,146,148],{"id":147},"where-we-are","Where we are",[10,150,151,152,159],{},"Gload is early and in active development — the example above shows the direction, not a finished feature set. We'll post here as pieces land. If you want to follow along, we're on ",[153,154,158],"a",{"href":155,"rel":156},"https:\u002F\u002Fgithub.com\u002Finfwrite",[157],"nofollow","GitHub",".",[161,162,163],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":27,"searchDepth":50,"depth":50,"links":165},[166,167,168],{"id":19,"depth":50,"text":20},{"id":140,"depth":50,"text":141},{"id":147,"depth":50,"text":148},"2026-06-29","Load testing tools tend to make you choose between power and simplicity. We don't think that's a real tradeoff.","md",{},"\u002Fblog\u002Fwhy-gload-is-yaml-first",{"title":5,"description":170},"blog\u002Fwhy-gload-is-yaml-first",[177,178],"gload","engineering","YCXMKZ6eLS8HfExFVw0iwQCdAEv_McOdaKcJ3G0ELEA",1783640617125]