1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="robots" content="noindex"/><meta name="description" content="Connect your team using the same license key and gather team insights like p75 build duration, machine benchmarks, and more."/><meta property="og:image" content="/social-banner.jpg"/><meta property="og:type" content="website"/><meta property="twitter:card" content="summary_large_image"/><meta property="twitter:site" content="@rocketsim_app"/><meta property="twitter:description" content="Connect your team using the same license key and gather team insights like p75 build duration, machine benchmarks, and more."/><meta property="twitter:image" content="/social-banner.jpg"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="manifest" href="/site.webmanifest"/><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"/><meta name="msapplication-TileColor" content="#2d89ef"/><meta name="theme-color" content="#ffffff"/><title>Sign in | RocketSim for Teams</title><meta property="og:title" content="Sign in | RocketSim for Teams"/><meta property="twitter:title" content="Sign in | RocketSim for Teams"/><meta property="og:url" content="https://teams.rocketsim.app"/><link rel="stylesheet" href="/assets/styles-BwOAoFIS.css"/><link rel="stylesheet" href="/assets/styles-DfZY0nTa.css"/><link rel="stylesheet" href="/assets/styles-HFXcjaLO.css"/><link rel="stylesheet" href="/assets/error-page-Bxq1zjVQ.css"/><link rel="stylesheet" href="/assets/global-Dv8ECWUE.css"/><link rel="stylesheet" href="/assets/styles-BrRNwZz5.css"/><link rel="stylesheet" href="/assets/styles-Tcu467aI.css"/><link rel="stylesheet" href="/assets/styles-kTPn5KUV.css"/><link rel="stylesheet" href="/assets/styles-DLpTCI4P.css"/><link rel="stylesheet" href="/assets/center-form-pages-DQ2pJdTn.css"/><link rel="stylesheet" href="/assets/login-B9oEqqQt.css"/>
1<script defer="" src="https://plausible.io/js/pa-UU6kf044LfXx1I_nLu86Q.js"></script>
1<script> 2 ((window.plausible = 3 window.plausible || 4 function () { 5 (plausible.q = plausible.q || []).push(arguments); 6 }), 7 (plausible.init = 8 plausible.init || 9 function (i) { 10 plausible.o = i || {}; 11 })); 12 plausible.init(); 13</script>
13<meta name="sentry-trace" content="d8dae175fbf1473c823c4dcdc98b7fe4-9a2b956a05d47601-0"/><meta name="baggage" content="sentry-environment=production,sentry-release=95882236361f725ba34c006c57b7d28e7d063b1a,sentry-public_key=b5663312fd24e8be739251a72f15b64a,sentry-trace_id=d8dae175fbf1473c823c4dcdc98b7fe4,sentry-org_id=4509757351067648,sentry-sampled=false,sentry-sample_rand=0.8235965927812657,sentry-sample_rate=0.1"/></head><body>
13<script>window.ENV = {"AMPLITUDE_API_KEY":"b497a7fe9e7ee0b4a1ae1bb0cfe88dc0","SENTRY_DSN":"https://b5663312fd24e8be739251a72f15b64a@o4509757351067648.ingest.de.sentry.io/4509757352575056","INTERCOM_APP_ID":"wbadhzkf"};</script>
13<div class="page-wrapper"><header class="topbar"><a class="topbar__title-wrapper" href="/" rel="noopener"><img class="topbar__logo" src="/assets/rocketsim-app-icon-DKXgt2NS.png" alt="The Xcode logo with a hovering phone and a rocket in front."/><h1 class="topbar__title">RocketSim for Teams</h1></a><a class="link" href="mailto:[email protected]">Contact support</a></header><main class="main main--login"><div class="content"><div class="content__header"><h1 class="title">Sign in</h1><p class="text">Enter your credentials for RocketSim for Teams.</p></div><form method="post" action="/login" class="form" data-discover="true"><fieldset class="fieldset"><div class="input-wrapper"><label class="label" for="email">Email:</label><input type="email" class="input input--large" aria-describedby="email-error" autoComplete="email" autofocus="" id="email" name="email" placeholder="[email protected]" required=""/></div><div class="input-wrapper"><label class="label" for="password">Password:</label><input type="password" class="input input--large" id="password" name="password" required=""/><p class="input__help-text">Forgot your password?<!-- --> <a class="link" href="/reset-password" data-discover="true">Click here</a> <!-- -->to reset it.</p></div></fieldset><input type="hidden" name="redirectTo" value=""/><button class="button button--medium button--full-width" type="submit">Sign in</button></form><div class="divider"><span>or</span></div><a class="button button--outline button--medium button--full-width" href="/sso" data-discover="true">Sign in with SSO</a></div></main><footer class="footer"><ul class="footer__list"><li><a class="link link--footer" href="/activate-seat" data-discover="true">Activate seat</a></li><li><a class="link link--footer" rel="noopener" href="https://www.rocketsim.app">RocketSim</a></li><li><a class="link link--footer" rel="noopener" href="https://www.rocketsim.app/team-insights">RocketSim for Teams</a></li><li><a class="link link--footer" href="mailto:[email protected]">Contact us</a></li></ul></footer></div>
13<script>((storageKey2, restoreKey) => { 14 if (!window.history.state || !window.history.state.key) { 15 let key = Math.random().toString(32).slice(2); 16 window.history.replaceState({ key }, ""); 17 } 18 try { 19 let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); 20 let storedY = positions[restoreKey || window.history.state.key]; 21 if (typeof storedY === "number") { 22 window.scrollTo(0, storedY); 23 } 24 } catch (error) { 25 console.error(error); 26 sessionStorage.removeItem(storageKey2); 27 } 28 })("react-router-scroll-positions", null)</script>
28<link rel="modulepreload" href="/assets/entry.client-6b1kqmAU.js"/><link rel="modulepreload" href="/assets/jsx-runtime-Ba5HBwWH.js"/><link rel="modulepreload" href="/assets/chunk-JZWAC4HX-ClKBC7OG.js"/><link rel="modulepreload" href="/assets/index-CCgWnXGI.js"/><link rel="modulepreload" href="/assets/debug-build-Dorh0FKA.js"/><link rel="modulepreload" href="/assets/index-CZvRCvOG.js"/><link rel="modulepreload" href="/assets/tslib.es6-CUmtkSvz.js"/><link rel="modulepreload" href="/assets/root-DX2SPB_9.js"/><link rel="modulepreload" href="/assets/root-DWrRIubx.js"/><link rel="modulepreload" href="/assets/TopBar-6018a6tD.js"/><link rel="modulepreload" href="/assets/Navigation-YUOdvbou.js"/><link rel="modulepreload" href="/assets/index-MAk8cjkf.js"/><link rel="modulepreload" href="/assets/route-C8yONSNp.js"/><link rel="modulepreload" href="/assets/Alert-GiC71FNb.js"/><link rel="modulepreload" href="/assets/Button-C7Lxdfgu.js"/><link rel="modulepreload" href="/assets/Input-CqJogIzn.js"/><link rel="modulepreload" href="/assets/Label-D1uW51qZ.js"/><link rel="modulepreload" href="/assets/center-form-pages-BdYD7dtY.js"/><link rel="modulepreload" href="/assets/react-icons.esm-BMTosRt-.js"/><link rel="modulepreload" href="/assets/index-sTiyBQYM.js"/><link rel="modulepreload" href="/assets/index-CT-ltmkc.js"/>
28<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
28<script type="module" async="">; 29import * as route0 from "/assets/root-DX2SPB_9.js"; 30import * as route1 from "/assets/route-C8yONSNp.js"; 31 window.__reactRouterManifest = { 32 "entry": { 33 "module": "/assets/entry.client-6b1kqmAU.js", 34 "imports": [ 35 "/assets/jsx-runtime-Ba5HBwWH.js", 36 "/assets/chunk-JZWAC4HX-ClKBC7OG.js", 37 "/assets/index-CCgWnXGI.js", 38 "/assets/debug-build-Dorh0FKA.js", 39 "/assets/index-CZvRCvOG.js", 40 "/assets/tslib.es6-CUmtkSvz.js" 41 ], 42 "css": [] 43 }, 44 "routes": { 45 "root": { 46 "id": "root", 47 "path": "", 48 "hasAction": false, 49 "hasLoader": true, 50 "hasClientAction": false, 51 "hasClientLoader": false, 52 "hasClientMiddleware": false, 53 "hasErrorBoundary": true, 54 "module": "/assets/root-DX2SPB_9.js", 55 "imports": [ 56 "/assets/jsx-runtime-Ba5HBwWH.js", 57 "/assets/chunk-JZWAC4HX-ClKBC7OG.js", 58 "/assets/index-CCgWnXGI.js", 59 "/assets/debug-build-Dorh0FKA.js", 60 "/assets/index-CZvRCvOG.js", 61 "/assets/tslib.es6-CUmtkSvz.js", 62 "/assets/root-DWrRIubx.js", 63 "/assets/TopBar-6018a6tD.js", 64 "/assets/Navigation-YUOdvbou.js", 65 "/assets/index-MAk8cjkf.js" 66 ], 67 "css": [] 68 }, 69 "routes/login": { 70 "id": "routes/login", 71 "parentId": "root", 72 "path": "login", 73 "hasAction": true, 74 "hasLoader": true, 75 "hasClientAction": false, 76 "hasClientLoader": false, 77 "hasClientMiddleware": false, 78 "hasErrorBoundary": false, 79 "module": "/assets/route-C8yONSNp.js", 80 "imports": [ 81 "/assets/chunk-JZWAC4HX-ClKBC7OG.js", 82 "/assets/jsx-runtime-Ba5HBwWH.js", 83 "/assets/Alert-GiC71FNb.js", 84 "/assets/Button-C7Lxdfgu.js", 85 "/assets/TopBar-6018a6tD.js", 86 "/assets/Input-CqJogIzn.js", 87 "/assets/Label-D1uW51qZ.js", 88 "/assets/root-DWrRIubx.js", 89 "/assets/center-form-pages-BdYD7dtY.js", 90 "/assets/react-icons.esm-BMTosRt-.js", 91 "/assets/index-MAk8cjkf.js", 92 "/assets/index-sTiyBQYM.js", 93 "/assets/index-CT-ltmkc.js", 94 "/assets/index-CZvRCvOG.js", 95 "/assets/debug-build-Dorh0FKA.js", 96 "/assets/Navigation-YUOdvbou.js" 97 ], 98 "css": [] 99 }, 100 "routes/_index": { 101 "id": "routes/_index", 102 "parentId": "root", 103 "index": true, 104 "hasAction": false, 105 "hasLoader": true, 106 "hasClientAction": false, 107 "hasClientLoader": false, 108 "hasClientMiddleware": false, 109 "hasErrorBoundary": false, 110 "module": "/assets/route-C3LV8HgG.js", 111 "imports": [], 112 "css": [] 113 } 114 }, 115 "url": "/assets/manifest-79ab4efd.js", 116 "version": "79ab4efd" 117}; 118 window.__reactRouterRouteModules = {"root":route0,"routes/login":route1}; 119 120import("/assets/entry.client-6b1kqmAU.js");</script>
120</body></html><!--$-->
120<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_17\":-5,\"_18\":-5},\"loaderData\",{\"_3\":4,\"_14\":15},\"root\",{\"_5\":6},\"env\",{\"_7\":8,\"_9\":10,\"_11\":-7,\"_12\":13},\"AMPLITUDE_API_KEY\",\"b497a7fe9e7ee0b4a1ae1bb0cfe88dc0\",\"SENTRY_DSN\",\"https://b5663312fd24e8be739251a72f15b64a@o4509757351067648.ingest.de.sentry.io/4509757352575056\",\"SENTRY_TRACES_SAMPLE_RATE\",\"INTERCOM_APP_ID\",\"wbadhzkf\",\"routes/login\",{\"_16\":-5},\"message\",\"actionData\",\"errors\"]\n");</script>
120<!--$-->
120<script>window.__reactRouterContext.streamController.close();</script>
120<!--/$--><!--/$-->
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.