PageSourceSearch

https://console.orkestr.eu/login

html orkestr.eu collected 2026-10-09 01:28:43 UTC 108,786 bytes, 744 lines download raw bytes

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 &amp; 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 &amp; 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 &amp; 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  -&gt;  pushing  -&gt;  routing...</div><div class="text-green-400 transition-opacity duration-300 opacity-0">live  -&gt;  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 &amp; 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">&gt;&gt;&gt; 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 &amp; 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">&gt; pulled logs, diagnosed</div><div class="text-green-400">&gt; 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 &amp; 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 &amp; 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 &amp; 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] [&amp;::-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] [&amp;::-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] [&amp;::-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 &amp; 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 &amp; 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.