1<!DOCTYPE html><html lang="en"><head> 2 <meta charset="UTF-8"> 3 <link rel="icon" type="image/svg+xml" href="/favicon.svg"> 4 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 5 <link rel="apple-touch-icon" href="/apple-touch-icon.png"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <!-- Start cookieyes banner --> 8
8<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/e2418399516131788156f7d1568d4f2e/script.js"></script>
8 9 <!-- End cookieyes banner --> 10 <title>Infrastructure for autonomous software - deploy apps & AI agents in the EU · orkestr</title> 11 <meta name="description" content="The EU cloud where AI agents ship and operate real software, not just write it. Deploy apps, run untrusted code in isolated sandboxes, and give every agent a scoped identity with an approval gate and a full audit trail."> 12 <link rel="canonical" href="https://orkestr.eu/"> 13 14 <!-- Open Graph --> 15 <meta property="og:type" content="website"> 16 <meta property="og:url" content="https://orkestr.eu/"> 17 <meta property="og:title" content="Infrastructure for autonomous software - deploy apps & AI agents in the EU · orkestr"> 18 <meta property="og:description" content="The EU cloud where AI agents ship and operate real software, not just write it. Deploy apps, run untrusted code in isolated sandboxes, and give every agent a scoped identity with an approval gate and a full audit trail."> 19 <meta property="og:image" content="https://orkestr.eu/og-image.png"> 20 <meta property="og:image:type" content="image/png"> 21 <meta property="og:image:width" content="1200"> 22 <meta property="og:image:height" content="630"> 23 <meta property="og:image:alt" content="orkestr - deploy, execute, delegate. EU-hosted platform for apps, functions, sandboxes, and AI workers."> 24 <meta property="og:locale" content="en_US"> 25 <meta property="og:site_name" content="orkestr"> 26 27 <!-- Twitter Card --> 28 <meta name="twitter:card" content="summary_large_image"> 29 <meta name="twitter:site" content="@orkestrdoteu"> 30 <meta name="twitter:title" content="Infrastructure for autonomous software - deploy apps & AI agents in the EU · orkestr"> 31 <meta name="twitter:description" content="The EU cloud where AI agents ship and operate real software, not just write it. Deploy apps, run untrusted code in isolated sandboxes, and give every agent a scoped identity with an approval gate and a full audit trail."> 32 <meta name="twitter:image" content="https://orkestr.eu/og-image.png"> 33 <meta name="twitter:image:alt" content="orkestr - deploy, execute, delegate. EU infrastructure for autonomous software: apps, sandboxes, and AI agents under scoped identities."> 34 35 <!-- Structured data: Organization + product + offers --> 36
36<script type="application/ld+json"> 37 { 38 "@context": "https://schema.org", 39 "@graph": [ 40 { 41 "@type": "Organization", 42 "@id": "https://orkestr.eu/#organization", 43 "name": "orkestr", 44 "url": "https://orkestr.eu/", 45 "logo": "https://orkestr.eu/logo-full.png", 46 "description": "EU infrastructure for autonomous software. Deploy apps and functions, run agent-generated code in isolated sandboxes, and give AI agents scoped identities with approval gates, all in the EU.", 47 "email": "[email protected]", 48 "sameAs": [ 49 "https://x.com/orkestrdoteu", 50 "https://www.linkedin.com/company/orkestr-eu/", 51 "https://www.youtube.com/@orkestrdoteu", 52 "https://discord.gg/fmuupsTVPR", 53 "https://www.instagram.com/orkestr.eu/", 54 "https://www.reddit.com/r/orkestr/" 55 ] 56 }, 57 { 58 "@type": "WebSite", 59 "@id": "https://orkestr.eu/#website", 60 "name": "orkestr", 61 "url": "https://orkestr.eu/", 62 "publisher": { "@id": "https://orkestr.eu/#organization" } 63 }, 64 { 65 "@type": "SoftwareApplication", 66 "name": "orkestr", 67 "url": "https://orkestr.eu/", 68 "applicationCategory": "DeveloperApplication", 69 "operatingSystem": "Web", 70 "description": "EU infrastructure for autonomous software: deploy apps and containers, run serverless functions, spin up isolated sandboxes for agent-generated code, and run AI agents under scoped identities with approval gates and a full audit trail. Connect GitHub, GitLab, Bitbucket, or Codeberg.", 71 "publisher": { "@id": "https://orkestr.eu/#organization" }, 72 "offers": [ 73 { "@type": "Offer", "name": "Starter", "price": "0", "priceCurrency": "EUR" }, 74 { "@type": "Offer", "name": "Pro", "price": "9.99", "priceCurrency": "EUR" }, 75 { "@type": "Offer", "name": "Team", "price": "29.99", "priceCurrency": "EUR" } 76 ] 77 } 78 ] 79 } 80 </script>
80 81
81<script type="module" crossorigin="" src="/assets/index-_2mZwfCB.js"></script>
81 82 <link rel="stylesheet" crossorigin="" href="/assets/index-Dg7lGk9P.css"> 83 <style id="altcha-css">:root { 84 --altcha-border-color: var(--altcha-color-neutral); 85 --altcha-border-width: 1px; 86 --altcha-border-radius: 6px; 87 --altcha-color-base: light-dark(oklch(100% 0.00011 271.152), oklch(20.904% 0.00002 271.152)); 88 --altcha-color-base-content: light-dark( 89 oklch(20.904% 0.00002 271.152), 90 oklch(100% 0.00011 271.152) 91 ); 92 --altcha-color-error: oklch(51.284% 0.20527 28.678); 93 --altcha-color-error-content: oklch(100% 0.00011 271.152); 94 --altcha-color-neutral: light-dark(oklch(83.591% 0.0001 271.152), oklch(46.04% 0.00005 271.152)); 95 --altcha-color-neutral-content: light-dark( 96 oklch(46.76% 0.00005 271.152), 97 oklch(100% 0.00011 271.152) 98 ); 99 --altcha-color-primary: oklch(40.279% 0.2449 268.131); 100 --altcha-color-primary-content: oklch(100% 0.00011 271.152); 101 --altcha-color-success: oklch(55.748% 0.18968 142.511); 102 --altcha-color-success-content: oklch(100% 0.00011 271.152); 103 --altcha-checkbox-border-color: light-dark( 104 oklch(66.494% 0.00233 15.434), 105 oklch(51.028% 0.00006 271.152) 106 ); 107 --altcha-checkbox-border-radius: 5px; 108 --altcha-checkbox-border-width: var(--altcha-border-width); 109 --altcha-checkbox-outline: 2px solid var(--altcha-checkbox-outline-color); 110 --altcha-checkbox-outline-color: -webkit-focus-ring-color; 111 --altcha-checkbox-outline-offset: 2px; 112 --altcha-checkbox-size: 22px; 113 --altcha-checkbox-transition-duration: var(--altcha-transition-duration); 114 --altcha-input-background-color: var(--altcha-color-base); 115 --altcha-input-border-radius: 3px; 116 --altcha-input-border-width: 1px; 117 --altcha-input-color: var(--altcha-color-base-content); 118 --altcha-max-width: 320px; 119 --altcha-padding: 0.75rem; 120 --altcha-popover-arrow-size: 6px; 121 --altcha-popover-color: var(--altcha-border-color); 122 --altcha-shadow: drop-shadow(3px 3px 6px oklch(0% 0 0 / 0.2)); 123 --altcha-spinner-color: var(--altcha-color-base-content); 124 --altcha-switch-background-color: var(--altcha-color-neutral); 125 --altcha-switch-border-radius: calc(infinity * 1px); 126 --altcha-switch-height: var(--altcha-checkbox-size); 127 --altcha-switch-padding: 0.25rem; 128 --altcha-switch-width: calc(var(--altcha-checkbox-size) * 1.75); 129 --altcha-switch-toggle-border-radius: 100%; 130 --altcha-switch-toggle-color: var(--altcha-color-neutral-content); 131 --altcha-switch-toggle-size: calc( 132 var(--altcha-switch-height) - calc(var(--altcha-switch-padding) * 2) 133 ); 134 --altcha-transition-duration: 0.6s; 135 --altcha-z-index: 99999999; 136 --altcha-z-index-popover: 999999999; 137} 138 139@supports (-moz-appearance: none) { 140 :root { 141 --altcha-checkbox-outline-color: var(--altcha-color-primary); 142 } 143} 144.altcha { 145 all: revert-layer; 146 display: none; 147 font-family: inherit; 148 font-size: inherit; 149 position: relative; 150} 151.altcha[data-visible] { 152 display: block; 153} 154.altcha-popover, .altcha-popover * { 155 all: revert-layer; 156 box-sizing: border-box; 157 font-family: inherit; 158 font-size: inherit; 159 line-height: 1.25; 160} 161.altcha * { 162 all: revert-layer; 163 box-sizing: border-box; 164 font-family: inherit; 165 font-size: inherit; 166 line-height: 1.25; 167} 168.altcha a, .altcha-popover a { 169 color: currentColor; 170 text-decoration: none; 171} 172.altcha a:hover, .altcha-popover a:hover { 173 color: currentColor; 174} 175.altcha-main { 176 align-items: start; 177 background-color: var(--altcha-color-base); 178 border: var(--altcha-border-width, 1px) solid var(--altcha-border-color); 179 border-radius: var(--altcha-border-radius, 0); 180 color: var(--altcha-color-base-content); 181 display: flex; 182 flex-direction: column; 183 gap: 0.5rem; 184 justify-content: space-between; 185 padding: var(--altcha-padding); 186 max-width: var(--altcha-max-width, 100%); 187} 188.altcha-main > * { 189 display: flex; 190 width: 100%; 191} 192.altcha-main > *:first-child { 193 flex-grow: 1; 194} 195.altcha-checkbox-wrap { 196 align-items: center; 197 display: flex; 198 flex-direction: row; 199 flex-grow: 1; 200 gap: 0.5rem; 201} 202.altcha-checkbox-wrap > * { 203 display: flex; 204} 205.altcha-logo { 206 opacity: 0.7; 207} 208.altcha-footer { 209 align-items: center; 210 display: flex; 211 flex-grow: 1; 212 gap: 0.5rem; 213 justify-content: flex-end; 214 font-size: 0.7rem; 215 opacity: 0.7; 216} 217.altcha-footer p { 218 margin: 0; 219 padding: 0; 220} 221.altcha-error { 222 font-size: 0.85rem; 223} 224.altcha-button { 225 align-items: center; 226 background: var(--altcha-color-primary); 227 border: var(--altcha-input-border-width) solid var(--altcha-color-primary); 228 border-radius: var(--altcha-input-border-radius); 229 color: var(--altcha-color-primary-content); 230 cursor: pointer; 231 display: flex; 232 font-size: 0.9rem; 233 gap: 0.5rem; 234 padding: 0.35rem; 235} 236.altcha-button:focus { 237 border-color: var(--altcha-color-primary); 238 outline: var(--altcha-checkbox-outline); 239 outline-offset: var(--altcha-checkbox-outline-offset); 240} 241.altcha-button > .altcha-spinner, .altcha-button > svg { 242 height: 20px;
243 width: 20px; 244} 245.altcha-button-secondary { 246 background: transparent; 247 border-color: var(--altcha-color-neutral); 248 color: var(--altcha-color-neutral-content); 249} 250.altcha-input { 251 background: var(--altcha-input-background-color); 252 border: var(--altcha-input-border-width) solid var(--altcha-color-neutral); 253 border-radius: var(--altcha-input-border-radius); 254 color: var(--altcha-input-color); 255 flex-grow: 1; 256 font-size: 1rem; 257 min-width: 0; 258 padding: 0.25rem; 259 width: auto; 260} 261.altcha-input:focus { 262 border-color: var(--altcha-color-primary); 263 outline: var(--altcha-checkbox-outline); 264 outline-offset: var(--altcha-checkbox-outline-offset); 265} 266.altcha-spinner { 267 animation: altcha-rotate 0.6s linear infinite; 268 border-radius: 100%; 269 border: var(--altcha-checkbox-border-width) solid var(--altcha-spinner-color); 270 border-bottom-color: transparent; 271 border-right-color: transparent; 272 opacity: 0.7; 273} 274.altcha-popover { 275 background-color: var(--altcha-color-base); 276 border: var(--altcha-border-width) solid var(--altcha-border-color); 277 border-radius: var(--altcha-border-radius); 278 color: var(--altcha-color-base-content); 279 filter: var(--altcha-shadow); 280 position: absolute; 281 left: calc(var(--altcha-padding) / 2); 282 max-width: calc(var(--altcha-max-width) - var(--altcha-padding)); 283 top: calc(var(--altcha-padding) + var(--altcha-checkbox-size) + var(--altcha-popover-arrow-size)); 284 z-index: var(--altcha-z-index-popover); 285} 286.altcha-popover-arrow { 287 border: var(--altcha-popover-arrow-size) solid transparent; 288 border-bottom-color: var(--altcha-popover-color); 289 content: ""; 290 height: 0; 291 left: calc(var(--altcha-checkbox-size) / 2); 292 position: absolute; 293 top: calc(var(--altcha-popover-arrow-size) * -2); 294 width: 0; 295} 296.altcha-popover-content { 297 max-height: 100dvh; 298 overflow: auto; 299 padding: var(--altcha-padding); 300} 301.altcha-popover[data-top=true][data-display=standard] { 302 bottom: calc(100% - (var(--altcha-padding) - var(--altcha-popover-arrow-size))); 303 top: auto; 304} 305.altcha-popover[data-top=true][data-display=standard] .altcha-popover-arrow { 306 border-bottom-color: transparent; 307 border-top-color: var(--altcha-popover-color); 308 bottom: calc(var(--altcha-popover-arrow-size) * -2); 309 top: auto; 310} 311.altcha-popover[data-variant=error] { 312 --altcha-popover-color: var(--altcha-color-error); 313 background-color: var(--altcha-color-error); 314 border-color: var(--altcha-color-error); 315 color: var(--altcha-color-error-content); 316} 317.altcha-popover[data-variant=error] .altcha-popover-content { 318 padding: calc(var(--altcha-padding) / 1.5) var(--altcha-padding); 319} 320.altcha-popover[data-display=overlay] { 321 animation: altcha-overlay-slidein 0.5s forwards; 322 left: 50%; 323 position: fixed; 324 top: 45%; 325 transform: translate(-50%, -50%); 326 width: var(--altcha-max-width); 327 z-index: var(--altcha-z-index); 328} 329.altcha-popover[data-display=bottomsheet] { 330 animation: altcha-bottomsheet-slideup 0.5s forwards; 331 border-bottom-left-radius: 0; 332 border-bottom-right-radius: 0; 333 border-bottom: 0; 334 bottom: -100%; 335 left: 50%; 336 position: fixed; 337 top: auto; 338 transform: translate(-50%, 0); 339 width: var(--altcha-max-width); 340 z-index: var(--altcha-z-index); 341} 342.altcha-popover[data-display=bottomsheet] .altcha-popover-content { 343 padding-bottom: calc(var(--altcha-padding) * 2); 344} 345.altcha-popover-backdrop { 346 background: var(--altcha-color-base-content); 347 bottom: 0; 348 left: 0; 349 opacity: 0.1; 350 position: fixed; 351 right: 0; 352 top: 0; 353 transition: opacity 0.5s; 354 z-index: var(--altcha-z-index); 355} 356.altcha-popover-close { 357 color: var(--altcha-color-base-content); 358 cursor: pointer; 359 display: inline-block; 360 font-size: 1rem; 361 height: 1.25rem; 362 line-height: 0.95; 363 position: absolute; 364 right: 0; 365 text-align: center; 366 text-shadow: 0 0 1px var(--altcha-color-base); 367 top: -1.5rem; 368 width: 1.25rem; 369 z-index: var(--altcha-z-index); 370} 371[dir=rtl] .altcha-popover { 372 left: auto; 373 right: calc(var(--altcha-padding) / 2); 374} 375[dir=rtl] .altcha-popover-arrow { 376 left: auto; 377 right: calc(var(--altcha-checkbox-size) / 2); 378} 379[dir=rtl] .altcha-popover-close { 380 left: 0; 381 right: auto; 382} 383.altcha-popover[data-display=bottomsheet] .altcha-footer, .altcha-popover[data-display=overlay] .altcha-footer { 384 align-items: center; 385 justify-content: center; 386 padding-top: 1rem; 387 gap: 0.5rem; 388} 389.altcha-popover[data-display=bottomsheet] .altcha-footer svg, .altcha-popover[data-display=overlay] .altcha-footer svg { 390 height: 18px; 391 width: 18px; 392 vertical-align: middle; 393} 394.altcha-code-challenge > form { 395 display: flex; 396 flex-direction: column; 397 gap: 0.5rem; 398} 399.altcha-code-challenge-title { 400 font-weight: 600; 401} 402.altcha-code-challenge-text { 403 font-size: 0.85rem; 404} 405.altcha-code-challenge-image { 406 background: white; 407 border: var(--altcha-input-border-width) solid var(--altcha-color-neutral); 408 border-radius: var(--altcha-input-border-radius); 409 object-fit: contain; 410 height: 50px; 411} 412.altcha-code-challenge-row { 413 display: flex; 414 gap: 0.5rem; 415} 416.altcha-code-challenge-buttons { 417 align-items: center; 418 display: flex; 419 flex-direction: column; 420 gap: 0.5rem; 421 margin-top: var(--altcha-padding); 422 justify-content: space-between; 423} 424.altcha-code-challenge-buttons button { 425 justify-content: center; 426 width: 100%; 427} 428.altcha-checkbox { 429 cursor: pointer; 430 height: var(--altcha-checkbox-size); 431 position: relative; 432 width: var(--altcha-checkbox-size); 433} 434.altcha-checkbox input { 435 appearance: none; 436 background: var(--altcha-input-background-color); 437 border: var(--altcha-checkbox-border-width, 2px) solid var(--altcha-checkbox-border-color); 438 border-radius: var(--altcha-checkbox-border-radius); 439 cursor: pointer; 440 height: var(--altcha-checkbox-size); 441 left: 0; 442 margin: 0; 443 padding: 0; 444 position: absolute; 445 top: 0; 446 width: var(--altcha-checkbox-size); 447} 448.altcha-checkbox input:before { 449 border-radius: var(--altcha-checkbox-border-radius); 450 content: ""; 451 width: 100%; 452 height: 100%; 453 background: var(--altcha-color-neutral); 454 display: block; 455 transform: scale(0); 456} 457.altcha-checkbox input:checked { 458 background-color: var(--altcha-color-success); 459 border-color: var(--altcha-color-success); 460} 461.altcha-checkbox input:checked::before { 462 background-color: var(--altcha-color-success); 463 opacity: 0; 464 transform: scale(2.2); 465 transition: all var(--altcha-checkbox-transition-duration) ease; 466 transition-delay: 0.1s; 467} 468.altcha-checkbox svg { 469 --altcha-radio-svg-size: calc(var(--altcha-checkbox-size) * 0.5); 470 --altcha-radio-svg-offset: calc(var(--altcha-checkbox-size) * 0.25); 471 fill: none; 472 left: var(--altcha-radio-svg-offset); 473 height: var(--altcha-radio-svg-size); 474 opacity: 0; 475 position: absolute; 476 stroke: currentColor; 477 stroke-width: 2; 478 stroke-linecap: round; 479 stroke-linejoin: round; 480 stroke-dasharray: 16px; 481 stroke-dashoffset: 16px; 482 top: var(--altcha-radio-svg-offset); 483 transform: translate3d(0, 0, 0); 484 width: var(--altcha-radio-svg-size); 485} 486.altcha-checkbox input:checked + svg {
487 color: var(--altcha-color-success-content); 488 opacity: 1; 489 stroke-dashoffset: 0; 490 transition: all var(--altcha-checkbox-transition-duration) ease; 491 transition-delay: 0.1s; 492} 493.altcha-checkbox-spinner { 494 display: none; 495 left: 0; 496 height: var(--altcha-checkbox-size); 497 position: absolute; 498 top: 0; 499 width: var(--altcha-checkbox-size); 500} 501.altcha-checkbox[data-loading=true] input { 502 appearance: none; 503 opacity: 0; 504 pointer-events: none; 505} 506.altcha-checkbox[data-loading=true] .altcha-checkbox-spinner { 507 display: block; 508} 509.altcha-checkbox-native { 510 height: var(--altcha-checkbox-size); 511 position: relative; 512 width: var(--altcha-checkbox-size); 513} 514.altcha-checkbox-native input { 515 height: var(--altcha-checkbox-size); 516 margin: 0; 517 width: var(--altcha-checkbox-size); 518} 519.altcha-checkbox-native-spinner { 520 display: none; 521 left: 0; 522 height: var(--altcha-checkbox-size); 523 position: absolute; 524 top: 0; 525 width: var(--altcha-checkbox-size); 526} 527.altcha-checkbox-native[data-loading=true] input { 528 appearance: none; 529 opacity: 0; 530 pointer-events: none; 531} 532.altcha-checkbox-native[data-loading=true] .altcha-checkbox-native-spinner { 533 display: block; 534} 535.altcha-switch { 536 align-items: center; 537 border-radius: var(--altcha-switch-border-radius); 538 background-color: var(--altcha-switch-background-color); 539 display: flex; 540 height: var(--altcha-switch-height); 541 padding: var(--altcha-switch-padding); 542 position: relative; 543 width: var(--altcha-switch-width); 544} 545.altcha-switch:focus-within { 546 outline: var(--altcha-checkbox-outline); 547 outline-offset: var(--altcha-checkbox-outline-offset); 548} 549.altcha-switch input { 550 appearance: none; 551 cursor: pointer; 552 height: 100%; 553 left: 0; 554 opacity: 0; 555 position: absolute; 556 top: 0; 557 width: 100%; 558} 559.altcha-switch-toggle { 560 align-items: center; 561 background-color: var(--altcha-switch-toggle-color); 562 border-radius: var(--altcha-switch-toggle-border-radius); 563 cursor: pointer; 564 display: flex; 565 height: var(--altcha-switch-toggle-size); 566 justify-content: center; 567 left: var(--altcha-switch-padding); 568 position: absolute; 569 transition: width 150ms ease-out, left 150ms ease-out; 570 width: var(--altcha-switch-toggle-size); 571} 572.altcha-switch-spinner { 573 display: none; 574 height: var(--altcha-switch-toggle-size); 575 width: var(--altcha-switch-toggle-size); 576} 577.altcha-switch[data-loading=true] { 578 pointer-events: none; 579} 580.altcha-switch[data-loading=true] .altcha-switch-spinner { 581 display: block; 582} 583.altcha-switch[data-loading=true] .altcha-switch-toggle { 584 background-color: transparent; 585 left: calc(50% - var(--altcha-switch-toggle-size) / 2); 586} 587[data-state=verified] .altcha-switch { 588 --altcha-switch-background-color: var(--altcha-color-success); 589} 590[data-state=verified] .altcha-switch-toggle { 591 background-color: var(--altcha-color-success-content); 592 left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding)); 593} 594[dir=rtl] .altcha-switch-toggle { 595 left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding)); 596} 597[dir=rtl][data-state=verified] .altcha-switch-toggle { 598 left: var(--altcha-switch-padding); 599} 600.altcha-floating-arrow { 601 border: 6px solid transparent; 602 border-bottom-color: var(--altcha-border-color); 603 content: ""; 604 height: 0; 605 left: 12px; 606 position: absolute; 607 top: -12px; 608 width: 0; 609} 610.altcha-overlay-backdrop { 611 bottom: 0; 612 left: 0; 613 position: fixed; 614 right: 0; 615 top: 0; 616 transition: opacity var(--altcha-transition-duration); 617 z-index: var(--altcha-z-index); 618} 619.altcha-overlay-close { 620 display: inline-block; 621 color: currentColor; 622 cursor: pointer; 623 font-size: 1rem; 624 height: 1rem; 625 line-height: 0.85; 626 position: absolute; 627 right: 0; 628 text-align: center; 629 text-shadow: 0 0 1px var(--altcha-color-base); 630 top: -1.5rem; 631 width: 1rem; 632 z-index: var(--altcha-z-index); 633} 634.altcha[data-display=overlay] { 635 animation: altcha-overlay-slidein var(--altcha-transition-duration) forwards; 636 filter: var(--altcha-shadow); 637 left: 50%; 638 opacity: 0; 639 position: fixed; 640 top: 45%; 641 transform: translate(-50%, -50%); 642 z-index: var(--altcha-z-index); 643} 644.altcha[data-display=overlay] .altcha-main { 645 width: var(--altcha-max-width); 646} 647.altcha[data-display=floating] { 648 display: none; 649 filter: var(--altcha-shadow); 650 left: var(--altcha-floating-left, -100%); 651 position: fixed; 652 top: var(--altcha-floating-top, -100%); 653 z-index: var(--altcha-z-index); 654} 655.altcha[data-display=floating] .altcha-main { 656 width: var(--altcha-max-width); 657} 658.altcha[data-display=floating][data-floating-position=top] .altcha-floating-arrow { 659 border-bottom-color: transparent; 660 border-top-color: var(--altcha-border-color); 661 bottom: -12px; 662 top: auto; 663} 664.altcha[data-display=floating][data-visible] { 665 display: flex; 666} 667.altcha[data-display=bar] { 668 bottom: -100%; 669 filter: var(--altcha-shadow); 670 left: 0; 671 position: fixed; 672 right: 0; 673 transition: bottom var(--altcha-transition-duration), top var(--altcha-transition-duration); 674 z-index: var(--altcha-z-index); 675} 676.altcha[data-display=bar] .altcha-main { 677 align-items: center; 678 border-radius: 0; 679 border-width: var(--altcha-border-width) 0 0 0; 680 flex-direction: row; 681 max-width: 100% !important; 682} 683.altcha[data-display=bar] .altcha-main > * { 684 width: auto; 685} 686.altcha[data-display=bar][data-placement=top] { 687 bottom: auto; 688 top: -100%; 689} 690.altcha[data-display=bar][data-placement=top] .altcha-main { 691 border-width: 0 0 var(--altcha-border-width) 0; 692} 693.altcha[data-display=bar][data-placement=bottom]:not([data-state=unverified
693]) { 694 bottom: 0; 695} 696.altcha[data-display=bar][data-placement=top]:not([data-state=unverified]) { 697 top: 0; 698} 699.altcha[data-display=invisible] { 700 display: none; 701} 702 703@keyframes altcha-rotate { 704 0% { 705 transform: rotate(0deg); 706 } 707 100% { 708 transform: rotate(360deg); 709 } 710} 711@keyframes altcha-bottomsheet-slideup { 712 100% { 713 bottom: 0; 714 } 715} 716@keyframes altcha-overlay-slidein { 717 100% { 718 opacity: 1; 719 top: 50%; 720 } 721}</style><meta name="twitter:url" content="https://orkestr.eu/"></head> 722 <body> 723 <div id="root"><div class="relative min-h-screen bg-white"><div aria-hidden="true" data-scroll-depth="25" class="pointer-events-none absolute left-0 h-px w-px" style="top: 25%;"></div><div aria-hidden="true" data-scroll-depth="50" class="pointer-events-none absolute left-0 h-px w-px" style="top: 50%;"></div><div aria-hidden="true" data-scroll-depth="75" class="pointer-events-none absolute left-0 h-px w-px" style="top: 75%;"></div><div aria-hidden="true" data-scroll-depth="100" class="pointer-events-none absolute left-0 h-px w-px" style="top: 100%;"></div><style> 724 @keyframes orkHeroUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } } 725 .ork-hero-up { animation: orkHeroUp .7s cubic-bezier(.22,1,.36,1) both; } 726 /* Tiny round dots flowing toward the hub. dasharray period = 4, offset 727 travels exactly 2 periods (-8) so the loop is seamless (no jump). */ 728 @keyframes orkDash { to { stroke-dashoffset: -8; } } 729 .ork-wire { stroke-dasharray: 0.5 3.5; stroke-linecap: round; animation: orkDash 2.4s linear infinite; } 730 /* Two stacked copies translate from -50% to 0 = seamless left-to-right flow. */ 731 @keyframes orkMarquee { from { transform: translateX(-50%); } to { transform: translateX(0); } } 732 .ork-marquee { animation: orkMarquee linear infinite; width: max-content; } 733 .ork-marquee-row:hover .ork-marquee { animation-play-state: paused; } 734 /* Blinking terminal caret for the interactive hero console. */ 735 @keyframes orkCaret { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } } 736 .ork-caret { animation: orkCaret 1s infinite; } 737 /* Active-tab countdown bar - fills left to right over the step duration. */ 738 @keyframes orkTabFill { from { transform: scaleX(0); } to { transform: scaleX(1); } } 739 .ork-tabfill { transform-origin: left; animation-name: orkTabFill; animation-timing-function: linear; animation-fill-mode: forwards; } 740 @media (prefers-reduced-motion: reduce) { .ork-hero-up, .ork-wire, .ork-marquee, .ork-caret, .ork-tabfill { animation: none; } } 741 </style><nav class="fixed top-0 w-full z-50 bg-white/80 backdrop-blur-md border-b border-gray-100"><div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between"><a class="flex items-center gap-2" href="/" data-discover="true"><img alt="orkestr" class="w-8 h-8" src="/favicon.svg"><span class="text-lg font-bold text-gray-900">orkestr</span></a><div class="hidden md:flex items-center gap-5"><div class="relative"><button class="flex items-center gap-1 text-sm text-gray-600 hover:text-gray-900" aria-expanded="false">Solutions<svg class="w-3.5 h-3.5 transition-transform " fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></button></div><div class="relative"><button class="flex items-center gap-1 text-sm text-gray-600 hover:text-gray-900" aria-expanded="false">Use cases<svg class="w-3.5 h-3.5 transition-transform " fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></button></div><a class="text-sm text-gray-600 hover:text-gray-900" href="/integrations" data-discover="true">Integrations</a><a class="text-sm text-gray-600 hover:text-gray-900" href="/pricing" data-discover="true">Pricing</a><a class="text-sm text-gray-600 hover:text-gray-900" href="/docs" data-discover="true">Docs</a><a href="http://console.orkestr.eu/login" class="text-sm text-gray-600 hover:text-gray-900">Sign in</a><a href="http://console.orkestr.eu/register" class="px-4 py-2 bg-indigo-600 text-white text-sm font-medium rounded-lg hover:bg-indigo-700 transition-colors">Get Started</a></div><button class="md:hidden p-2 -mr-2 text-gray-700" aria-label="Toggle menu" aria-expanded="false"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path></svg></button></div></nav><section class="relative isolate overflow-hidden pt-32 pb-24 px-6" style="--mx: 50%; --my: 50%;"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-0"><div class="absolute inset-0" style="background-image: radial-gradient(circle, rgba(99, 102, 241, 0.14) 1px, transparent 1px); background-size: 24px 24px;"></div><div class="absolute inset-0" style="background-image: radial-gradient(circle, rgba(79, 70, 229, 0.7) 1px, transparent 1px); background-size: 24px 24px; mask-image: radial-gradient(300px circle at var(--mx) var(--my), black 10%, transparent 70%);"></div><div class="absolute inset-0" style="background: radial-gradient(420px circle at var(--mx) var(--my), rgba(99,102,241,0.07), transparent 70%);"></div></div><div class="relative z-10 max-w-4xl mx-auto text-center"><div class="inline-flex items-center gap-2 px-3 py-1 bg-indigo-50 text-indigo-700 rounded-full text-sm font-medium mb-8 ork-hero-up"><span class="w-2 h-2 bg-indigo-500 rounded-full animate-pulse"></span>
741Infrastructure for autonomous software<span class="text-indigo-400 font-normal" aria-hidden="true">/</span><span class="text-indigo-500 font-normal">Beta</span></div><h1 class="text-6xl md:text-8xl font-bold text-gray-900 tracking-tight leading-[0.95]"><span class="block ork-hero-up" style="animation-delay: 0ms;">Deploy<span class="text-indigo-600">.</span></span><span class="block ork-hero-up" style="animation-delay: 110ms;">Execute<span class="text-violet-600">.</span></span><span class="block ork-hero-up" style="animation-delay: 220ms;">Delegate<span class="text-fuchsia-500">.</span></span></h1><p class="mt-8 text-xl text-gray-500 max-w-2xl mx-auto leading-relaxed ork-hero-up" style="animation-delay: 340ms;">The cloud where AI agents ship and operate real software, not just write it. Every agent gets a scoped identity, an approval gate for anything irreversible, and an audit trail you can read. EU-hosted.</p><div class="mt-10 flex flex-col sm:flex-row gap-4 justify-center ork-hero-up" style="animation-delay: 440ms;"><a href="http://console.orkestr.eu/register" class="px-8 py-3.5 bg-indigo-600 text-white text-base font-medium rounded-xl hover:bg-indigo-700 transition-all hover:shadow-lg hover:shadow-indigo-200">Start for free</a><a href="#products" class="px-8 py-3.5 border border-gray-200 text-gray-700 text-base font-medium rounded-xl hover:bg-gray-50 transition-colors">Explore the platform</a></div><p class="mt-5 text-sm text-gray-400 ork-hero-up" style="animation-delay: 500ms;">Prefer a walkthrough? <button type="button" class="text-indigo-600 hover:text-indigo-700 font-medium">Book a demo</button></p></div><div class="relative z-10 max-w-3xl mx-auto mt-16 ork-hero-up" style="animation-delay: 560ms;"><div class="bg-gray-900 rounded-2xl shadow-2xl shadow-gray-900/20 overflow-hidden border border-gray-800"><div class="flex items-center gap-2 px-4 py-3 border-b border-gray-800"><div class="w-3 h-3 rounded-full bg-red-500/80"></div><div class="w-3 h-3 rounded-full bg-yellow-500/80"></div><div class="w-3 h-3 rounded-full bg-green-500/80"></div><span class="ml-2 text-xs text-gray-500 font-mono hidden sm:inline">orkestr - one platform</span><div class="ml-auto flex items-center gap-1.5"><button class="relative overflow-hidden px-2.5 py-1 rounded-md text-[11px] font-mono border cursor-pointer transition-colors bg-indigo-500/15 text-indigo-300 border-indigo-500/40">deploy<span class="ork-tabfill absolute left-0 bottom-0 h-0.5 w-full bg-current opacity-70" style="animation-duration: 3900ms;"></span></button><button class="relative overflow-hidden px-2.5 py-1 rounded-md text-[11px] font-mono border cursor-pointer transition-colors bg-transparent text-gray-500 border-transparent hover:text-gray-200 hover:bg-gray-800">execute</button><button class="relative overflow-hidden px-2.5 py-1 rounded-md text-[11px] font-mono border cursor-pointer transition-colors bg-transparent text-gray-500 border-transparent hover:text-gray-200 hover:bg-gray-800">delegate</button></div></div><div class="p-4 sm:p-6 font-mono text-xs sm:text-sm overflow-x-auto min-h-[148px]"><div class="flex gap-2 whitespace-nowrap"><span class="text-indigo-400 shrink-0">~/my-app $</span><span class="text-gray-200">git push or<span class="ork-caret text-gray-200">_</span></span></div><div class="mt-2 space-y-1"><div class="text-gray-500 transition-opacity duration-300 opacity-0">building image -> pushing -> routing...</div><div class="text-green-400 transition-opacity duration-300 opacity-0">live -> https://my-app.orkestr.run</div></div><div class="mt-4 pt-3 border-t border-gray-800 flex gap-2 whitespace-nowrap"><span class="text-gray-500 shrink-0">[done]</span><span class="text-green-300 font-semibold">ship apps, run code, delegate the rest</span></div></div></div></div></section><section id="products" class="py-24 border-t border-gray-100"><div class="max-w-6xl mx-auto px-6"><div class="text-center mb-16"><p class="text-sm font-semibold text-indigo-600 uppercase tracking-wider">One platform, three superpowers</p><h2 class="mt-3 text-3xl md:text-4xl font-bold text-gray-900">Everything you need to ship modern software</h2><p class="mt-4 text-lg text-gray-500 max-w-2xl mx-auto">Deploy your apps, execute code in seconds, and delegate the busywork to agents - all on one EU-hosted platform.</p></div><div class="grid grid-cols-1 lg:grid-cols-3 gap-6"><div class="group relative overflow-hidden rounded-2xl border border-gray-200 bg-white transition-colors flex flex-col group-hover:border-indigo-300"><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-40" style="background-image: radial-gradient(circle, rgba(99, 102, 241, 0.18) 1px, transparent 1px); background-size: 22px 22px;"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100" style="background-image: radial-gradient(circle, rgba(79, 70, 229, 0.9) 1p
741x, transparent 1px); background-size: 22px 22px; mask-image: radial-gradient(160px circle at var(--mx) var(--my), black 10%, transparent 70%);"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100" style="background: radial-gradient(220px circle at var(--mx) var(--my), rgba(99,102,241,0.10), transparent 70%);"></div><div class="relative h-full"><div class="p-7 flex flex-col h-full"><span class="self-start text-xs font-semibold uppercase tracking-wider px-2.5 py-1 rounded-full bg-indigo-50 text-indigo-700">Ship it without a human in the loop</span><h3 class="mt-4 text-3xl font-bold text-gray-900">Deploy<span class="text-indigo-600">.</span></h3><p class="mt-2 text-sm text-gray-500 leading-relaxed md:min-h-[5rem]">Connect a repo - we detect the framework, build a hardened image, and ship it in seconds. Add databases, functions, and PR previews in a click.</p><div class="mt-5 bg-gray-900 rounded-xl border border-gray-800 overflow-hidden"><div class="flex items-center gap-1.5 px-3 py-2 border-b border-gray-800"><div class="w-2 h-2 rounded-full bg-red-500/70"></div><div class="w-2 h-2 rounded-full bg-yellow-500/70"></div><div class="w-2 h-2 rounded-full bg-green-500/70"></div><span class="ml-1.5 text-[10px] text-gray-500 font-mono lowercase">Deploy</span></div><div class="p-4 font-mono text-[11px] leading-relaxed space-y-1"><div class="text-indigo-400">$ git push origin main</div><div class="text-gray-400">[analyze] Next.js detected</div><div class="text-gray-400">[build] image ready</div><div class="text-green-400">[live] my-app.orkestr.run</div></div></div><ul class="mt-5 space-y-2"><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-indigo-500"></span>40+ frameworks auto-detected</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-indigo-500"></span>Managed Postgres & Redis</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-indigo-500"></span>Serverless functions</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-indigo-500"></span>PR previews + one-click rollback</li></ul><a class="mt-6 inline-flex items-center gap-1.5 text-sm font-medium text-indigo-600 hover:text-indigo-700" href="/containers" data-discover="true">Explore deployments<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a></div></div></div><div class="group relative overflow-hidden rounded-2xl border border-gray-200 bg-white transition-colors flex flex-col group-hover:border-violet-300"><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-40" style="background-image: radial-gradient(circle, rgba(99, 102, 241, 0.18) 1px, transparent 1px); background-size: 22px 22px;"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100" style="background-image: radial-gradient(circle, rgba(79, 70, 229, 0.9) 1px, transparent 1px); background-size: 22px 22px; mask-image: radial-gradient(160px circle at var(--mx) var(--my), black 10%, transparent 70%);"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100" style="background: radial-gradient(220px circle at var(--mx) var(--my), rgba(99,102,241,0.10), transparent 70%);"></div><div class="relative h-full"><div class="p-7 flex flex-col h-full">
741<span class="self-start text-xs font-semibold uppercase tracking-wider px-2.5 py-1 rounded-full bg-violet-50 text-violet-700">Run code you have not read</span><h3 class="mt-4 text-3xl font-bold text-gray-900">Execute<span class="text-violet-600">.</span></h3><p class="mt-2 text-sm text-gray-500 leading-relaxed md:min-h-[5rem]">Spin up isolated Linux microVMs to run untrusted or agent-generated code. Millisecond start, pause between turns, metered by the second.</p><div class="mt-5 bg-gray-900 rounded-xl border border-gray-800 overflow-hidden"><div class="flex items-center gap-1.5 px-3 py-2 border-b border-gray-800"><div class="w-2 h-2 rounded-full bg-red-500/70"></div><div class="w-2 h-2 rounded-full bg-yellow-500/70"></div><div class="w-2 h-2 rounded-full bg-green-500/70"></div><span class="ml-1.5 text-[10px] text-gray-500 font-mono lowercase">Execute</span></div><div class="p-4 font-mono text-[11px] leading-relaxed space-y-1"><div class="text-violet-400">$ sandbox.run(code)</div><div class="text-gray-400">>>> sum([1, 2, 3])</div><div class="text-white">6</div><div class="text-green-400">exit 0 - 0.4s</div></div></div><ul class="mt-5 space-y-2"><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-violet-500"></span>Hardware-isolated microVMs</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-violet-500"></span>Run code via API, SDK or MCP</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-violet-500"></span>Pause & resume between turns</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-violet-500"></span>Metered to the second</li></ul><a class="mt-6 inline-flex items-center gap-1.5 text-sm font-medium text-violet-600 hover:text-violet-700" href="/sandboxes" data-discover="true">Explore sandboxes<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a></div></div></div><div class="group relative overflow-hidden rounded-2xl border border-gray-200 bg-white transition-colors flex flex-col group-hover:border-fuchsia-300"><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-40" style="background-image: radial-gradient(circle, rgba(99, 102, 241, 0.18) 1px, transparent 1px); background-size: 22px 22px;"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100" style="background-image: radial-gradient(circle, rgba(79, 70, 229, 0.9) 1px, transparent 1px); background-size: 22px 22px; mask-image: radial-gradient(160px circle at var(--mx) var(--my), black 10%, transparent 70%);"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100" style="background: radial-gradient(220px circle at var(--mx) var(--my), rgba(99,102,241,0.10), transparent 70%);"></div><div class="relative h-full"><div class="p-7 flex flex-col h-full">
741<span class="self-start text-xs font-semibold uppercase tracking-wider px-2.5 py-1 rounded-full bg-fuchsia-50 text-fuchsia-700">An identity you can revoke</span><h3 class="mt-4 text-3xl font-bold text-gray-900">Delegate<span class="text-fuchsia-600">.</span></h3><p class="mt-2 text-sm text-gray-500 leading-relaxed md:min-h-[5rem]">Give an agent a scoped identity to deploy, monitor, and react to your infrastructure - proposing changes for approval, or acting within guardrails.</p><div class="mt-5 bg-gray-900 rounded-xl border border-gray-800 overflow-hidden"><div class="flex items-center gap-1.5 px-3 py-2 border-b border-gray-800"><div class="w-2 h-2 rounded-full bg-red-500/70"></div><div class="w-2 h-2 rounded-full bg-yellow-500/70"></div><div class="w-2 h-2 rounded-full bg-green-500/70"></div><span class="ml-1.5 text-[10px] text-gray-500 font-mono lowercase">Delegate</span></div><div class="p-4 font-mono text-[11px] leading-relaxed space-y-1"><div class="text-fuchsia-400">worker: project-manager</div><div class="text-gray-400">event: deploy failed</div><div class="text-gray-400">> pulled logs, diagnosed</div><div class="text-green-400">> posted to #alerts</div></div></div><ul class="mt-5 space-y-2"><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-fuchsia-500"></span>Scoped agent identity</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-fuchsia-500"></span>Reacts to deploys & pull requests</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-fuchsia-500"></span>Approve actions before they run</li><li class="flex items-center gap-2 text-sm text-gray-600"><span class="w-1.5 h-1.5 rounded-full shrink-0 bg-fuchsia-500"></span>Reports to Slack, Discord, Linear</li></ul><a class="mt-6 inline-flex items-center gap-1.5 text-sm font-medium text-fuchsia-600 hover:text-fuchsia-700" href="/ai-workers" data-discover="true">Explore workers<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a></div></div></div></div></div></section><section class="py-24"><div class="max-w-6xl mx-auto px-6"><div class="text-center mb-16"><p class="text-sm font-semibold text-indigo-600 uppercase tracking-wider">One connected platform</p><h2 class="mt-3 text-3xl md:text-4xl font-bold text-gray-900">Everything wired to your project</h2><p class="mt-4 text-lg text-gray-500 max-w-2xl mx-auto">Databases, crons, functions, domains, monitoring - every capability snaps onto your project and talks to the rest. No glue code, no separate dashboards.</p></div><div class="hidden md:block relative mx-auto aspect-square max-w-3xl"><svg viewBox="0 0 100 100" preserveAspectRatio="none" class="absolute inset-0 w-full h-full" aria-hidden="true"><line x1="50" y1="50" x2="50" y2="7" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 0ms;"></line><line x1="50" y1="50" x2="71.5" y2="12.760907637269135" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 90ms;"></line><line x1="50" y1="50" x2="87.23909236273086" y2="28.5" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 180ms;"></line><line x1="50" y1="50" x2="93" y2="50" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 270ms;"></line><line x1="50" y1="50" x2="87.23909236273087" y2="71.5" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 360ms;"></line><line x1="50" y1="50" x2="71.5" y2="87.23909236273087" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 450ms;"></line><line x1="50" y1="50" x2="50" y2="93" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 540ms;"></line><line x1="50" y1="50" x2="28.49999999999999" y2="87.23909236273086" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 630ms;"></line><line x1="50" y1="50" x2="12.760907637269142" y2="71.50000000000001" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 720ms;"></line><line x1="50" y1="50" x2="7" y2="50.00000000000001" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 810ms;"></line><line x1="50" y1="50" x2="12.760907637269142" y2="28.499999999999996" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 900ms;"></line><line x1="50" y1="50" x2="28.499999999999982" y2="12.760907637269149" class="ork-wire" stroke="rgba(99,102,241,0.55)" stroke-width="0.55" style="animation-delay: 990ms;"></line></svg><div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-10"><div class="flex flex-col items-center justify-center w-32 h-32 rounded-2xl bg-gradient-to-br from-indigo-600 to-violet-600 text-white shadow-xl shadow-indigo-600/30"><svg class="w-8 h-8" viewBox="0 0 32 32" fill="none"><rect x="4" y="4" width="24" height="24" rx="7" fill="white" fill-opacity="0.15"></rect><path d="M11 16h10M16 11v10" stroke="white" stroke-width="2.4" stroke-linecap="round"></path></svg><span class="mt-2 text-xs font-semibold tracking-wide">Your project</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 50%; top: 7%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375 7.444 2.25 12 2.25s8.25 1.847 8.25 4.125zM3.75 6.375v11.25c0 2.278 3.694 4.125 8.25 4.125s8.25-1.847 8.25-4.125V6.375M3.75 12c0 2.278 3.694 4.125 8.25 4.125s8.25-1.847 8.25-4.125"></path></svg></span><span class="text-sm font-medium text-gray-700">Databases</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 71.5%; top: 12.7609%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></span><span class="text-sm font-medium text-gray-700">Crons & Jobs</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 87.2391%; top: 28.5%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z"></path></svg></span><span class="text-sm font-medium text-gray-700">Functions</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 93%; top: 50%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3l7 3v6c0 4.4-3 7.7-7 9-4-1.3-7-4.6-7-9V6l7-3z"></path><path stroke-linecap="round" stroke-linejoin="round" d="M9.5 12l1.8 1.8L15 10"></path></svg></span><span class="text-sm font-medium text-gray-700">Workers</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 87.2391%; top: 71.5%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M6 6.878V6a2.25 2.25 0 012.25-2.25h7.5A2.25 2.25 0 0118 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 004.5 9v.878m13.5-3A2.25 2.25 0 0119.5 9v.878m0 0a2.246 2.246 0 00-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0121 12v6a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 18v-6c0-.98.626-1.813 1.5-2.122"></path></svg></span><span class="text-sm font-medium text-gray-700">Environments</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 71.5%; top: 87.2391%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9 9 0 100-18 9 9 0 000 18zm0 0c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3M3.6 9h16.8M3.6 15h16.8"></path></svg></span><span class="text-sm font-medium text-gray-700">Custom domains</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 50%; top: 93%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"></path></svg></span><span class="text-sm font-medium text-gray-700">Monitoring</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 28.5%; top: 87.2391%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"></path></svg></span><span class="text-sm font-medium text-gray-700">Sandboxes</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 12.7609%; top: 71.5%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 8.25h9m-9 3H12m-9.75 1.51c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 01.778-.332 48.294 48.294 0 005.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.
741123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"></path></svg></span><span class="text-sm font-medium text-gray-700">Integrations</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 7%; top: 50%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M6 3v12m0 6a3 3 0 100-6 3 3 0 000 6zm0-18a3 3 0 100 6 3 3 0 000-6zm12 12a3 3 0 100 6 3 3 0 000-6zm0 0V9a3 3 0 00-3-3h-3m0 0l2.25-2.25M12 6l2.25 2.25"></path></svg></span><span class="text-sm font-medium text-gray-700">PR previews</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 12.7609%; top: 28.5%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg></span><span class="text-sm font-medium text-gray-700">Backups</span></div></div><div class="absolute z-10 -translate-x-1/2 -translate-y-1/2" style="left: 28.5%; top: 12.7609%;"><div class="flex items-center gap-2 px-3.5 py-2 bg-white border border-gray-200 rounded-xl shadow-sm hover:border-indigo-300 hover:shadow-md transition-all whitespace-nowrap"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"></path></svg></span><span class="text-sm font-medium text-gray-700">WAF + DDoS</span></div></div></div><div class="grid grid-cols-2 gap-3 md:hidden"><div class="col-span-2 flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-gradient-to-br from-indigo-600 to-violet-600 text-white font-semibold text-sm">Your project</div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375 7.444 2.25 12 2.25s8.25 1.847 8.25 4.125zM3.75 6.375v11.25c0 2.278 3.694 4.125 8.25 4.125s8.25-1.847 8.25-4.125V6.375M3.75 12c0 2.278 3.694 4.125 8.25 4.125s8.25-1.847 8.25-4.125"></path></svg></span><span class="text-sm font-medium text-gray-700">Databases</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></span><span class="text-sm font-medium text-gray-700">Crons & Jobs</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z"></path></svg></span><span class="text-sm font-medium text-gray-700">Functions</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3l7 3v6c0 4.4-3 7.7-7 9-4-1.3-7-4.6-7-9V6l7-3z"></path><path stroke-linecap="round" stroke-linejoin="round" d="M9.5 12l1.8 1.8L15 10"></path></svg></span><span class="text-sm font-medium text-gray-700">Workers</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M6 6.878V6a2.25 2.25 0 012.25-2.25h7.5A2.25 2.25 0 0118 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 004.5 9v.878m13.5-3A2.25 2.25 0 0119.5 9v.878m0 0a2.246 2.246 0 00-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0121 12v6a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 18v-6c0-.98.626-1.813 1.5-2.122"></path></svg></span><span class="text-sm font-medium text-gray-700">Environments</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9 9 0 100-18 9 9 0 000 18zm0 0c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3M3.6 9h16.8M3.6 15h16.8"></path></svg></span><span class="text-sm font-medium text-gray-700">Custom domains</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"></path></svg></span><span class="text-sm font-medium text-gray-700">Monitoring</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"></path></svg></span><span class="text-sm font-medium text-gray-700">Sandboxes</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 8.25h9m-9 3H12m-9.75 1.51c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 01.778-.332 48.294 48.294 0 005.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.
741123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"></path></svg></span><span class="text-sm font-medium text-gray-700">Integrations</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M6 3v12m0 6a3 3 0 100-6 3 3 0 000 6zm0-18a3 3 0 100 6 3 3 0 000-6zm12 12a3 3 0 100 6 3 3 0 000-6zm0 0V9a3 3 0 00-3-3h-3m0 0l2.25-2.25M12 6l2.25 2.25"></path></svg></span><span class="text-sm font-medium text-gray-700">PR previews</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg></span><span class="text-sm font-medium text-gray-700">Backups</span></div><div class="flex items-center gap-2 px-3.5 py-3 bg-white border border-gray-200 rounded-xl"><span class="text-indigo-600"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"></path></svg></span><span class="text-sm font-medium text-gray-700">WAF + DDoS</span></div></div></div></section><section class="py-24 border-t border-gray-100"><div class="max-w-6xl mx-auto px-6"><div class="text-center mb-16"><p class="text-sm font-semibold text-indigo-600 uppercase tracking-wider">A closer look</p><h2 class="mt-3 text-3xl md:text-4xl font-bold text-gray-900">What each one actually does</h2></div><div class="space-y-16 md:space-y-24"><div class="grid grid-cols-1 lg:grid-cols-2 gap-10 lg:gap-16 items-center"><div class=""><span class="text-xs font-semibold uppercase tracking-wider px-2.5 py-1 rounded-full bg-indigo-50 text-indigo-700">Ship apps</span><h3 class="mt-4 text-2xl md:text-3xl font-bold text-gray-900">From a git push to a live URL<span class="text-indigo-600">.</span></h3><p class="mt-3 text-gray-500 leading-relaxed">Connect a repo and orkestr detects the framework, builds a hardened image, and ships it to the EU in seconds. Add managed Postgres or Redis, serverless functions, a custom domain, and a preview for every pull request.</p><div><a class="mt-5 inline-flex items-center gap-1.5 text-sm font-medium text-indigo-600 hover:text-indigo-700" href="/containers" data-discover="true">Explore deployments<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a></div></div><div class=""><div class="bg-gray-900 rounded-2xl border border-gray-800 shadow-xl shadow-gray-900/10 overflow-hidden"><div class="flex items-center gap-3 px-4 py-2.5 border-b border-gray-800"><div class="flex gap-1.5 shrink-0"><span class="w-2.5 h-2.5 rounded-full bg-red-500/70"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/70"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/70"></span></div><div class="flex gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors bg-white/10 text-indigo-300">git push</button><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors text-gray-500 hover:text-gray-300">add-ons</button><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors text-gray-500 hover:text-gray-300">preview</button></div></div><div class="p-5 font-mono text-xs sm:text-sm space-y-2 min-h-[7.5rem]"><div class="text-indigo-400">$ git push origin main</div><div class="text-gray-400">[analyze] Next.js 14 detected</div><div class="text-gray-400">[build] hardened image pushed<span class="ml-0.5 inline-block w-1.5 -mb-0.5 animate-pulse text-gray-500">â</span></div></div></div></div></div><div class="grid grid-cols-1 lg:grid-cols-2 gap-10 lg:gap-16 items-center"><div class="lg:order-2"><span class="text-xs font-semibold uppercase tracking-wider px-2.5 py-1 rounded-full bg-violet-50 text-violet-700">
741Run code</span><h3 class="mt-4 text-2xl md:text-3xl font-bold text-gray-900">Any code, in an isolated sandbox<span class="text-violet-600">.</span></h3><p class="mt-3 text-gray-500 leading-relaxed">Spin up an isolated Linux microVM to run untrusted or AI-generated code. Millisecond start, metered by the second. Snapshot the whole VM and restore it later in an instant - so an agent can pause between turns and pick up exactly where it left off.</p><div><a class="mt-5 inline-flex items-center gap-1.5 text-sm font-medium text-violet-600 hover:text-violet-700" href="/sandboxes" data-discover="true">Explore sandboxes<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a></div></div><div class="lg:order-1"><div class="bg-gray-900 rounded-2xl border border-gray-800 shadow-xl shadow-gray-900/10 overflow-hidden"><div class="flex items-center gap-3 px-4 py-2.5 border-b border-gray-800"><div class="flex gap-1.5 shrink-0"><span class="w-2.5 h-2.5 rounded-full bg-red-500/70"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/70"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/70"></span></div><div class="flex gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors bg-white/10 text-violet-300">run</button><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors text-gray-500 hover:text-gray-300">snapshot</button><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors text-gray-500 hover:text-gray-300">mcp</button></div></div><div class="p-5 font-mono text-xs sm:text-sm space-y-2 min-h-[7.5rem]"><div class="text-violet-400">$ sb = orkestr.sandbox()</div><div class="text-violet-400">$ sb.run("model_output.py")</div><div class="text-green-400">ok - 0.4s - isolated microVM<span class="ml-0.5 inline-block w-1.5 -mb-0.5 animate-pulse text-gray-500">â</span></div></div></div></div></div><div class="grid grid-cols-1 lg:grid-cols-2 gap-10 lg:gap-16 items-center"><div class=""><span class="text-xs font-semibold uppercase tracking-wider px-2.5 py-1 rounded-full bg-fuchsia-50 text-fuchsia-700">Put agents to work</span><h3 class="mt-4 text-2xl md:text-3xl font-bold text-gray-900">Background agents that run in the cloud<span class="text-fuchsia-600">.</span></h3><p class="mt-3 text-gray-500 leading-relaxed">A worker is a background agent that runs in the cloud - not on your laptop. Hand it a task, or let it react to an event like a failed deploy or a new pull request. Then close your laptop: it works on its own, pauses at the gate for anything irreversible, and reports back to Slack - all under a scoped, audited identity.</p><span class="mt-4 inline-flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full bg-fuchsia-50 text-fuchsia-700"><span class="w-1.5 h-1.5 rounded-full bg-fuchsia-500 animate-pulse"></span>Runs in the cloud, asynchronously</span><div><a class="mt-5 inline-flex items-center gap-1.5 text-sm font-medium text-fuchsia-600 hover:text-fuchsia-700" href="/ai-workers" data-discover="true">Explore workers<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a></div></div><div class=""><div class="bg-gray-900 rounded-2xl border border-gray-800 shadow-xl shadow-gray-900/10 overflow-hidden"><div class="flex items-center gap-3 px-4 py-2.5 border-b border-gray-800"><div class="flex gap-1.5 shrink-0"><span class="w-2.5 h-2.5 rounded-full bg-red-500/70"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/70"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/70"></span></div><div class="flex gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors bg-white/10 text-fuchsia-300">reacts</button><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors text-gray-500 hover:text-gray-300">scheduled</button><button class="text-[11px] font-mono px-2.5 py-1 rounded-md whitespace-nowrap transition-colors text-gray-500 hover:text-gray-300">from chat</button></div></div><div class="p-5 font-mono text-xs sm:text-sm space-y-2 min-h-[7.5rem]"><div class="text-gray-400">event: deploy failed</div><div class="text-fuchsia-400">worker: investigating in the cloud</div><div class="text-amber-300">|| awaiting your approval<span class="ml-0.5 inline-block w-1.5 -mb-0.5 animate-pulse text-gray-500">â</span></div></div></div></div></div></div></div></section><section class="py-16 bg-indigo-950"><div class="max-w-4xl mx-auto px-6 text-center"><p class="text-indigo-300 text-sm font-medium mb-3">
741GDPR-compliant infrastructure</p><h2 class="text-3xl md:text-4xl font-bold text-white leading-tight">Your code runs in the EU.<br><span class="text-indigo-400">Always.</span></h2><p class="mt-4 text-indigo-200/70 max-w-2xl mx-auto">Apps, sandboxes, and workers all run on EU data centers in Nuremberg (DE), Falkenstein (DE), Helsinki (FI), Strasbourg (FR), and Roubaix (FR). Your data stays in the EU. Even our analytics are self-hosted in the EU - no cookies, no tracking, no data sent to third parties.</p><div class="mt-8 flex flex-wrap justify-center gap-6 text-sm"><div class="flex items-center gap-2 text-indigo-300"><span class="w-2 h-2 bg-green-400 rounded-full"></span>Nuremberg, Germany</div><div class="flex items-center gap-2 text-indigo-300"><span class="w-2 h-2 bg-green-400 rounded-full"></span>Falkenstein, Germany</div><div class="flex items-center gap-2 text-indigo-300"><span class="w-2 h-2 bg-green-400 rounded-full"></span>Helsinki, Finland</div><div class="flex items-center gap-2 text-indigo-300"><span class="w-2 h-2 bg-green-400 rounded-full"></span>Strasbourg, France</div><div class="flex items-center gap-2 text-indigo-300"><span class="w-2 h-2 bg-green-400 rounded-full"></span>Roubaix, France</div></div><div class="mt-8"><a class="inline-flex items-center gap-2 px-5 py-2.5 bg-white/10 hover:bg-white/15 border border-white/20 text-white rounded-full text-sm font-medium transition-colors" href="/dpa" data-discover="true"><svg class="w-4 h-4 text-green-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>Article 28 DPA ready</a></div></div></section><section class="py-20 border-t border-gray-100 overflow-hidden"><p class="text-center text-sm text-gray-400 mb-10 px-6">Works with your stack - 40+ frameworks, auto-detected</p><div class="space-y-4" style="mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent);"><div class="ork-marquee-row flex overflow-hidden"><div class="ork-marquee flex gap-4 pr-4" style="animation-duration: 38s;"><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Next.js" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nextjs/nextjs-original.svg"><span class="text-sm font-medium text-gray-700">Next.js</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Vue" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/vuejs/vuejs-original.svg"><span class="text-sm font-medium text-gray-700">Vue</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Astro" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/astro/astro-original.svg"><span class="text-sm font-medium text-gray-700">Astro</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="NestJS" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nestjs/nestjs-original.svg"><span class="text-sm font-medium text-gray-700">NestJS</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Flask" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/flask/flask-original.svg"><span class="text-sm font-medium text-gray-700">Flask</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Laravel" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/laravel/laravel-original.svg"><span class="text-sm font-medium text-gray-700">Laravel</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Go" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/go/go-original.svg"><span class="text-sm font-medium text-gray-700">Go</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Bun" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/bun/bun-original.svg"><span class="text-sm font-medium text-gray-700">Bun</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Next.js" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nextjs/nextjs-original.svg"><span class="text-sm font-medium text-gray-700">Next.js</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Vue" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/vuejs/vuejs-original.svg"><span class="text-sm font-medium text-gray-700">Vue</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Astro" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/astro/astro-original.svg"><span class="text-sm font-medium text-gray-700">Astro</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="NestJS" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nestjs/nestjs-original.svg"><span class="text-sm font-medium text-gray-700">NestJS</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Flask" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/flask/flask-original.svg"><span class="text-sm font-medium text-gray-700">Flask</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Laravel" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/laravel/laravel-original.svg"><span class="text-sm font-medium text-gray-700">Laravel</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Go" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/go/go-original.svg"><span class="text-sm font-medium text-gray-700">Go</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Bun" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/bun/bun-original.svg"><span class="text-sm font-medium text-gray-700">Bun</span></div></div></div><div class="ork-marquee-row flex overflow-hidden"><div class="ork-marquee flex gap-4 pr-4" style="animation-duration: 32s;"><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="React" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg"><span class="text-sm font-medium text-gray-700">React</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Svelte" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/svelte/svelte-original.svg"><span class="text-sm font-medium text-gray-700">Svelte</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Remix" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/remix/remix-original.svg"><span class="text-sm font-medium text-gray-700">Remix</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Fastify" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/fastify/fastify-original.svg"><span class="text-sm font-medium text-gray-700">Fastify</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Django" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/django/django-plain.svg"><span class="text-sm font-medium text-gray-700">Django</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Phoenix" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/phoenix/phoenix-original.svg"><span class="text-sm font-medium text-gray-700">Phoenix</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Rust" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/rust/rust-original.svg"><span class="text-sm font-medium text-gray-700">Rust</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Docker" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/docker/docker-original.svg"><span class="text-sm font-medium text-gray-700">
741Docker</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="React" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg"><span class="text-sm font-medium text-gray-700">React</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Svelte" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/svelte/svelte-original.svg"><span class="text-sm font-medium text-gray-700">Svelte</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Remix" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/remix/remix-original.svg"><span class="text-sm font-medium text-gray-700">Remix</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Fastify" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/fastify/fastify-original.svg"><span class="text-sm font-medium text-gray-700">Fastify</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Django" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/django/django-plain.svg"><span class="text-sm font-medium text-gray-700">Django</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Phoenix" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/phoenix/phoenix-original.svg"><span class="text-sm font-medium text-gray-700">Phoenix</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Rust" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/rust/rust-original.svg"><span class="text-sm font-medium text-gray-700">Rust</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Docker" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/docker/docker-original.svg"><span class="text-sm font-medium text-gray-700">Docker</span></div></div></div><div class="ork-marquee-row flex overflow-hidden"><div class="ork-marquee flex gap-4 pr-4" style="animation-duration: 44s;"><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Nuxt" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nuxtjs/nuxtjs-original.svg"><span class="text-sm font-medium text-gray-700">Nuxt</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Angular" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/angularjs/angularjs-original.svg"><span class="text-sm font-medium text-gray-700">Angular</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Express" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/express/express-original.svg"><span class="text-sm font-medium text-gray-700">Express</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="FastAPI" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/fastapi/fastapi-original.svg"><span class="text-sm font-medium text-gray-700">FastAPI</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Rails" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/rails/rails-plain.svg"><span class="text-sm font-medium text-gray-700">Rails</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Spring" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/spring/spring-original.svg"><span class="text-sm font-medium text-gray-700">Spring</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Deno" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/denojs/denojs-original.svg"><span class="text-sm font-medium text-gray-700">Deno</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Nuxt" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nuxtjs/nuxtjs-original.svg"><span class="text-sm font-medium text-gray-700">Nuxt</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Angular" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/angularjs/angularjs-original.svg"><span class="text-sm font-medium text-gray-700">Angular</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Express" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/express/express-original.svg"><span class="text-sm font-medium text-gray-700">Express</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="FastAPI" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/fastapi/fastapi-original.svg"><span class="text-sm font-medium text-gray-700">FastAPI</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Rails" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/rails/rails-plain.svg"><span class="text-sm font-medium text-gray-700">Rails</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Spring" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/spring/spring-original.svg"><span class="text-sm font-medium text-gray-700">Spring</span></div><div class="flex items-center gap-2.5 px-5 py-2.5 bg-white border border-gray-200 rounded-xl shadow-sm shrink-0"><img alt="Deno" class="w-6 h-6" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/denojs/denojs-original.svg"><span class="text-sm font-medium text-gray-700">Deno</span></div></div></div></div><p class="text-center text-sm text-gray-400 mt-10 px-6">Bring your own Dockerfile, or let us generate one · <a class="text-indigo-600 hover:text-indigo-700 font-medium" href="/integrations" data-discover="true">See all integrations</a></p></section><section id="pricing" class="py-24 bg-gray-50"><div class="max-w-5xl mx-auto px-6"><div class="text-center mb-10"><h2 class="text-3xl md:text-4xl font-bold text-gray-900">Two products, one platform</h2><p class="mt-4 text-lg text-gray-500">Always-on apps, or pay-as-you-go agent sandboxes. Start free.</p></div><div class="flex justify-center mb-8"><div class="inline-flex items-center p-1 bg-gray-100 rounded-full" role="group" aria-label="Product"><button type="button" aria-pressed="true" class="px-6 py-2 text-sm font-medium rounded-full transition-colors capitalize bg-indigo-600 text-white shadow-sm">platform</button><button type="button" aria-pressed="false" class="px-6 py-2 text-sm font-medium rounded-full transition-colors capitalize text-gray-500 hover:text-gray-700">sandboxes</button></div></div><div class="grid grid-cols-1 md:grid-cols-3 gap-6"><div class="relative bg-white rounded-2xl border p-6 flex flex-col border-gray-200"><h3 class="text-base font-semibold text-gray-900">Starter</h3><p class="mt-1 text-2xl font-bold text-gray-900">â¬0</p><ul class="mt-5 space-y-2.5 text-sm text-gray-600 flex-1"><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">1 project & environment</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">Postgres or Redis add-on</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">Custom domain + auto-SSL</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">PR preview deploys</span></li></ul><a href="http://console.orkestr.eu/register" class="mt-6 block text-center px-5 py-2.5 rounded-xl font-medium transition-colors border border-gray-300 text-gray-700 hover:bg-gray-50">Get started</a></div><div class="relative bg-white rounded-2xl border p-6 flex flex-col border-2 border-indigo-600"><div class="absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-1 bg-indigo-600 text-white text-xs font-medium rounded-full">Most popular</div><h3 class="text-base font-semibold text-gray-900">Pro</h3><p class="mt-1 text-2xl font-bold text-gray-900">â¬15/seat/mo</p><p class="mt-4 text-xs font-medium text-indigo-600">Everything in Starter, plus:</p><ul class="mt-2 space-y-2.5 text-sm text-gray-600 flex-1"><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-indigo-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="text-gray-900 font-medium">Invite your team - â¬15 per seat</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-indigo-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="text-gray-900 font-medium">Always-on, no cold starts</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-indigo-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="text-gray-900 font-medium">5 projects, then â¬4 each, 3 envs each</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-indigo-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="text-gray-900 font-medium">Instant rollbacks</span></li></ul><a href="http://console.orkestr.eu/register" class="mt-6 block text-center px-5 py-2.5 rounded-xl font-medium transition-colors bg-indigo-600 text-white hover:bg-indigo-700">Get Pro</a></div><div class="relative bg-white rounded-2xl border p-6 flex flex-col border-gray-200"><h3 class="text-base font-semibold text-gray-900">Enterprise</h3><p class="mt-1 text-2xl font-bold text-gray-900">Talk to us</p><p class="mt-4 text-xs font-medium text-indigo-600">Everything in Pro, plus:</p><ul class="mt-2 space-y-2.5 text-sm text-gray-600 flex-1"><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">Dedicated single-tenant EU nodes</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">SSO / SAML + audit logs</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">99.9% uptime SLA</span></li><li class="flex items-center gap-2"><svg class="w-4 h-4 shrink-0 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><span class="">Counter-signed DPA + procurement pack</span></li></ul><button type="button" class="mt-6 block text-center px-5 py-2.5 rounded-xl font-medium transition-colors border border-gray-300 text-gray-700 hover:bg-gray-50 w-full">Talk to us</button></div></div><div class="text-center mt-10"><a class="inline-flex items-center gap-2 text-sm font-medium text-indigo-600 hover:text-indigo-700" href="/pricing" data-discover="true">See full comparison<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></a><p class="text-xs text-gray-400 mt-3">All plans include EU hosting, SSL, WAF + DDoS protection. No credit card for Starter.</p></div></div></section><section id="faq" class="px-6 py-24"><div class="max-w-3xl mx-auto"><h2 class="text-3xl font-bold text-gray-900 text-center mb-12">Common questions</h2><div class="space-y-4"><details class="group bg-white border border-gray-200 rounded-xl overflow-hidden"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer list-none hover:bg-gray-50"><span class="font-medium text-gray-900">Is everything really hosted in the EU?</span><svg class="w-4 h-4 text-gray-400 group-open:rotate-180 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-gray-600 leading-relaxed">
741Yes. Every app, sandbox, and worker runs on dedicated infrastructure in Nuremberg and Falkenstein (Germany), Helsinki (Finland), and Strasbourg and Roubaix (France). Your data never leaves the EU, and even our analytics are self-hosted with no cookies or third-party tracking. GDPR-compliant by default, Article 28 DPA on request.</div></details><details class="group bg-white border border-gray-200 rounded-xl overflow-hidden"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer list-none hover:bg-gray-50"><span class="font-medium text-gray-900">Do I need a credit card to start?</span><svg class="w-4 h-4 text-gray-400 group-open:rotate-180 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-gray-600 leading-relaxed">No. The Starter plan is free forever - one project, a sandbox, and a worker to try each product. You only enter a paid plan when you explicitly upgrade.</div></details><details class="group bg-white border border-gray-200 rounded-xl overflow-hidden"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer list-none hover:bg-gray-50"><span class="font-medium text-gray-900">What can I deploy?</span><svg class="w-4 h-4 text-gray-400 group-open:rotate-180 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-gray-600 leading-relaxed">40+ frameworks across Node.js, Python, Ruby, PHP, Go, Rust, Elixir, and the JVM - we auto-detect yours and generate a production Dockerfile. Already have a Dockerfile? We use it. Add managed Postgres or Redis and serverless functions to any project.</div></details><details class="group bg-white border border-gray-200 rounded-xl overflow-hidden"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer list-none hover:bg-gray-50"><span class="font-medium text-gray-900">What are sandboxes and workers for?</span><svg class="w-4 h-4 text-gray-400 group-open:rotate-180 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-gray-600 leading-relaxed">Sandboxes are isolated microVMs for running untrusted or AI-generated code safely - ideal for agents, code interpreters, and CI-style tasks. Workers are scoped agents that watch your infrastructure and act on it: investigating failed deploys, reviewing pull requests, and proposing changes for your approval.</div></details><details class="group bg-white border border-gray-200 rounded-xl overflow-hidden"><summary class="flex items-center justify-between px-5 py-4 cursor-pointer list-none hover:bg-gray-50"><span class="font-medium text-gray-900">Can I drive it from my AI editor?</span><svg class="w-4 h-4 text-gray-400 group-open:rotate-180 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></summary><div class="px-5 pb-4 text-sm text-gray-600 leading-relaxed">Yes. orkestr exposes MCP servers for the platform and for sandboxes, so you can deploy, run code, and manage workers directly from Claude, Cursor, Windsurf, or any MCP-capable assistant.</div></details></div></div></section><section class="py-24 bg-gray-900"><div class="max-w-4xl mx-auto px-6 text-center"><h2 class="text-3xl md:text-4xl font-bold text-white">Deploy. Execute. Delegate.</h2><p class="mt-4 text-lg text-gray-400">One platform for everything you ship. Start free, no credit card.</p><div class="mt-8 flex flex-col sm:flex-row gap-4 justify-center"><a href="http://console.orkestr.eu/register" class="px-8 py-3.5 bg-indigo-600 text-white text-base font-medium rounded-xl hover:bg-indigo-500 transition-all hover:shadow-lg hover:shadow-indigo-600/30">Get started for free</a><button type="button" class="px-8 py-3.5 border border-white/20 text-white text-base font-medium rounded-xl hover:bg-white/10 transition-colors">
741Book a demo</button></div></div></section><footer class="py-16 border-t border-gray-100"><div class="max-w-6xl mx-auto px-6"><div class="grid grid-cols-2 md:grid-cols-4 gap-10"><div class="col-span-2 md:col-span-1"><div class="flex items-center gap-2"><img alt="orkestr" class="w-6 h-6" src="/favicon.svg"><span class="text-sm font-medium text-gray-900">orkestr</span></div><p class="text-xs text-gray-400 mt-2 max-w-[200px]">EU-hosted deploys, made simple.</p><div class="mt-4"><p class="text-[11px] font-semibold uppercase tracking-wide text-gray-400">Follow us</p><div class="mt-2 flex items-center gap-3"><a href="https://x.com/orkestrdoteu" aria-label="X" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a href="https://discord.gg/fmuupsTVPR" aria-label="Discord" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"></path></svg></a><a href="https://join.slack.com/t/orkestr/shared_invite/zt-40wc27dqv-zCpfeDJUWL8ZuC6hLfnXkg" aria-label="Slack" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.528 2.528 0 0 1 2.522-2.52h2.52v2.52a2.528 2.528 0 0 1-2.52 2.522zm1.271 0a2.528 2.528 0 0 1 2.521-2.52 2.528 2.528 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.271 0a2.528 2.528 0 0 1-2.521 2.521 2.528 2.528 0 0 1-2.521-2.521V2.522A2.528 2.528 0 0 1 15.165 0a2.528 2.528 0 0 1 2.521 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.521 2.522A2.528 2.528 0 0 1 15.165 24a2.528 2.528 0 0 1-2.521-2.522v-2.522h2.521zm0-1.271a2.528 2.528 0 0 1-2.521-2.521 2.528 2.528 0 0 1 2.521-2.521h6.313A2.528 2.528 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.521h-6.313z"></path></svg></a><a href="https://www.reddit.com/r/orkestr/" aria-label="Reddit" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.231-.095z"></path></svg></a><a href="https://www.youtube.com/@orkestrdoteu" aria-label="YouTube" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg></a><a href="https://www.linkedin.com/company/orkestr-eu/" aria-label="LinkedIn" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg></a><a href="https://www.instagram.com/orkestr.eu/" aria-label="Instagram" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-gray-900 transition-colors"><svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z"></path></svg></a></div></div></div><div><h3 class="text-xs font-semibold text-gray-900 uppercase tracking-wide mb-4">Product</h3><ul class="space-y-2 text-sm text-gray-500"><li><a class="hover:text-gray-900 transition-colors" href="/containers" data-discover="true">Containers</a></li><li><a class="hover:text-gray-900 transition-colors" href="/databases" data-discover="true">Managed Databases</a></li><li><a class="hover:text-gray-900 transition-colors" href="/use-cases/pr-previews" data-discover="true">PR previews</a></li><li><a class="hover:text-gray-900 transition-colors" href="/use-cases/ai-deployments" data-discover="true">AI deployments</a></li><li><a class="hover:text-gray-900 transition-colors" href="/use-cases/crons-jobs" data-discover="true">Crons & Jobs</a></li><li><a class="hover:text-gray-900 transition-colors" href="/use-cases/webhooks" data-discover="true">Webhooks</a></li><li><a class="hover:text-gray-900 transition-colors" href="/integrations" data-discover="true">Integrations</a></li><li><a class="hover:text-gray-900 transition-colors" href="/serverless-functions" data-discover="true">Functions</a></li><li><a class="hover:text-gray-900 transition-colors" href="/sandboxes" data-discover="true">Sandboxes</a></li><li><a class="hover:text-gray-900 transition-colors" href="/ai-workers" data-discover="true">Workers <span class="text-[10px] text-indigo-500 font-medium ml-1">PREVIEW</span></a></li></ul></div><div><h3 class="text-xs font-semibold text-gray-900 uppercase tracking-wide mb-4">Resources</h3><ul class="space-y-2 text-sm text-gray-500"><li><a class="hover:text-gray-900 transition-colors" href="/docs" data-discover="true">Docs</a></li><li><a class="hover:text-gray-900 transition-colors" href="/pricing" data-discover="true">Pricing</a></li><li><a href="https://blog.orkestr.eu" class="hover:text-gray-900 transition-colors">Blog</a></li><li><a class="hover:text-gray-900 transition-colors" href="/migrations" data-discover="true">Migrations</a></li><li><a class="hover:text-gray-900 transition-colors" href="/contact" data-discover="true">Contact</a></li><li><a class="hover:text-gray-900 transition-colors" href="/careers" data-discover="true">Careers</a></li><li><a href="https://orkestr.hyperping.app/" target="_blank" rel="noopener noreferrer" class="hover:text-gray-900 transition-colors">Status</a></li><li><a class="hover:text-gray-900 transition-colors" href="/security" data-discover="true">Security</a></li></ul></div><div><h3 class="text-xs font-semibold text-gray-900 uppercase tracking-wide mb-4">Legal</h3><ul class="space-y-2 text-sm text-gray-500"><li><a class="hover:text-gray-900 transition-colors" href="/terms" data-discover="true">Terms</a></li><li><a class="hover:text-gray-900 transition-colors" href="/privacy" data-discover="true">Privacy</a></li><li><a class="hover:text-gray-900 transition-colors" href="/cookies" data-discover="true">Cookies</a></li><li><a class="hover:text-gray-900 transition-colors" href="/aup" data-discover="true">Acceptable Use</a></li><li><a class="hover:text-gray-900 transition-colors" href="/subprocessors" data-discover="true">Subprocessors</a></li><li><a class="hover:text-gray-900 transition-colors" href="/dpa" data-discover="true">DPA</a></li></ul></div></div><div class="mt-8 pt-6 border-t border-gray-100 text-xs text-gray-400 text-center md:text-left"><p>© 2026 orkestr. All rights reserved.</p></div></div></footer></div></div> 742 743 744</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.