-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
110 lines (110 loc) · 94.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<!DOCTYPE html><html lang="en" class="__variable_e7c3aa __variable_af6a35"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/045832894acda0e9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/120a5a1920781bd0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/2744aa005c8cf586-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/46b92c15a48f3318-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7c7db451c1a82f61-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/da897b99eb1fe4a1-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c714540e49ad5111-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/images/steep-logo.svg"/><link rel="preload" as="image" href="/images/steep-logo-white.svg"/><link rel="stylesheet" href="/_next/static/css/db4f8dd2415fe9ef.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/fede59014553a58a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b9e04c38aa234447.js"/><script src="/_next/static/chunks/4bd1b696-f0c36f1776530c6f.js" async=""></script><script src="/_next/static/chunks/517-8793946ef16af028.js" async=""></script><script src="/_next/static/chunks/main-app-2bd7849e38a65248.js" async=""></script><script src="/_next/static/chunks/697-08b61aa380a437f8.js" async=""></script><script src="/_next/static/chunks/app/layout-a7aef5dfd7b0caa2.js" async=""></script><script src="/_next/static/chunks/ede5dfc2-f13776fe8cae522e.js" async=""></script><script src="/_next/static/chunks/173-cdc6b61d9e360a93.js" async=""></script><script src="/_next/static/chunks/856-8c55f7a66b5a6470.js" async=""></script><script src="/_next/static/chunks/176-283965ce13beb1df.js" async=""></script><script src="/_next/static/chunks/839-836a6da2f390a554.js" async=""></script><script src="/_next/static/chunks/511-dbfedc5e10a6c994.js" async=""></script><script src="/_next/static/chunks/499-f1ab7f57dcd6d64b.js" async=""></script><script src="/_next/static/chunks/837-2d3bff7a76edc73f.js" async=""></script><script src="/_next/static/chunks/77-afc373c5602be637.js" async=""></script><script src="/_next/static/chunks/777-18e2172948102c79.js" async=""></script><script src="/_next/static/chunks/app/page-56a1d6c565810573.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="icon" type="image/x-icon" href="/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="96x96" href="/favicons/favicon-96x96.png"/><title>Steep</title><meta name="description" content="Scientific Workflows in the Cloud"/><meta name="author" content="Michel Krämer"/><meta name="robots" content="index,follow"/><script>
try {
if (localStorage.theme === "dark" || (!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
document.documentElement.classList.add("dark")
} else {
document.documentElement.classList.remove("dark")
}
} catch (_) {}
</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script>self.__wrap_n=self.__wrap_n||(self.CSS&&CSS.supports("text-wrap","balance")?1:2);self.__wrap_b=(e,t,n)=>{let r=null==(n=n||document.querySelector(`[data-br="${e}"]`))?void 0:n.parentElement;if(!r)return;let o=e=>n.style.maxWidth=e+"px";n.style.maxWidth="";let i=r.clientWidth,a=r.clientHeight,l=i/2-.25,s=i+.5,u;if(i){for(o(l),l=Math.max(n.scrollWidth,l);l+1<s;)o(u=Math.round((l+s)/2)),r.clientHeight===a?s=u:l=u;o(s*t+i*(1-t))}n.__wrap_o||"undefined"!=typeof ResizeObserver&&(n.__wrap_o=new ResizeObserver(()=>{self.__wrap_b(0,+n.dataset.brr,n)})).observe(r)};</script><span class="absolute left-0 top-0 h-0" id="__scroll-top"></span><nav class="left-0 right-0 top-0 z-50 flex flex-col relative translate-y-0"><div class="top-0 flex h-16 w-full items-center justify-center border-b border-gray-200 transition-all bg-bg bg-opacity-80 backdrop-blur-sm border-opacity-0 backdrop-blur-none"><div class="flex max-w-screen-2xl flex-1 items-center justify-between px-2 sm:px-4 lg:px-6"><div class="flex flex-1 items-center justify-between lg:gap-8"><div class="mb-1"><a class="flex items-center gap-1 text-xl text-black text-opacity-90 dark:text-white" href="/"><img src="/images/steep-logo.svg" class="h-10 w-fit dark:hidden" width="1706.4" height="532.9" alt="Logo"/><img src="/images/steep-logo-white.svg" class="hidden h-10 w-fit dark:block" width="1706.4" height="532.9" alt="Logo"/></a></div><div class="mt-1 hidden gap-6 lg:flex"><a class="text-gray-600 hover:text-gray-900" href="/showcase/">Showcase</a><a class="text-gray-600 hover:text-gray-900" href="/docs/">Docs</a><a class="text-gray-600 hover:text-gray-900" href="/about/">About</a></div><div class="hidden flex-1 lg:flex"></div><div class="flex items-center gap-4"><div class="lg:border-r lg:border-gray-200 lg:pr-4"><button class="lg:hidden" aria-label="Search docs ..."><svg xmlns="http://www.w3.org/2000/svg" width="1.75rem" height="1.75rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button><button class="hidden h-8 w-56 cursor-pointer select-none items-center justify-between rounded border border-gray-200/0 bg-gray-200/60 pl-3 pr-2 text-sm text-gray-600 transition-colors hover:border-gray-400 lg:flex">Search docs ...</button><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><div class="hidden lg:contents"><div class="flex" data-state="closed"><button aria-label="Activate dark mode" aria-live="polite" class="aspect-square cursor-pointer touch-manipulation rounded-full text-gray-600 outline-offset-[5px] transition-colors hover:text-gray-800" style="inline-size:1.1rem;block-size:1.1rem;-webkit-tap-highlight-color:transparent"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" style="stroke-width:2px;inline-size:100%;block-size:100%;stroke-linecap:round"><mask class="moon origin-center" id="moon-mask-dark-mode-toggle1"><rect x="0" y="0" width="100%" height="100%" fill="white"></rect><circle cx="24" cy="9" r="5" fill="black" class="transition-[cx] duration-500 ease-[cubic-bezier(0.5,0.75,0.75,1.25)]"></circle></mask><circle class="origin-center transition-transform duration-500 ease-[cubic-bezier(0.5,1.25,0.75,1.25)] dark:scale-[1.75] dark:duration-[250ms] dark:ease-[cubic-bezier(0.25,0,0.3,1)]" cx="12" cy="12" r="6" mask="url(#moon-mask-dark-mode-toggle1)" fill="currentColor"></circle><g class="origin-center [transition:transform_0.5s_cubic-bezier(0.5,1.5,0.75,1.25),opacity_0.5s_cubic-bezier(0.25,0,0.3,1)] dark:opacity-0 dark:duration-150 dark:[transform:rotateZ(-25deg)]" stroke="currentColor"><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></g></svg></button></div><a class="group" aria-label="GitHub" data-state="closed" href="https://github.com/steep-wms/steep"><svg role="img" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="fill-gray-600 transition-colors group-hover:fill-gray-800"><title></title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a></div><button id="navbar-toggle-menu-button" class="inline-flex select-none items-center justify-center text-gray-800 lg:hidden" aria-label="Open menu"><div class="hamburger-react" aria-label="Open menu" aria-expanded="false" role="button" style="cursor:pointer;height:48px;position:relative;transition:0.4s cubic-bezier(0, 0, 0, 1);user-select:none;width:48px;outline:none;transform:none" tabindex="0"><div style="background:currentColor;height:3px;left:8px;position:absolute;width:32px;top:13px;transition:0.4s cubic-bezier(0, 0, 0, 1);transform:none"></div><div style="background:currentColor;height:3px;left:8px;position:absolute;width:32px;top:23px;transition:0.4s cubic-bezier(0, 0, 0, 1);opacity:1"></div><div style="background:currentColor;height:3px;left:8px;position:absolute;width:32px;top:33px;transition:0.4s cubic-bezier(0, 0, 0, 1);transform:none"></div></div></button></div></div></div></div></nav><section id="hero" class="__variable_e05c75 mx-auto mt-10 flex min-h-[780px] max-w-screen-2xl flex-col items-center justify-center px-2 md:mt-0"><h1 class="mx-2 mb-5 text-center font-black text-[3.4rem] leading-[1.1] text-gray-900 xs:mx-8"><span data-br=":Rijtb:" data-brr="1" style="display:inline-block;vertical-align:top;text-decoration:inherit;text-wrap:balance">Scale <span style="letter-spacing:-0.3rem">Y</span>our Data<!-- --> <span style="letter-spacing:-0.12rem">W</span>orkflows to New Heights</span><script>self.__wrap_n!=1&&self.__wrap_b(":Rijtb:",1)</script></h1><p class="prose-lead prose mx-6 text-center text-[1.55rem] leading-[1.4] text-gray-600"><span data-br=":R12jtb:" data-brr="1" style="display:inline-block;vertical-align:top;text-decoration:inherit;text-wrap:balance"><strong class="text-gray-700">Steep</strong> is a cloud-based workflow management system that orchestrates your microservices to process big data in a resource- and cost-efficient manner.</span><script>self.__wrap_n!=1&&self.__wrap_b(":R12jtb:",1)</script></p><div class="relative mb-4 mt-14 h-60 w-full overflow-hidden"><div class="absolute left-1/2 top-0 w-[76rem] -translate-x-1/2 px-24"><div class="relative"><svg version="1.1" x="0px" y="0px" viewBox="-20 -20 1605 356" class="h-full w-full"><path id="path10" d="M1119.5 293.1h100.1c11 0 20-9 20-20v-92.5" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path9" d="M880.5 161.1h115.4c11 0 20 9 20 20v79.5" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path8" d="M519.5 148.5h165" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path7" d="M69.6 148.5h273.9" style="fill:none;stroke:url(#fadeOutLeft);stroke-miterlimit:10"></path><path id="path6" d="M1362.5 148.5h161.8" stroke-opacity="1" style="fill:none;stroke:url(#fadeOutRight);stroke-miterlimit:10"></path><path id="path5" d="M1119.5 32.9H1249c11 0 20 9 20 20v62.8" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path4" d="M880.5 135.8h78.1c11 0 20-9 20-20V65.7" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path3" d="M636.1 32.9h86.4c11 0 20 9 20 20v62.8" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path2" d="M349.5 32.9h110" style="fill:none;stroke:#cbd5e0;stroke-miterlimit:10"></path><path id="path1" d="M.7 32.9h171.8" style="fill:none;stroke:url(#fadeOutLeft);stroke-miterlimit:10"></path><path id="box1" d="M335.3 65.2H186.5c-7.6 0-13.7-6.1-13.7-13.7V14.2c0-7.6 6.1-13.7 13.7-13.7h148.8c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.6-6.1 13.7-13.7 13.7z" style="stroke:url(#fadeOutLeft);stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box1-shadow)"></path><path id="box2" d="M622.3 65.2H473.5c-7.6 0-13.7-6.1-13.7-13.7V14.2c0-7.6 6.1-13.7 13.7-13.7h148.8c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.6-6.1 13.7-13.7 13.7z" style="stroke:#cbd5e0;stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box2-shadow)"></path><path id="box6" d="M505.9 180.9H357.1c-7.6 0-13.7-6.1-13.7-13.7v-37.3c0-7.6 6.1-13.7 13.7-13.7h148.8c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.5-6.1 13.7-13.7 13.7z" style="stroke:#cbd5e0;stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box6-shadow)"></path><path id="box3" d="M867 180.9H698.2c-7.6 0-13.7-6.1-13.7-13.7v-37.3c0-7.6 6.1-13.7 13.7-13.7H867c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.5-6.2 13.7-13.7 13.7z" style="stroke:#cbd5e0;stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box3-shadow)"></path><path id="box4" d="M1105.9 65.2H957.1c-7.6 0-13.7-6.1-13.7-13.7V14.2c0-7.6 6.1-13.7 13.7-13.7h148.8c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.6-6.1 13.7-13.7 13.7z" style="stroke:#cbd5e0;stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box4-shadow)"></path><path id="box7" d="M1105.9 325.5H957.1c-7.6 0-13.7-6.1-13.7-13.7v-37.3c0-7.6 6.1-13.7 13.7-13.7h148.8c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.5-6.1 13.7-13.7 13.7z" style="stroke:#cbd5e0;stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box7-shadow)"></path><path id="box5" d="M1348.8 180.9H1200c-7.6 0-13.7-6.1-13.7-13.7v-37.3c0-7.6 6.1-13.7 13.7-13.7h148.8c7.6 0 13.7 6.1 13.7 13.7v37.3c0 7.5-6.1 13.7-13.7 13.7z" style="stroke:url(#fadeOutRight);stroke-miterlimit:10" class="fill-bg transition-colors duration-300" filter="url(#box5-shadow)"></path><path id="path10-bullet" d="M1119.5 293.1h100.1c11 0 20-9 20-20v-92.5" style="fill:none;stroke:url(#path10-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path9-bullet" d="M880.5 161.1h115.4c11 0 20 9 20 20v79.5" style="fill:none;stroke:url(#path9-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path8-bullet" d="M519.5 148.5h165" style="fill:none;stroke:url(#path8-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path7-bullet" d="M69.6 148.5h273.9" style="fill:none;stroke:url(#path7-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path6-bullet" d="M1362.5 148.5h161.8" stroke-opacity="1" style="fill:none;stroke:url(#path6-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path5-bullet" d="M1119.5 32.9H1249c11 0 20 9 20 20v62.8" style="fill:none;stroke:url(#path5-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path4-bullet" d="M880.5 135.8h78.1c11 0 20-9 20-20V65.7" style="fill:none;stroke:url(#path4-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path3-bullet" d="M636.1 32.9h86.4c11 0 20 9 20 20v62.8" style="fill:none;stroke:url(#path3-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path2-bullet" d="M349.5 32.9h110" style="fill:none;stroke:url(#path2-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><path id="path1-bullet" d="M.7 32.9h171.8" style="fill:none;stroke:url(#path1-gradient);stroke-miterlimit:10" class="[stroke-width:4] dark:[stroke-width:5]"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="path10-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path9-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path8-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path7-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path6-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path5-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path4-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path3-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path2-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="path1-gradient" x1="0" y1="0" x2="0" y2="0"><stop stop-color="#63b3ed" stop-opacity="0"></stop><stop offset="0.05" stop-color="#63b3ed"></stop><stop offset="1" stop-color="#63b3ed" stop-opacity="0"></stop></linearGradient><filter id="box1-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box1-shadow-drop" dx="0" dy="0" stdDeviation="0" flood-opacity="0" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><filter id="box2-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box2-shadow-drop" dx="0" dy="0" stdDeviation="0" flood-opacity="0" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><filter id="box6-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box6-shadow-drop" dx="0" dy="0" stdDeviation="0" flood-opacity="0" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><filter id="box3-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box3-shadow-drop" dx="0" dy="0" stdDeviation="0" flood-opacity="0" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><filter id="box4-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box4-shadow-drop" dx="0" dy="0" stdDeviation="8" flood-opacity="0.6" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><filter id="box7-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box7-shadow-drop" dx="0" dy="0" stdDeviation="8" flood-opacity="0.6" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><filter id="box5-shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow id="box5-shadow-drop" dx="0" dy="0" stdDeviation="0" flood-opacity="0" class="[flood-color:#63b3ed] dark:[flood-color:#90cdf4]"></feDropShadow></filter><linearGradient gradientUnits="userSpaceOnUse" id="fadeOutLeft" x1="0" y1="0" x2="300" y2="0"><stop offset="0%" stop-color="#cbd5e0" stop-opacity="0"></stop><stop offset="100%" stop-color="#cbd5e0" stop-opacity="1"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="fadeOutRight" x1="1275" y1="0" x2="1605" y2="0"><stop offset="0%" stop-color="#cbd5e0" stop-opacity="1"></stop><stop offset="100%" stop-color="#cbd5e0" stop-opacity="0"></stop></linearGradient></defs></svg><a class="group" href="/docs/"><div class="text absolute left-[28rem] top-[5.4rem] flex h-[2.63rem] w-[8rem] select-none items-center justify-center rounded-lg border border-primary bg-bg font-normal shadow-[0px_0px_10px] shadow-primary/50 transition-colors group-hover:bg-primary"><div class="absolute left-0 top-0 -z-10 h-full w-full bg-primary blur-xl" style="opacity:0.5"></div><div class="transition-colors group-hover:text-bg">Get started</div></div></a></div></div></div></section><section id="example-workflow"><div class="relative"><section class="mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl 2xl:px-2"><div class="relative grid grid-cols-1 gap-8 lg:grid-cols-2"><div class="text-sm lg:mb-8 lg:mt-16 [&_[data-line]]:opacity-0"><figure data-rehype-pretty-code-figure=""><div dir="ltr" class="overflow-hidden" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="h-full w-full" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><pre class="Steep color theme" tabindex="0" data-language="yaml" data-theme="Steep color theme"><code data-language="yaml" data-theme="Steep color theme" style="display:grid"><span data-line=""><span style="color:#E16EAA">actions</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> type</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> execute</span></span>
<span data-line=""><span style="color:#E16EAA"> service</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> tile</span></span>
<span data-line=""><span style="color:#E16EAA"> inputs</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> input_file</span></span>
<span data-line=""><span style="color:#E16EAA"> value</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> dop20_32_475_5524_1_he.jpg</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> num_tiles</span></span>
<span data-line=""><span style="color:#E16EAA"> value</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 5</span></span>
<span data-line=""><span style="color:#E16EAA"> outputs</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> output_directory</span></span>
<span data-line=""><span style="color:#E16EAA"> var</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> tiles</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> type</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> for</span></span>
<span data-line=""><span style="color:#E16EAA"> enumerator</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> i</span></span>
<span data-line=""><span style="color:#E16EAA"> input</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> tiles</span></span>
<span data-line=""><span style="color:#E16EAA"> actions</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> type</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> execute</span></span>
<span data-line=""><span style="color:#E16EAA"> service</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> segment</span></span>
<span data-line=""><span style="color:#E16EAA"> inputs</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> input_file</span></span>
<span data-line=""><span style="color:#E16EAA"> var</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> i</span></span>
<span data-line=""><span style="color:#E16EAA"> outputs</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> output_file</span></span>
<span data-line=""><span style="color:#E16EAA"> var</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> mask_image</span></span>
<span data-line=""><span style="color:#E16EAA"> store</span><span style="color:#6C758D">:</span><span style="color:#E16EAB"> true</span></span></code></pre></div></div><div data-orientation="vertical" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;top:0;right:0;bottom:var(--radix-scroll-area-corner-height);--radix-scroll-area-thumb-height:18px"></div><div data-orientation="horizontal" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;bottom:0;left:0;right:var(--radix-scroll-area-corner-width);--radix-scroll-area-thumb-width:18px"></div></div></figure></div><div class="text-md prose text-gray-800"><h2 class="mb-[0.6em] text-[1.8em] font-normal leading-[1.6]">Declarative and data-driven workflows</h2><p>This example splits an aerial image into 5×5 tiles and then applies an <span style="white-space:nowrap">AI-based</span> <!-- -->image segmentation service to each of them.</p><p class="mb-8">Steep automatically detects dependencies between the services and executes them in parallel if possible.</p><a href="/docs/aerial-image-segmentation/"><button class="inline-flex select-none items-center justify-center rounded-lg px-6 py-2 font-normal transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-hover focus-visible:ring-offset-2 text-white dark:border-2 dark:bg-bg dark:bg-opacity-0 bg-primary hover:bg-primary-hover dark:border-primary dark:text-primary dark:hover:border-primary-hover dark:hover:text-primary-hover text-sm">Read full tutorial<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right ml-1"><path d="m9 18 6-6-6-6"></path></svg></button></a></div><div class="bottom-0 right-0 md:mx-auto md:w-4/5 lg:absolute lg:mx-0 lg:w-3/5"><div class="grid grid-cols-2 gap-6"><div class="relative" style="padding:1rem"><div style="opacity:0"><div class="grid grid-cols-5" style="gap:0"><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="0" x="0"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="0" x="-130"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="0" x="-260"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="0" x="-390"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="0" x="-520"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-130" x="0"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-130" x="-130"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-130" x="-260"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-130" x="-390"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-130" x="-520"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-260" x="0"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-260" x="-130"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-260" x="-260"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-260" x="-390"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-260" x="-520"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-390" x="0"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-390" x="-130"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-390" x="-260"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-390" x="-390"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-390" x="-520"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-520" x="0"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-520" x="-130"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-520" x="-260"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-520" x="-390"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg><svg viewBox="0 0 130 130" class="h-full w-full shadow-lg shadow-gray-700/30 dark:shadow-gray-100/30"><foreignObject width="650" height="650" y="-520" x="-520"><img alt="Tile" src="/images/home/tiles.jpg" width="650" height="650" loading="lazy"/></foreignObject></svg></div></div><div class="absolute left-0 top-0 grid w-full grid-cols-5 gap-1"><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="0" x="0"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="0" x="-130"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="0" x="-260"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="0" x="-390"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="0" x="-520"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-130" x="0"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-130" x="-130"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-130" x="-260"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg><div class="absolute left-0 top-0 z-10 h-full w-full bg-white" style="opacity:0;transform:none"></div></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-130" x="-390"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-130" x="-520"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-260" x="0"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-260" x="-130"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-260" x="-260"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-260" x="-390"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-260" x="-520"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-390" x="0"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-390" x="-130"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-390" x="-260"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-390" x="-390"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-390" x="-520"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-520" x="0"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-520" x="-130"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-520" x="-260"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-520" x="-390"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div><div class="relative flex" style="opacity:0"><svg viewBox="0 0 130 130" class="h-full w-full"><foreignObject width="650" height="650" y="-520" x="-520"><picture><source srcSet="/images/home/masks.webp" type="image/webp" width="650" height="650"/><img alt="Tile" src="/images/home/masks.jpg" width="650" height="650" loading="lazy"/></picture></foreignObject></svg></div></div></div><div class="relative z-20"><img src="/images/home/2_1_mask.jpg" alt="Large image tile" width="650" height="650" class="shadow-lg shadow-gray-800/30 dark:shadow-gray-100/30" loading="lazy" style="opacity:0"/><img src="/images/home/2_1.jpg" alt="Large image tile mask" width="650" height="650" class="absolute left-0 top-0 opacity-50" loading="lazy" style="opacity:0"/></div></div></div></div></section></div></section><section id="microservices" class="mt-32"><div class="bg-gradient-to-b from-gray-200/0 via-gray-200/40 to-gray-200/0 dark:from-gray-200/0 dark:via-gray-200/30 dark:to-gray-200/0"><section class="mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl 2xl:px-2"><div class="relative grid grid-cols-1 gap-8 lg:grid-cols-2"><div class="text-md prose text-gray-800"><h2 class="mb-0 text-[1.8em] font-normal leading-[1.6]">Microservices</h2><p class="lead">Steep is able to orchestrate microservices with arbitrary interfaces and written in any programming language.</p><div class="mt-9 flex flex-col gap-4"><div class="relative"><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 cursor-pointer select-none transition-colors hover:bg-bg bg-bg opacity-100 shadow"><h3 class="mt-0"><span class="text-[1.12em] leading-[1.5]">Service metadata</span></h3><p>Every service has a unique ID, a name, and a description. The<!-- --> <code>path</code> attribute points to the service’s executable or Docker image, and the <code>runtime</code> and the<!-- --> <code>parameters</code> specify how it is executed.</p></div><hr class="absolute top-1/2 m-0 hidden w-8 border-gray-500 lg:block -right-8"/></div><div class="relative"><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 cursor-pointer select-none transition-colors hover:bg-bg opacity-80 hover:opacity-100"><h3 class="mt-0"><span class="text-[1.12em] leading-[1.5]">Capability-based scheduling</span></h3><p>Services may require certain capabilities. During scheduling, Steep matches these capabilities with those of available agents in the distributed environment and assigns the services accordingly.</p></div></div></div></div><div class="text-sm lg:mb-8 lg:mt-14 [&_[data-line]]:transition-opacity [&_[data-highlighted-line-id=requiredCapabilities]]:opacity-30 [&_[data-line]:not([data-highlighted-line-id=requiredCapabilities])]:opacity-100"><figure data-rehype-pretty-code-figure=""><div dir="ltr" class="overflow-hidden" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="h-full w-full" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><pre class="Steep color theme" tabindex="0" data-language="yaml" data-theme="Steep color theme"><code data-language="yaml" data-theme="Steep color theme" style="display:grid"><span data-line=""><span style="color:#6C758D">-</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> segment</span></span>
<span data-line=""><span style="color:#E16EAA"> name</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> Image segmentation</span></span>
<span data-line=""><span style="color:#E16EAA"> description</span><span style="color:#6C758D">:</span><span style="color:#A0AEC0"> >-</span></span>
<span data-line=""><span style="color:#90CDF4"> Segment geospatial data with the Segment Anything</span></span>
<span data-line=""><span style="color:#90CDF4"> Model (SAM)</span></span>
<span data-line=""><span style="color:#E16EAA"> path</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> segment.py</span></span>
<span data-line=""><span style="color:#E16EAA"> runtime</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> other</span></span>
<span data-line=""> </span>
<span data-line="" data-highlighted-line="" data-highlighted-line-id="requiredCapabilities"><span style="color:#E16EAA"> requiredCapabilities</span><span style="color:#6C758D">:</span></span>
<span data-line="" data-highlighted-line="" data-highlighted-line-id="requiredCapabilities"><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> python</span></span>
<span data-line="" data-highlighted-line="" data-highlighted-line-id="requiredCapabilities"><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> gpu</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E16EAA"> parameters</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> input_file</span></span>
<span data-line=""><span style="color:#E16EAA"> name</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> Input image</span></span>
<span data-line=""><span style="color:#E16EAA"> description</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> The input image to segment</span></span>
<span data-line=""><span style="color:#E16EAA"> type</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> input</span></span>
<span data-line=""><span style="color:#E16EAA"> cardinality</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 1..1</span></span>
<span data-line=""><span style="color:#E16EAA"> dataType</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> string</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> output_file</span></span>
<span data-line=""><span style="color:#E16EAA"> name</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> Output image</span></span>
<span data-line=""><span style="color:#E16EAA"> description</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> Output image with masks</span></span>
<span data-line=""><span style="color:#E16EAA"> type</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> output</span></span>
<span data-line=""><span style="color:#E16EAA"> cardinality</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 1..1</span></span>
<span data-line=""><span style="color:#E16EAA"> dataType</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> string</span></span>
<span data-line=""><span style="color:#E16EAA"> fileSuffix</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> .jpg</span></span></code></pre></div></div><div data-orientation="vertical" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;top:0;right:0;bottom:var(--radix-scroll-area-corner-height);--radix-scroll-area-thumb-height:18px"></div><div data-orientation="horizontal" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;bottom:0;left:0;right:var(--radix-scroll-area-corner-width);--radix-scroll-area-thumb-width:18px"></div></div></figure></div></div></section></div></section><section id="cloud-support" class="mt-24"><div class="bg-gradient-to-b from-gray-200/0 via-gray-200/40 to-gray-200/0 dark:from-gray-200/0 dark:via-gray-200/30 dark:to-gray-200/0"><section class="mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl 2xl:px-2"><div class="relative grid grid-cols-1 gap-8 lg:grid-cols-2"><div class="relative row-start-2 text-sm lg:row-start-1 lg:mb-8 lg:mt-14">
<figure data-rehype-pretty-code-figure=""><div dir="ltr" class="overflow-hidden" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="h-full w-full" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><pre class="Steep color theme" tabindex="0" data-language="yaml" data-theme="Steep color theme"><code data-language="yaml" data-theme="Steep color theme" style="display:grid"><span data-line=""><span style="color:#6C758D">-</span><span style="color:#E16EAA"> id</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> ml-gpu</span></span>
<span data-line=""><span style="color:#E16EAA"> flavor</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> p2.xlarge</span></span>
<span data-line=""><span style="color:#E16EAA"> imageName</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> ami-050096f31d010b533</span><span style="color:#68D391;font-style:italic"> # Ubuntu 22.04</span></span>
<span data-line=""><span style="color:#E16EAA"> availabilityZone</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> eu-central-1</span></span>
<span data-line=""><span style="color:#E16EAA"> blockDeviceSizeGb</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 50</span></span>
<span data-line=""><span style="color:#E16EAA"> blockDeviceVolumeType</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> gp3</span><span style="color:#68D391;font-style:italic"> # SSD</span></span>
<span data-line=""><span style="color:#E16EAA"> maxVMs</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 10</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E16EAA"> creation</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> retries</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> maxAttempts</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 5</span></span>
<span data-line=""><span style="color:#E16EAA"> delay</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> 10s</span></span>
<span data-line=""><span style="color:#E16EAA"> exponentialBackoff</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 2</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E16EAA"> provisioningScripts</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> conf/setups/cuda.sh</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> conf/setups/python.sh</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> conf/setups/pip-samgeo.sh</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> conf/setups/docker.sh</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> conf/setups/steep.sh</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E16EAA"> providedCapabilities</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> docker</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> python</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#90CDF4"> gpu</span></span></code></pre></div></div><div data-orientation="vertical" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;top:0;right:0;bottom:var(--radix-scroll-area-corner-height);--radix-scroll-area-thumb-height:18px"></div><div data-orientation="horizontal" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;bottom:0;left:0;right:var(--radix-scroll-area-corner-width);--radix-scroll-area-thumb-width:18px"></div></div></figure><div class="absolute left-0 top-0 w-full opacity-0 transition-opacity opacity-100">
<figure data-rehype-pretty-code-figure=""><div dir="ltr" class="overflow-hidden" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="h-full w-full" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><pre class="Steep color theme" tabindex="0" data-language="yaml" data-theme="Steep color theme"><code data-language="yaml" data-theme="Steep color theme" style="display:grid"><span data-line=""><span style="color:#E16EAA">kind</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> Deployment</span></span>
<span data-line=""><span style="color:#E16EAA">apiVersion</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> apps/v1</span></span>
<span data-line=""><span style="color:#E16EAA">metadata</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> name</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> steep</span></span>
<span data-line=""><span style="color:#E16EAA">spec</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#68D391;font-style:italic"> # cluster with 3 nodes enabling automatic</span></span>
<span data-line=""><span style="color:#68D391;font-style:italic"> # failover and zero downtime deployments</span></span>
<span data-line=""><span style="color:#E16EAA"> replicas</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 3</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E16EAA"> selector</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> matchLabels</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> app</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> steep</span></span>
<span data-line=""><span style="color:#E16EAA"> template</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> metadata</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> labels</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> app</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> steep</span></span>
<span data-line=""><span style="color:#E16EAA"> spec</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#E16EAA"> containers</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> name</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> steep</span></span>
<span data-line=""><span style="color:#E16EAA"> image</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> steep/steep</span></span>
<span data-line=""><span style="color:#E16EAA"> env</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> name</span><span style="color:#6C758D">:</span><span style="color:#90CDF4"> STEEP_HTTP_HOST</span></span>
<span data-line=""><span style="color:#E16EAA"> value</span><span style="color:#6C758D">:</span><span style="color:#6C758D"> "</span><span style="color:#90CDF4">0.0.0.0</span><span style="color:#6C758D">"</span></span>
<span data-line=""><span style="color:#E16EAA"> ports</span><span style="color:#6C758D">:</span></span>
<span data-line=""><span style="color:#6C758D"> -</span><span style="color:#E16EAA"> containerPort</span><span style="color:#6C758D">:</span><span style="color:#EDF2F7"> 8080</span></span></code></pre></div></div><div data-orientation="vertical" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;top:0;right:0;bottom:var(--radix-scroll-area-corner-height);--radix-scroll-area-thumb-height:18px"></div><div data-orientation="horizontal" class="flex touch-none select-none p-0.5 [transition:opacity_160ms_ease-out,width_.25s_ease-in-out,height_.25s_ease-in-out] data-[orientation=horizontal]:h-[0.6rem] data-[orientation=vertical]:w-[0.6rem] data-[orientation=horizontal]:flex-col hover:data-[orientation=horizontal]:h-[0.8rem] hover:data-[orientation=vertical]:w-[0.8rem] dark opacity-60" aria-hidden="true" style="position:absolute;bottom:0;left:0;right:var(--radix-scroll-area-corner-width);--radix-scroll-area-thumb-width:18px"></div></div></figure>
</div></div><div class="text-md prose row-start-1 text-gray-800 lg:row-start-1"><h2 class="mb-0 text-[1.8em] font-normal leading-[1.6]">Cloud support</h2><p class="lead">Deploy Steep to Kubernetes and automatically manage your cloud infrastructure based on resource demand.</p><div class="mt-9 flex flex-col gap-4"><div class="relative"><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 cursor-pointer select-none transition-colors hover:bg-bg bg-bg opacity-100 shadow"><h3 class="mt-0"><span class="text-[1.12em] leading-[1.5]">Docker & Kubernetes</span></h3><p>Steep has native support for Docker and Kubernetes. It can run in a container and orchestrate other containers. It can also be deployed to a Kubernetes cluster.</p></div><hr class="absolute top-1/2 m-0 hidden w-8 border-gray-500 lg:block -left-8"/></div><div class="relative"><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 cursor-pointer select-none transition-colors hover:bg-bg opacity-80 hover:opacity-100"><h3 class="mt-0"><span class="text-[1.12em] leading-[1.5]">Connectors</span></h3><p>Steep can connect to various cloud providers, such as AWS and OpenStack. It creates and provisions virtual machines on demand and destroys them when they are no longer needed.</p></div></div></div></div></div></section></div></section><section id="web-ui" class="mt-24"><section class="mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl 2xl:px-2"><div class="grid grid-cols-1 gap-8 lg:grid-cols-8"><div class="overflow-hidden rounded row-start-2 shadow-gray-800/10 [box-shadow:1px_2px_20px_var(--tw-shadow-color),1px_1px_8px_var(--tw-shadow-color)] dark:border dark:border-gray-200 lg:col-span-5 lg:row-start-1"><div class="flex items-center gap-[0.4rem] border-b border-gray-200 px-4 py-[0.6rem]"><div class="h-[0.68rem] w-[0.68rem] rounded-full bg-[#ff5f55]"></div><div class="h-[0.68rem] w-[0.68rem] rounded-full bg-[#ffbe2d]"></div><div class="h-[0.68rem] w-[0.68rem] rounded-full bg-[#25c93f]"></div></div><svg viewBox="0 0 2560 1600"><foreignObject width="100%" height="100%" x="0" y="0"><picture class="dark:hidden"><source srcSet="/images/webui-light-800.webp 800w, /images/webui-light-1280.webp 1280w, /images/webui-light-2560.webp 2560w" sizes="(max-width: 992px) 100vw, 60vw" type="image/webp" width="2560" height="1600"/><img src="/images/webui-light-800.png" srcSet="/images/webui-light-800.png 800w, /images/webui-light-1280.png 1280w, /images/webui-light-2560.png 2560w" sizes="(max-width: 992px) 100vw, 60vw" alt="Web-based user interface" width="2560" height="1600" loading="lazy"/></picture><picture class="hidden dark:block"><source srcSet="/images/webui-dark-800.webp 800w, /images/webui-dark-1280.webp 1280w, /images/webui-dark-2560.webp 2560w" sizes="(max-width: 992px) 100vw, 60vw" type="image/webp" width="2560" height="1600"/><img src="/images/webui-dark-800.png" srcSet="/images/webui-dark-800.png 800w, /images/webui-dark-1280.png 1280w, /images/webui-dark-2560.png 2560w" sizes="(max-width: 992px) 100vw, 60vw" alt="Web-based user interface" width="2560" height="1600" loading="lazy"/></picture></foreignObject><rect x="2050" y="340" width="130" height="110" class="fill-white dark:fill-[#1b202b]"></rect><g transform="translate(2065 340)"><g class="origin-center animate-spin-4s [transform-box:fill-box]"><svg xmlns="http://www.w3.org/2000/svg" width="110" height="110" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw stroke-[#6e757c] dark:stroke-[#e3e8ef]"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg></g></g></svg></div><div class="text-md prose row-start-1 text-center text-gray-800 lg:col-span-3 lg:row-start-1 lg:mt-16 lg:text-left"><h2 class="mb-0 text-[1.8em] font-normal leading-[1.6]">Web user interface</h2><p class="lead">Submit workflows, monitor their progress, and review Steep’s configuration.</p></div></div></section></section><section id="more-features" class="mt-32 bg-gradient-to-b from-gray-100/0 to-gray-100 pb-32"><section class="mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl prose 2xl:px-2"><h2 class="mb-0 text-center text-[1.8em] font-normal leading-[1.6]">But wait, there’s more!</h2><p class="lead text-center">See what other features Steep has to offer.</p><div class="prose-sm mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3"><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 bg-bg"><h3 class="mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]">Automatic failover</h3><p>Workflows or individual services can automatically be retried in case of an error, and crashed workflows can be resumed without information loss.</p></div><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 bg-bg"><h3 class="mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]">Cyclic workflows</h3><p>Submit cyclic workflow graphs without a priori runtime knowledge. Workflows are converted incrementally and on-demand to so-called process chains.</p></div><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 bg-bg"><h3 class="mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]">Languages and runtimes</h3><p>Custom runtimes enable your team to develop microservices in various programming languages and with different frameworks. This allows you to focus on the task at hand.</p></div><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 bg-bg"><h3 class="mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]">Interfaces and extensibility</h3><p>Use the REST-like HTTP interface in your applications to submit workflows or to fetch information during execution. Write your own plugins to customize Steep.</p></div><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 bg-bg"><h3 class="mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]">Production-ready</h3><p>Steep is very reliable and has been used in production for many years to execute workflows from various domains. The source code has a very high test coverage.</p></div><div class="rounded-md border border-gray-300 px-4 py-3 [&_p:last-child]:mb-2 bg-bg"><h3 class="mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]">Open-Source</h3><p>Steep is free and open-source. It is released under the<!-- --> <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>. The code can be found on<!-- --> <a href="https://github.com/steep-wms/steep">GitHub</a>. We will be more than happy to accept your contributions!</p></div></div></section></section><footer class="border-t border-gray-200 pb-20 pt-16 [&_a:hover]:text-gray-800 [&_a:hover]:underline [&_a]:text-gray-600 bg-bg"><section class="mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl"><div class="grid w-[40rem] max-w-full grid-cols-1 justify-items-center gap-8 self-start text-center sm:grid-cols-3 sm:justify-items-start sm:text-left"><div><a class="group" href="/"><img src="/images/steep-logo.svg" class="h-10 w-fit opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:hidden" width="1706.4" height="532.9" alt="Steep Logo" loading="lazy"/><img src="/images/steep-logo-white.svg" class="hidden h-10 w-fit opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:block" width="1706.4" height="532.9" alt="Steep Logo" loading="lazy"/></a></div><div><h2 class="mb-2 font-normal">Resources</h2><ul class="text-gray-600"><li><a href="/showcase/">Showcase</a></li><li><a href="/docs/">Docs</a></li><li><a href="/about/">About</a></li><li><a href="https://github.com/steep-wms/steep">GitHub</a></li></ul></div><div><h2 class="mb-2 font-normal">Legal</h2><ul class="text-gray-600"><li><a href="/legal-notice/">Legal notice</a></li><li><a href="/privacy-policy/">Privacy policy</a></li></ul></div></div><div class="mt-12 flex flex-col items-center gap-x-16 gap-y-8 text-center text-gray-600 sm:flex-row sm:justify-between sm:text-left"><div class="mt-1"><span data-br=":R38jtb:" data-brr="1" style="display:inline-block;vertical-align:top;text-decoration:inherit;text-wrap:balance">© 2013–<span>2025</span> <a href="https://igd.fraunhofer.de/">Fraunhofer Institute for Computer Graphics Research IGD</a></span><script>self.__wrap_n!=1&&self.__wrap_b(":R38jtb:",1)</script></div><div><a class="group" href="https://igd.fraunhofer.de/"><img src="/images/fraunhofer.svg" class="h-fit w-48 opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:hidden" width="301.647" height="82.609" alt="Fraunhofer Logo" loading="lazy"/><img src="/images/fraunhofer-light.svg" class="hidden h-fit w-48 opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:block" width="301.647" height="82.609" alt="Fraunhofer Logo" loading="lazy"/></a></div></div></section></footer><script src="/_next/static/chunks/webpack-b9e04c38aa234447.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[13521,[\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"177\",\"static/chunks/app/layout-a7aef5dfd7b0caa2.js\"],\"default\"]\n3:I[15244,[],\"\"]\n4:I[43866,[],\"\"]\n5:I[80532,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"Provider\"]\n6:I[67077,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"default\"]\n7:I[80532,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"default\"]\n8:I[52659,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static"])</script><script>self.__next_f.push([1,"/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"default\"]\n9:I[19527,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"default\"]\na:I[14944,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"default\"]\nb:I[16100,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76e"])</script><script>self.__next_f.push([1,"dc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"default\"]\nc:I[48173,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"\"]\nd:I[80532,[\"463\",\"static/chunks/ede5dfc2-f13776fe8cae522e.js\",\"173\",\"static/chunks/173-cdc6b61d9e360a93.js\",\"697\",\"static/chunks/697-08b61aa380a437f8.js\",\"856\",\"static/chunks/856-8c55f7a66b5a6470.js\",\"176\",\"static/chunks/176-283965ce13beb1df.js\",\"839\",\"static/chunks/839-836a6da2f390a554.js\",\"511\",\"static/chunks/511-dbfedc5e10a6c994.js\",\"499\",\"static/chunks/499-f1ab7f57dcd6d64b.js\",\"837\",\"static/chunks/837-2d3bff7a76edc73f.js\",\"77\",\"static/chunks/77-afc373c5602be637.js\",\"777\",\"static/chunks/777-18e2172948102c79.js\",\"974\",\"static/chunks/app/page-56a1d6c565810573.js\"],\"Balancer\"]\ne:I[86213,[],\"OutletBoundary\"]\n10:I[86213,[],\"MetadataBoundary\"]\n12:I[86213,[],\"ViewportBoundary\"]\n14:I[34835,[],\"\"]\n:HL[\"/_next/static/media/045832894acda0e9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/120a5a1920781bd0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/2744aa005c8cf586-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/46b92c15a48f3318-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7c7db451c1a82f61-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/da897b99eb1fe4a1-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_n"])</script><script>self.__next_f.push([1,"ext/static/css/db4f8dd2415fe9ef.css\",\"style\"]\n:HL[\"/_next/static/media/c714540e49ad5111-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/fede59014553a58a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2_vBANLCK7wpNsfzZil99\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/db4f8dd2415fe9ef.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_e7c3aa __variable_af6a35\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n if (localStorage.theme === \\\"dark\\\" || (!(\\\"theme\\\" in localStorage) \u0026\u0026 window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches)) {\\n document.documentElement.classList.add(\\\"dark\\\")\\n } else {\\n document.documentElement.classList.remove(\\\"dark\\\")\\n }\\n } catch (_) {}\\n \"}}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/x-icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"href\":\"/favicons/favicon-16x16.png\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"href\":\"/favicons/favicon-32x32.png\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"96x96\",\"href\":\"/favicons/favicon-96x96.png\"}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",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\"}]}]}]]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"children\":[[\"$\",\"$L6\",null,{\"fixed\":false}],[\"$\",\"section\",null,{\"id\":\"hero\",\"className\":\"__variable_e05c75 mx-auto mt-10 flex min-h-[780px] max-w-screen-2xl flex-col items-center justify-center px-2 md:mt-0\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mx-2 mb-5 text-center font-black text-[3.4rem] leading-[1.1] text-gray-900 xs:mx-8\",\"children\":[\"$\",\"$L7\",null,{\"children\":[\"Scale \",[\"$\",\"span\",null,{\"style\":{\"letterSpacing\":\"-0.3rem\"},\"children\":\"Y\"}],\"our Data\",\" \",[\"$\",\"span\",null,{\"style\":{\"letterSpacing\":\"-0.12rem\"},\"children\":\"W\"}],\"orkflows to New Heights\"]}]}],[\"$\",\"p\",null,{\"className\":\"prose-lead prose mx-6 text-center text-[1.55rem] leading-[1.4] text-gray-600\",\"children\":[\"$\",\"$L7\",null,{\"children\":[[\"$\",\"strong\",null,{\"className\":\"text-gray-700\",\"children\":\"Steep\"}],\" is a cloud-based workflow management system that orchestrates your microservices to process big data in a resource- and cost-efficient manner.\"]}]}],[\"$\",\"div\",null,{\"className\":\"relative mb-4 mt-14 h-60 w-full overflow-hidden\",\"children\":[\"$\",\"div\",null,{\"className\":\"absolute left-1/2 top-0 w-[76rem] -translate-x-1/2 px-24\",\"children\":[\"$\",\"$L8\",null,{}]}]}]]}],[\"$\",\"section\",null,{\"id\":\"example-workflow\",\"children\":[\"$\",\"$L9\",null,{}]}],[\"$\",\"section\",null,{\"id\":\"microservices\",\"className\":\"mt-32\",\"children\":[\"$\",\"$La\",null,{}]}],[\"$\",\"section\",null,{\"id\":\"cloud-support\",\"className\":\"mt-24\",\"children\":[\"$\",\"$Lb\",null,{}]}],[\"$\",\"section\",null,{\"id\":\"web-ui\",\"className\":\"mt-24\",\"children\":[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl 2xl:px-2\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 gap-8 lg:grid-cols-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"overflow-hidden rounded row-start-2 shadow-gray-800/10 [box-shadow:1px_2px_20px_var(--tw-shadow-color),1px_1px_8px_var(--tw-shadow-color)] dark:border dark:border-gray-200 lg:col-span-5 lg:row-start-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-[0.4rem] border-b border-gray-200 px-4 py-[0.6rem]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-[0.68rem] w-[0.68rem] rounded-full bg-[#ff5f55]\"}],[\"$\",\"div\",null,{\"className\":\"h-[0.68rem] w-[0.68rem] rounded-full bg-[#ffbe2d]\"}],[\"$\",\"div\",null,{\"className\":\"h-[0.68rem] w-[0.68rem] rounded-full bg-[#25c93f]\"}],\"$undefined\"]}],[\"$\",\"svg\",null,{\"viewBox\":\"0 0 2560 1600\",\"children\":[[\"$\",\"foreignObject\",null,{\"width\":\"100%\",\"height\":\"100%\",\"x\":0,\"y\":0,\"children\":[[\"$\",\"picture\",null,{\"className\":\"dark:hidden\",\"children\":[[\"$\",\"source\",null,{\"srcSet\":\"/images/webui-light-800.webp 800w, /images/webui-light-1280.webp 1280w, /images/webui-light-2560.webp 2560w\",\"sizes\":\"(max-width: 992px) 100vw, 60vw\",\"type\":\"image/webp\",\"width\":2560,\"height\":1600}],[\"$\",\"img\",null,{\"src\":\"/images/webui-light-800.png\",\"srcSet\":\"/images/webui-light-800.png 800w, /images/webui-light-1280.png 1280w, /images/webui-light-2560.png 2560w\",\"sizes\":\"(max-width: 992px) 100vw, 60vw\",\"alt\":\"Web-based user interface\",\"width\":2560,\"height\":1600,\"loading\":\"lazy\"}]]}],[\"$\",\"picture\",null,{\"className\":\"hidden dark:block\",\"children\":[[\"$\",\"source\",null,{\"srcSet\":\"/images/webui-dark-800.webp 800w, /images/webui-dark-1280.webp 1280w, /images/webui-dark-2560.webp 2560w\",\"sizes\":\"(max-width: 992px) 100vw, 60vw\",\"type\":\"image/webp\",\"width\":2560,\"height\":1600}],[\"$\",\"img\",null,{\"src\":\"/images/webui-dark-800.png\",\"srcSet\":\"/images/webui-dark-800.png 800w, /images/webui-dark-1280.png 1280w, /images/webui-dark-2560.png 2560w\",\"sizes\":\"(max-width: 992px) 100vw, 60vw\",\"alt\":\"Web-based user interface\",\"width\":2560,\"height\":1600,\"loading\":\"lazy\"}]]}]]}],[\"$\",\"rect\",null,{\"x\":2050,\"y\":340,\"width\":130,\"height\":110,\"className\":\"fill-white dark:fill-[#1b202b]\"}],[\"$\",\"g\",null,{\"transform\":\"translate(2065 340)\",\"children\":[\"$\",\"g\",null,{\"className\":\"origin-center animate-spin-4s [transform-box:fill-box]\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":110,\"height\":110,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-rotate-cw stroke-[#6e757c] dark:stroke-[#e3e8ef]\",\"children\":[[\"$\",\"path\",\"1p45f6\",{\"d\":\"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\"}],[\"$\",\"path\",\"1q7to0\",{\"d\":\"M21 3v5h-5\"}],\"$undefined\"]}]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"text-md prose row-start-1 text-center text-gray-800 lg:col-span-3 lg:row-start-1 lg:mt-16 lg:text-left\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-0 text-[1.8em] font-normal leading-[1.6]\",\"children\":\"Web user interface\"}],[\"$\",\"p\",null,{\"className\":\"lead\",\"children\":\"Submit workflows, monitor their progress, and review Steep’s configuration.\"}]]}]]}]}]}],[\"$\",\"section\",null,{\"id\":\"more-features\",\"className\":\"mt-32 bg-gradient-to-b from-gray-100/0 to-gray-100 pb-32\",\"children\":[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl prose 2xl:px-2\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-0 text-center text-[1.8em] font-normal leading-[1.6]\",\"children\":\"But wait, there’s more!\"}],[\"$\",\"p\",null,{\"className\":\"lead text-center\",\"children\":\"See what other features Steep has to offer.\"}],[\"$\",\"div\",null,{\"className\":\"prose-sm mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-md border border-gray-300 px-4 py-3 [\u0026_p:last-child]:mb-2 bg-bg\",\"children\":[\"$undefined\",[[\"$\",\"h3\",null,{\"className\":\"mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]\",\"children\":\"Automatic failover\"}],[\"$\",\"p\",null,{\"children\":\"Workflows or individual services can automatically be retried in case of an error, and crashed workflows can be resumed without information loss.\"}]]]}],[\"$\",\"div\",null,{\"className\":\"rounded-md border border-gray-300 px-4 py-3 [\u0026_p:last-child]:mb-2 bg-bg\",\"children\":[\"$undefined\",[[\"$\",\"h3\",null,{\"className\":\"mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]\",\"children\":\"Cyclic workflows\"}],[\"$\",\"p\",null,{\"children\":\"Submit cyclic workflow graphs without a priori runtime knowledge. Workflows are converted incrementally and on-demand to so-called process chains.\"}]]]}],[\"$\",\"div\",null,{\"className\":\"rounded-md border border-gray-300 px-4 py-3 [\u0026_p:last-child]:mb-2 bg-bg\",\"children\":[\"$undefined\",[[\"$\",\"h3\",null,{\"className\":\"mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]\",\"children\":\"Languages and runtimes\"}],[\"$\",\"p\",null,{\"children\":\"Custom runtimes enable your team to develop microservices in various programming languages and with different frameworks. This allows you to focus on the task at hand.\"}]]]}],[\"$\",\"div\",null,{\"className\":\"rounded-md border border-gray-300 px-4 py-3 [\u0026_p:last-child]:mb-2 bg-bg\",\"children\":[\"$undefined\",[[\"$\",\"h3\",null,{\"className\":\"mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]\",\"children\":\"Interfaces and extensibility\"}],[\"$\",\"p\",null,{\"children\":\"Use the REST-like HTTP interface in your applications to submit workflows or to fetch information during execution. Write your own plugins to customize Steep.\"}]]]}],[\"$\",\"div\",null,{\"className\":\"rounded-md border border-gray-300 px-4 py-3 [\u0026_p:last-child]:mb-2 bg-bg\",\"children\":[\"$undefined\",[[\"$\",\"h3\",null,{\"className\":\"mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]\",\"children\":\"Production-ready\"}],[\"$\",\"p\",null,{\"children\":\"Steep is very reliable and has been used in production for many years to execute workflows from various domains. The source code has a very high test coverage.\"}]]]}],[\"$\",\"div\",null,{\"className\":\"rounded-md border border-gray-300 px-4 py-3 [\u0026_p:last-child]:mb-2 bg-bg\",\"children\":[\"$undefined\",[[\"$\",\"h3\",null,{\"className\":\"mb-[0.7rem] mt-0 text-[1.4em] font-normal leading-[1.4]\",\"children\":\"Open-Source\"}],[\"$\",\"p\",null,{\"children\":[\"Steep is free and open-source. It is released under the\",\" \",[\"$\",\"a\",null,{\"href\":\"http://www.apache.org/licenses/LICENSE-2.0\",\"children\":\"Apache License, Version 2.0\"}],\". The code can be found on\",\" \",[\"$\",\"a\",null,{\"href\":\"https://github.com/steep-wms/steep\",\"children\":\"GitHub\"}],\". We will be more than happy to accept your contributions!\"]}]]]}]]}]]}]}],[\"$\",\"footer\",null,{\"className\":\"border-t border-gray-200 pb-20 pt-16 [\u0026_a:hover]:text-gray-800 [\u0026_a:hover]:underline [\u0026_a]:text-gray-600 bg-bg\",\"children\":[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"mx-auto flex flex-col px-2 sm:px-4 lg:px-6 max-w-screen-xl\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid w-[40rem] max-w-full grid-cols-1 justify-items-center gap-8 self-start text-center sm:grid-cols-3 sm:justify-items-start sm:text-left\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/\",\"className\":\"group\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/images/steep-logo.svg\",\"className\":\"h-10 w-fit opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:hidden\",\"width\":1706.4,\"height\":532.9,\"alt\":\"Steep Logo\",\"loading\":\"lazy\"}],[\"$\",\"img\",null,{\"src\":\"/images/steep-logo-white.svg\",\"className\":\"hidden h-10 w-fit opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:block\",\"width\":1706.4,\"height\":532.9,\"alt\":\"Steep Logo\",\"loading\":\"lazy\"}]]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-2 font-normal\",\"children\":\"Resources\"}],[\"$\",\"ul\",null,{\"className\":\"text-gray-600\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/showcase\",\"children\":\"Showcase\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/docs\",\"children\":\"Docs\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/about\",\"children\":\"About\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"https://github.com/steep-wms/steep\",\"children\":\"GitHub\"}]}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-2 font-normal\",\"children\":\"Legal\"}],[\"$\",\"ul\",null,{\"className\":\"text-gray-600\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/legal-notice\",\"children\":\"Legal notice\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"/privacy-policy\",\"children\":\"Privacy policy\"}]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-12 flex flex-col items-center gap-x-16 gap-y-8 text-center text-gray-600 sm:flex-row sm:justify-between sm:text-left\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mt-1\",\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"© 2013–\",[\"$\",\"span\",null,{\"suppressHydrationWarning\":true,\"children\":2025}],\" \",[\"$\",\"$Lc\",null,{\"href\":\"https://igd.fraunhofer.de/\",\"children\":\"Fraunhofer Institute for Computer Graphics Research IGD\"}]]}]}],[\"$\",\"div\",null,{\"children\":[\"$\",\"$Lc\",null,{\"href\":\"https://igd.fraunhofer.de/\",\"className\":\"group\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/images/fraunhofer.svg\",\"className\":\"h-fit w-48 opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:hidden\",\"width\":301.647,\"height\":82.609,\"alt\":\"Fraunhofer Logo\",\"loading\":\"lazy\"}],[\"$\",\"img\",null,{\"src\":\"/images/fraunhofer-light.svg\",\"className\":\"hidden h-fit w-48 opacity-70 grayscale transition-all group-hover:opacity-100 group-hover:grayscale-0 dark:block\",\"width\":301.647,\"height\":82.609,\"alt\":\"Fraunhofer Logo\",\"loading\":\"lazy\"}]]}]}]]}]]}]}]]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fede59014553a58a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"LXbSA19nQHMNGGM98moND\",{\"children\":[[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Steep\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Scientific Workflows in the Cloud\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Michel Krämer\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index,follow\"}]]\n"])</script><script>self.__next_f.push([1,"f:null\n"])</script></body></html>