Skip to content

Commit e263eca

Browse files
committed
docs: simplify
1 parent c2c07ee commit e263eca

8 files changed

Lines changed: 5692 additions & 99 deletions

File tree

docs/.vitepress/config.mts

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,11 @@ export default defineConfig({
114114
nav: [
115115
{ text: "Guide", link: "/guide/", activeMatch: "/guide/" },
116116
{ text: "CLI", link: "/cli/", activeMatch: "/cli/" },
117-
{ text: "API", link: "/api/rest", activeMatch: "/api/" },
118117
{
119118
text: "Inspectors",
120119
link: "/inspector/",
121120
activeMatch: "/inspector/",
122121
},
123-
{
124-
text: "Extensions",
125-
link: "/extensions/vscode",
126-
activeMatch: "/extensions/",
127-
},
128122
{ text: "Support", link: "/support" },
129123
{
130124
text: "0.1.5",
@@ -176,17 +170,6 @@ export default defineConfig({
176170
},
177171
],
178172

179-
"/api/": [
180-
{
181-
text: "API",
182-
items: [
183-
{ text: "REST", link: "/api/rest" },
184-
{ text: "Health & Metrics", link: "/api/health" },
185-
{ text: "Inspector Protocol", link: "/api/inspector-protocol" },
186-
],
187-
},
188-
],
189-
190173
"/inspector/": [
191174
{
192175
text: "Inspectors",
@@ -200,16 +183,6 @@ export default defineConfig({
200183
],
201184
},
202185
],
203-
204-
"/extensions/": [
205-
{
206-
text: "Extensions",
207-
items: [
208-
{ text: "VS Code", link: "/extensions/vscode" },
209-
{ text: "Browser Client", link: "/extensions/browser-client" },
210-
],
211-
},
212-
],
213186
},
214187

215188
socialLinks: [{ icon: "github", link: githubUrl }],
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
<script setup lang="ts">
2+
import { onBeforeUnmount, onMounted, ref } from "vue";
3+
4+
const command = "npm i -g simdeck@latest\nsimdeck";
5+
const copied = ref(false);
6+
7+
function updateNavState() {
8+
const progress = Math.min(Math.max((window.scrollY - 120) / 260, 0), 1);
9+
document.documentElement.style.setProperty("--sd-nav-progress", progress.toFixed(3));
10+
document.documentElement.classList.toggle("sd-nav-scrolled", progress > 0.02);
11+
}
12+
13+
onMounted(() => {
14+
document.documentElement.classList.add("sd-home-active");
15+
updateNavState();
16+
window.addEventListener("scroll", updateNavState, { passive: true });
17+
});
18+
19+
onBeforeUnmount(() => {
20+
window.removeEventListener("scroll", updateNavState);
21+
document.documentElement.classList.remove("sd-home-active", "sd-nav-scrolled");
22+
document.documentElement.style.removeProperty("--sd-nav-progress");
23+
});
24+
25+
async function copyCommand() {
26+
try {
27+
const textarea = document.createElement("textarea");
28+
textarea.value = command;
29+
textarea.setAttribute("readonly", "");
30+
textarea.style.position = "fixed";
31+
textarea.style.opacity = "0";
32+
document.body.appendChild(textarea);
33+
textarea.select();
34+
const copiedViaSelection = document.execCommand("copy");
35+
textarea.remove();
36+
if (!copiedViaSelection && typeof navigator !== "undefined" && navigator.clipboard) {
37+
await navigator.clipboard.writeText(command);
38+
}
39+
} catch {
40+
return;
41+
}
42+
copied.value = true;
43+
window.setTimeout(() => {
44+
copied.value = false;
45+
}, 1500);
46+
}
47+
</script>
48+
49+
<template>
50+
<main class="sd-home">
51+
<section class="sd-hero" aria-labelledby="simdeck-title">
52+
<div class="sd-hero-copy sd-reveal">
53+
<h1 id="simdeck-title">SimDeck</h1>
54+
<p>Simulator Superpowers for you and your fleet of agents</p>
55+
<div class="sd-command-wrap" aria-label="Install and start SimDeck">
56+
<pre class="sd-command"><code><span>npm i -g simdeck@latest</span><span>simdeck</span></code></pre>
57+
<button
58+
class="sd-copy"
59+
type="button"
60+
:aria-label="copied ? 'Copied SimDeck install command' : 'Copy SimDeck install command'"
61+
:data-copied="copied ? 'true' : 'false'"
62+
@click="copyCommand"
63+
>
64+
<svg viewBox="0 0 24 24" aria-hidden="true">
65+
<path v-if="copied" d="m5 12 4 4 10-10" />
66+
<template v-else>
67+
<path d="M9 9h10v10H9z" />
68+
<path d="M5 15H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1" />
69+
</template>
70+
</svg>
71+
</button>
72+
</div>
73+
</div>
74+
75+
<figure class="sd-hero-shot sd-reveal">
76+
<img
77+
src="/images/codex-screenshot.png"
78+
alt="SimDeck streaming an iPhone simulator inside a development workspace"
79+
/>
80+
</figure>
81+
</section>
82+
83+
<section class="sd-story" aria-labelledby="simdeck-story">
84+
<div class="sd-story-head sd-reveal">
85+
<h2 id="simdeck-story">
86+
SimDeck does not get in the way. It makes the way for agents to work without dividing your
87+
attention.
88+
</h2>
89+
</div>
90+
91+
<div class="sd-timeline">
92+
<article class="sd-moment sd-reveal">
93+
<div class="sd-index" aria-hidden="true">01</div>
94+
<div class="sd-moment-copy">
95+
<h3>Live Simulator, where your work already happens</h3>
96+
<p>
97+
Open Simulator side by side in your favorite IDE or agent orchestrator. Supported in VS Code,
98+
Codex, Cursor, Claude Code, and more. Simulators run headlessly in the background for agents to
99+
operate on while you stay focused on what matters in the current context.
100+
</p>
101+
</div>
102+
<div class="sd-shot sd-shot-ide" aria-label="Screenshot placeholder for IDE simulator preview">
103+
<div class="sd-shot-bar" aria-hidden="true"><span></span><span></span><span></span></div>
104+
<div class="sd-shot-grid" aria-hidden="true">
105+
<div class="sd-code-lines">
106+
<span></span><span></span><span></span><span></span><span></span>
107+
</div>
108+
<div class="sd-phone-mini">
109+
<span></span><strong>Continue</strong>
110+
</div>
111+
<div class="sd-inspector-lines">
112+
<span></span><span></span><span></span><span></span>
113+
</div>
114+
</div>
115+
</div>
116+
</article>
117+
118+
<article class="sd-moment sd-reveal">
119+
<div class="sd-index" aria-hidden="true">02</div>
120+
<div class="sd-moment-copy">
121+
<h3>Pull request previews for mobile apps</h3>
122+
<p>
123+
GitHub Actions can build the app, boot a simulator, and stream the session back through
124+
SimDeck. Review a mobile PR like a web preview: open it, tap around, and merge with actual
125+
confidence.
126+
</p>
127+
</div>
128+
<div class="sd-shot sd-shot-pr" aria-label="Screenshot placeholder for pull request preview">
129+
<div class="sd-pr-row">
130+
<span class="sd-status-dot" aria-hidden="true"></span>
131+
<div><strong>Preview ready</strong><small>Started by SimDeck</small></div>
132+
<em>2m ago</em>
133+
</div>
134+
<div class="sd-pr-device" aria-hidden="true">
135+
<span></span><span></span><span></span>
136+
</div>
137+
</div>
138+
</article>
139+
140+
<article class="sd-moment sd-reveal">
141+
<div class="sd-index" aria-hidden="true">03</div>
142+
<div class="sd-moment-copy">
143+
<h3>Remote simulator access without the screen-share lag</h3>
144+
<p>
145+
WebRTC carries the live stream to browsers, teammates, and SimDeck Studio on iOS. Pair
146+
once, then drive the simulator from wherever the work is happening.
147+
</p>
148+
</div>
149+
<div class="sd-shot sd-shot-remote" aria-label="Screenshot placeholder for remote WebRTC access">
150+
<div class="sd-remote-toolbar">
151+
<span>WebRTC</span><span>Connected</span><span>23ms</span>
152+
</div>
153+
<div class="sd-remote-controls" aria-hidden="true">
154+
<span></span><span></span><span></span><span></span><span></span>
155+
</div>
156+
<div class="sd-remote-device" aria-hidden="true"></div>
157+
</div>
158+
</article>
159+
160+
<article class="sd-moment sd-reveal">
161+
<div class="sd-index" aria-hidden="true">04</div>
162+
<div class="sd-moment-copy">
163+
<h3>A CLI your agents can actually trust</h3>
164+
<p>
165+
Boot, install, launch, tap, type, describe, screenshot, record, and assert. Stable commands
166+
and clear JSON errors turn simulators into end-to-end test rigs for every agent in your fleet.
167+
</p>
168+
</div>
169+
<div class="sd-shot sd-shot-cli" aria-label="Screenshot placeholder for SimDeck CLI automation">
170+
<div class="sd-cli-lines" aria-hidden="true">
171+
<span>$ simdeck boot "iPhone 17"</span>
172+
<span>$ simdeck install app.app</span>
173+
<span>$ simdeck tap --label Continue</span>
174+
<span>$ simdeck describe --format agent</span>
175+
</div>
176+
</div>
177+
</article>
178+
</div>
179+
</section>
180+
181+
<section class="sd-close sd-reveal" aria-label="Start using SimDeck">
182+
<div>
183+
<h2>Don't switch context. Give the simulator a URL.</h2>
184+
<p>
185+
Run it headlessly on your Mac, stream it into your editor or pull request, and let agents tap,
186+
type, inspect, screenshot, and verify without taking over your screen.
187+
</p>
188+
</div>
189+
<a href="/guide/quick-start">Start with the quick start</a>
190+
</section>
191+
</main>
192+
</template>

0 commit comments

Comments
 (0)