Skip to content

Commit 93d0709

Browse files
authored
docs: add VitePress site with GitHub Pages deploy workflow (#1)
* docs: add VitePress site with GitHub Pages deploy workflow * docs: rename Simdeck to SimDeck
1 parent 0b815bb commit 93d0709

39 files changed

Lines changed: 5916 additions & 61 deletions

.github/workflows/docs.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Deploy Docs
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "docs/**"
9+
- "package.json"
10+
- "package-lock.json"
11+
- ".github/workflows/docs.yml"
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents: read
16+
pages: write
17+
id-token: write
18+
19+
concurrency:
20+
group: pages
21+
cancel-in-progress: false
22+
23+
jobs:
24+
build:
25+
name: Build VitePress site
26+
runs-on: ubuntu-latest
27+
28+
steps:
29+
- uses: actions/checkout@v4
30+
with:
31+
fetch-depth: 0
32+
33+
- uses: actions/setup-node@v4
34+
with:
35+
node-version: 20
36+
cache: npm
37+
cache-dependency-path: package-lock.json
38+
39+
- name: Configure GitHub Pages
40+
uses: actions/configure-pages@v5
41+
42+
- name: Install root dependencies
43+
run: npm ci --ignore-scripts
44+
45+
- name: Build docs
46+
run: npm run docs:build
47+
48+
- name: Upload Pages artifact
49+
uses: actions/upload-pages-artifact@v3
50+
with:
51+
path: docs/.vitepress/dist
52+
53+
deploy:
54+
name: Deploy to GitHub Pages
55+
needs: build
56+
runs-on: ubuntu-latest
57+
58+
environment:
59+
name: github-pages
60+
url: ${{ steps.deployment.outputs.page_url }}
61+
62+
steps:
63+
- name: Deploy to GitHub Pages
64+
id: deployment
65+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ client/dist/
88
packages/inspector-agent/.build/
99
packages/inspector-agent/.swiftpm/
1010
packages/nativescript-inspector/dist/
11+
docs/.vitepress/dist/
12+
docs/.vitepress/cache/
1113

1214
# Package manager installs and caches
1315
node_modules/

.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ packages/inspector-agent/.build
77
packages/nativescript-inspector/dist
88
node_modules
99
server/target
10+
docs/.vitepress/dist
11+
docs/.vitepress/cache

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This repository is a local-first simulator control plane. The product goal is a
88
- `client/` is the browser UI.
99
- `skills/xcode-canvas-web/SKILL.md` is the operator guide for using the tool from Codex.
1010
- `scripts/` holds repeatable build entrypoints.
11+
- `docs/` is the public VitePress documentation site (deployed to GitHub Pages by `.github/workflows/docs.yml`).
1112

1213
The native side should own anything that depends on macOS frameworks, `xcrun simctl`, or private CoreSimulator/SimulatorKit APIs. The web client should stay thin and consume the CLI API.
1314

@@ -131,6 +132,7 @@ Useful direct commands:
131132

132133
- If you add an API route, add the matching client affordance or document why it stays CLI-only.
133134
- If you change the CLI invocation shape, update `README.md` and `skills/xcode-canvas-web/SKILL.md` in the same pass.
135+
- If you change a CLI flag, REST route, packet format, or inspector method, update the matching page under `docs/` in the same pass.
134136
- If you expand the private framework bridge, document the Xcode/runtime assumptions here.
135137
- If a feature depends on a booted simulator, fail with a clear JSON error instead of silently returning an empty asset.
136138
- Do not reintroduce legacy `/stream.h264` handling. The supported live path is Rust-managed WebTransport.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ npm install -g .
4646

4747
After a global install, use the `xcode-canvas-web` command directly. From a local checkout, you can also run `./build/xcode-canvas-web`.
4848

49+
## Documentation
50+
51+
Full documentation lives at [djdeveloperr.github.io/xcode-canvas-web](https://djdeveloperr.github.io/xcode-canvas-web/), with guides, the CLI reference, the REST API, the WebTransport video pipeline, and the inspector protocols. The source for the site lives in [`docs/`](docs/) — preview it locally with `npm run docs:dev`.
52+
4953
## Run
5054

5155
```sh

docs/.vitepress/config.mts

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
import { defineConfig } from "vitepress";
2+
3+
const repoName = "xcode-canvas-web";
4+
const githubUrl = `https://github.com/DjDeveloperr/${repoName}`;
5+
6+
export default defineConfig({
7+
title: "SimDeck",
8+
description:
9+
"A local-first iOS Simulator control plane with a browser UI, REST API, and WebTransport video.",
10+
lang: "en-US",
11+
cleanUrls: true,
12+
lastUpdated: true,
13+
base: `/${repoName}/`,
14+
15+
head: [
16+
["meta", { name: "theme-color", content: "#0a84ff" }],
17+
["meta", { property: "og:type", content: "website" }],
18+
["meta", { property: "og:title", content: "SimDeck" }],
19+
[
20+
"meta",
21+
{
22+
property: "og:description",
23+
content:
24+
"A local iOS Simulator control plane with a browser UI, REST API, and WebTransport video.",
25+
},
26+
],
27+
[
28+
"meta",
29+
{
30+
property: "og:url",
31+
content: `https://djdeveloperr.github.io/${repoName}/`,
32+
},
33+
],
34+
],
35+
36+
themeConfig: {
37+
siteTitle: "SimDeck",
38+
39+
nav: [
40+
{ text: "Guide", link: "/guide/", activeMatch: "/guide/" },
41+
{ text: "CLI", link: "/cli/", activeMatch: "/cli/" },
42+
{ text: "API", link: "/api/rest", activeMatch: "/api/" },
43+
{
44+
text: "Inspector",
45+
link: "/inspector/",
46+
activeMatch: "/inspector/",
47+
},
48+
{
49+
text: "Extensions",
50+
link: "/extensions/vscode",
51+
activeMatch: "/extensions/",
52+
},
53+
{
54+
text: "0.1.0",
55+
items: [
56+
{
57+
text: "Changelog",
58+
link: `${githubUrl}/releases`,
59+
},
60+
{
61+
text: "Contributing",
62+
link: "/contributing",
63+
},
64+
],
65+
},
66+
],
67+
68+
sidebar: {
69+
"/guide/": [
70+
{
71+
text: "Getting Started",
72+
items: [
73+
{ text: "Introduction", link: "/guide/" },
74+
{ text: "Installation", link: "/guide/installation" },
75+
{ text: "Quick Start", link: "/guide/quick-start" },
76+
],
77+
},
78+
{
79+
text: "Concepts",
80+
items: [
81+
{ text: "Architecture", link: "/guide/architecture" },
82+
{ text: "Video Pipeline", link: "/guide/video" },
83+
{ text: "LAN Access", link: "/guide/lan-access" },
84+
{ text: "Background Service", link: "/guide/service" },
85+
],
86+
},
87+
{
88+
text: "Operating SimDeck",
89+
items: [
90+
{ text: "Troubleshooting", link: "/guide/troubleshooting" },
91+
{ text: "Contributing", link: "/contributing" },
92+
],
93+
},
94+
],
95+
96+
"/cli/": [
97+
{
98+
text: "CLI",
99+
items: [
100+
{ text: "Overview", link: "/cli/" },
101+
{ text: "Command Reference", link: "/cli/commands" },
102+
{ text: "Flags & Options", link: "/cli/flags" },
103+
],
104+
},
105+
],
106+
107+
"/api/": [
108+
{
109+
text: "HTTP API",
110+
items: [
111+
{ text: "REST Endpoints", link: "/api/rest" },
112+
{ text: "Health & Metrics", link: "/api/health" },
113+
],
114+
},
115+
{
116+
text: "Live Video",
117+
items: [
118+
{ text: "WebTransport", link: "/api/webtransport" },
119+
{ text: "Packet Format", link: "/api/packet-format" },
120+
],
121+
},
122+
{
123+
text: "Inspectors",
124+
items: [
125+
{ text: "Inspector Protocol", link: "/api/inspector-protocol" },
126+
],
127+
},
128+
],
129+
130+
"/inspector/": [
131+
{
132+
text: "Inspector",
133+
items: [
134+
{ text: "Overview", link: "/inspector/" },
135+
{ text: "Accessibility (AXe)", link: "/inspector/accessibility" },
136+
{
137+
text: "Swift In-App Agent",
138+
link: "/inspector/swift",
139+
},
140+
{
141+
text: "NativeScript Runtime",
142+
link: "/inspector/nativescript",
143+
},
144+
],
145+
},
146+
],
147+
148+
"/extensions/": [
149+
{
150+
text: "Extensions",
151+
items: [
152+
{ text: "VS Code", link: "/extensions/vscode" },
153+
{ text: "Browser Client", link: "/extensions/browser-client" },
154+
],
155+
},
156+
],
157+
},
158+
159+
socialLinks: [{ icon: "github", link: githubUrl }],
160+
161+
editLink: {
162+
pattern: `${githubUrl}/edit/main/docs/:path`,
163+
text: "Edit this page on GitHub",
164+
},
165+
166+
search: {
167+
provider: "local",
168+
},
169+
170+
footer: {
171+
message: "Released under the Apache-2.0 License.",
172+
copyright: `Copyright © 2026 SimDeck contributors.`,
173+
},
174+
175+
outline: {
176+
level: [2, 3],
177+
},
178+
},
179+
});

0 commit comments

Comments
 (0)