Skip to content

Commit 16e5d56

Browse files
Add GitHub Pages site and deployment workflow
1 parent f3a932b commit 16e5d56

3 files changed

Lines changed: 290 additions & 0 deletions

File tree

.github/workflows/pages.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Deploy Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "site/**"
9+
- ".github/workflows/pages.yml"
10+
- "README.md"
11+
- "docs/**"
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: true
22+
23+
jobs:
24+
deploy:
25+
runs-on: ubuntu-latest
26+
environment:
27+
name: github-pages
28+
url: ${{ steps.deployment.outputs.page_url }}
29+
30+
steps:
31+
- name: Checkout
32+
uses: actions/checkout@v4
33+
34+
- name: Configure Pages
35+
uses: actions/configure-pages@v5
36+
37+
- name: Upload site artifact
38+
uses: actions/upload-pages-artifact@v3
39+
with:
40+
path: ./site
41+
42+
- name: Deploy to GitHub Pages
43+
id: deployment
44+
uses: actions/deploy-pages@v4

site/index.html

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1" />
6+
<title>Codex Workspace</title>
7+
<meta
8+
name="description"
9+
content="Local-first workspace structure for managing many standalone repos, shared caches, and a practical Workspace Hub without forcing a monorepo."
10+
/>
11+
<link rel="preconnect" href="https://fonts.googleapis.com" />
12+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
13+
<link
14+
href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap"
15+
rel="stylesheet"
16+
/>
17+
<link rel="stylesheet" href="./styles.css" />
18+
</head>
19+
<body>
20+
<div class="page-shell">
21+
<header class="hero">
22+
<p class="eyebrow">Codex Workspace</p>
23+
<h1>One workspace for many repos, without pretending they are one project.</h1>
24+
<p class="lede">
25+
Codex Workspace is a local-first structure for mixed stacks. It keeps
26+
repositories independently runnable, shares caches instead of installs,
27+
and pairs the workspace with a practical Workspace Hub for discovery,
28+
runtime control, and previews.
29+
</p>
30+
<div class="hero-actions">
31+
<a href="https://github.com/RichardGeorgeDavis/Codex-Workspace">View Repository</a>
32+
<a href="https://github.com/RichardGeorgeDavis/Codex-Workspace/tree/main/docs">Read Docs</a>
33+
<a href="https://github.com/RichardGeorgeDavis/Codex-Workspace/releases/tag/v0.1.0">Latest Release</a>
34+
</div>
35+
</header>
36+
37+
<main class="grid">
38+
<section class="card emphasis">
39+
<h2>Core model</h2>
40+
<ul>
41+
<li>Keep unrelated repositories independent.</li>
42+
<li>Share caches, not installs.</li>
43+
<li>Support mixed runtime models without flattening them.</li>
44+
<li>Keep ServBay optional.</li>
45+
</ul>
46+
</section>
47+
48+
<section class="card">
49+
<h2>Workspace Hub</h2>
50+
<p>
51+
The vendored Workspace Hub app scans sibling repos, classifies them
52+
conservatively, exposes runtime state, and adds start, stop, open,
53+
and preview actions without forcing a monorepo.
54+
</p>
55+
<a class="text-link" href="https://github.com/RichardGeorgeDavis/Codex-Workspace/tree/main/repos/workspace-hub">
56+
Explore Workspace Hub
57+
</a>
58+
</section>
59+
60+
<section class="card">
61+
<h2>Documentation</h2>
62+
<p>
63+
The canonical documentation set lives in the repo root under
64+
<code>docs/</code>, with public project framing in the README and
65+
repo-local guidance kept with the code it describes.
66+
</p>
67+
<a class="text-link" href="https://github.com/RichardGeorgeDavis/Codex-Workspace/tree/main/docs">
68+
Open docs index
69+
</a>
70+
</section>
71+
72+
<section class="card">
73+
<h2>Support the work</h2>
74+
<p>
75+
If this workspace model or the Hub tooling is useful, you can
76+
support ongoing work here.
77+
</p>
78+
<a class="text-link" href="https://www.paypal.com/donate/?hosted_button_id=Z9ET7KXE4MMZS">
79+
Support the work
80+
</a>
81+
</section>
82+
</main>
83+
</div>
84+
</body>
85+
</html>

site/styles.css

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
:root {
2+
--bg: #f5efe1;
3+
--panel: rgba(255, 252, 245, 0.78);
4+
--panel-strong: rgba(255, 248, 232, 0.92);
5+
--text: #1f1a16;
6+
--muted: #63584d;
7+
--line: rgba(31, 26, 22, 0.12);
8+
--accent: #0f766e;
9+
--accent-strong: #134e4a;
10+
--shadow: 0 24px 80px rgba(71, 52, 31, 0.14);
11+
}
12+
13+
* {
14+
box-sizing: border-box;
15+
}
16+
17+
html,
18+
body {
19+
margin: 0;
20+
min-height: 100%;
21+
}
22+
23+
body {
24+
background:
25+
radial-gradient(circle at top left, rgba(15, 118, 110, 0.18), transparent 28%),
26+
radial-gradient(circle at bottom right, rgba(191, 143, 0, 0.14), transparent 30%),
27+
linear-gradient(180deg, #fbf6ec 0%, var(--bg) 100%);
28+
color: var(--text);
29+
font-family: "IBM Plex Sans", "Helvetica Neue", sans-serif;
30+
}
31+
32+
.page-shell {
33+
width: min(1100px, calc(100% - 2rem));
34+
margin: 0 auto;
35+
padding: 3rem 0 4rem;
36+
}
37+
38+
.hero {
39+
padding: 2.5rem;
40+
border: 1px solid var(--line);
41+
border-radius: 28px;
42+
background: linear-gradient(145deg, rgba(255, 252, 245, 0.94), rgba(250, 243, 230, 0.88));
43+
box-shadow: var(--shadow);
44+
}
45+
46+
.eyebrow,
47+
h1,
48+
h2 {
49+
font-family: "Space Grotesk", sans-serif;
50+
}
51+
52+
.eyebrow {
53+
margin: 0 0 1rem;
54+
letter-spacing: 0.12em;
55+
text-transform: uppercase;
56+
font-size: 0.82rem;
57+
color: var(--accent-strong);
58+
}
59+
60+
h1 {
61+
margin: 0;
62+
max-width: 12ch;
63+
font-size: clamp(2.7rem, 5vw, 4.9rem);
64+
line-height: 0.95;
65+
}
66+
67+
.lede {
68+
max-width: 58rem;
69+
margin: 1.4rem 0 0;
70+
font-size: 1.1rem;
71+
line-height: 1.7;
72+
color: var(--muted);
73+
}
74+
75+
.hero-actions {
76+
display: flex;
77+
flex-wrap: wrap;
78+
gap: 0.8rem;
79+
margin-top: 1.8rem;
80+
}
81+
82+
.hero-actions a,
83+
.text-link {
84+
color: var(--accent-strong);
85+
text-decoration: none;
86+
font-weight: 600;
87+
}
88+
89+
.hero-actions a {
90+
display: inline-flex;
91+
align-items: center;
92+
min-height: 46px;
93+
padding: 0.8rem 1rem;
94+
border: 1px solid rgba(19, 78, 74, 0.18);
95+
border-radius: 999px;
96+
background: rgba(255, 255, 255, 0.7);
97+
}
98+
99+
.hero-actions a:hover,
100+
.text-link:hover {
101+
color: var(--accent);
102+
}
103+
104+
.grid {
105+
display: grid;
106+
grid-template-columns: repeat(2, minmax(0, 1fr));
107+
gap: 1rem;
108+
margin-top: 1rem;
109+
}
110+
111+
.card {
112+
padding: 1.4rem;
113+
border: 1px solid var(--line);
114+
border-radius: 22px;
115+
background: var(--panel);
116+
backdrop-filter: blur(10px);
117+
box-shadow: 0 12px 36px rgba(71, 52, 31, 0.08);
118+
}
119+
120+
.card.emphasis {
121+
background: var(--panel-strong);
122+
}
123+
124+
h2 {
125+
margin: 0 0 0.9rem;
126+
font-size: 1.25rem;
127+
}
128+
129+
p,
130+
li {
131+
color: var(--muted);
132+
line-height: 1.7;
133+
}
134+
135+
ul {
136+
margin: 0;
137+
padding-left: 1.2rem;
138+
}
139+
140+
code {
141+
padding: 0.15rem 0.35rem;
142+
border-radius: 0.45rem;
143+
background: rgba(19, 78, 74, 0.08);
144+
color: var(--text);
145+
}
146+
147+
@media (max-width: 760px) {
148+
.page-shell {
149+
width: min(100% - 1rem, 1100px);
150+
padding-top: 1rem;
151+
}
152+
153+
.hero {
154+
padding: 1.5rem;
155+
border-radius: 24px;
156+
}
157+
158+
.grid {
159+
grid-template-columns: 1fr;
160+
}
161+
}

0 commit comments

Comments
 (0)