Skip to content

Commit 8f48173

Browse files
kaci8claude
andauthored
[8thwall.org] Add Docusaurus site with mobile nav fix and deploy workflow (#4)
* Add Docusaurus site with mobile nav fix and deploy workflow - Docusaurus config, source, components, styles, and legacy policy docs - Mobile nav drawer fix: disable CSS transitions to prevent iOS tab-switch glitch - GitHub Actions deploy workflow (builds on merge to main → gh-pages branch) - Added .gitignore (excludes node_modules, build, .docusaurus, .claude) - README: added mobile testing and deployment sections Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Switch to official Docusaurus deploy workflow, remove legacy static files - Replace peaceiris/actions-gh-pages with GitHub-native Pages deployment - Add test-deploy.yml to validate builds on PRs - Remove legacy static site files from root (index.html, downloads.html, styles.css, images, CNAME) — all superseded by Docusaurus build - Update README to reflect new CI/CD setup Note: requires Settings → Pages → Source set to "GitHub Actions" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 7d09ec2 commit 8f48173

37 files changed

Lines changed: 21818 additions & 939 deletions

.github/workflows/deploy.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build:
10+
name: Build Docusaurus
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
- uses: actions/setup-node@v4
17+
with:
18+
node-version: 20
19+
cache: npm
20+
- name: Install dependencies
21+
run: npm ci
22+
- name: Build website
23+
run: npm run build
24+
- name: Upload build artifact
25+
uses: actions/upload-pages-artifact@v3
26+
with:
27+
path: build
28+
29+
deploy:
30+
name: Deploy to GitHub Pages
31+
needs: build
32+
permissions:
33+
pages: write
34+
id-token: write
35+
environment:
36+
name: github-pages
37+
url: ${{ steps.deployment.outputs.page_url }}
38+
runs-on: ubuntu-latest
39+
steps:
40+
- name: Deploy to GitHub Pages
41+
id: deployment
42+
uses: actions/deploy-pages@v4

.github/workflows/test-deploy.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Test deployment
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
8+
jobs:
9+
test-deploy:
10+
name: Test deployment
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
- uses: actions/setup-node@v4
17+
with:
18+
node-version: 20
19+
cache: npm
20+
- name: Install dependencies
21+
run: npm ci
22+
- name: Test build website
23+
run: npm run build

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# Docusaurus build output and cache
5+
build/
6+
.docusaurus/
7+
8+
# Claude Code local config (plans, memory, worktrees)
9+
.claude/
10+
11+
# System files
12+
.DS_Store

README.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,55 @@
11
# 8thwall.github.io
2-
Landing page for 8th Wall Open Source
2+
3+
Landing page for 8th Wall Open Source. Built with [Docusaurus](https://docusaurus.io/) for one styling system, one nav, one build pipeline (homepage, download page, docs, and blog).
34

45
## Local Development
56

7+
```bash
8+
npm install
9+
npm start
10+
```
11+
12+
Open [http://localhost:3000](http://localhost:3000).
13+
14+
## Build
15+
16+
```bash
17+
npm run build
18+
```
19+
20+
Output is in `build/`. To preview: `npm run serve`.
21+
22+
## Structure
23+
24+
- **Home** (`/`) – Custom React homepage with interactive hero, product cards, getting started, FAQ, CTA
25+
- **Downloads** (`/downloads`) – Custom React downloads page
26+
- **Docs** (`/docs`) – Docusaurus docs (placeholder in `docs/` for future content)
27+
- **Blog** (`/blog`) – Docusaurus blog (folder ready for future posts)
28+
29+
Static assets (logo, favicon, images) live in `static/`. Custom styles are in `src/css/custom.css`.
30+
31+
## Mobile Testing
32+
33+
To test on a physical device on the same Wi-Fi network:
34+
35+
```bash
36+
npm run start:network
637
```
7-
npx http-server .
38+
39+
This starts Docusaurus bound to `0.0.0.0` (all interfaces) on port 3000. Find your machine's local IP:
40+
41+
```bash
42+
# macOS
43+
ipconfig getifaddr en0
844
```
45+
46+
Then open `http://<your-local-ip>:3000` on your phone. Make sure both devices are on the same network.
47+
48+
## Deployment
49+
50+
Two workflows handle CI/CD:
51+
52+
- **`deploy.yml`** — triggers on merge to `main`. Builds the site and deploys via GitHub's native Pages deployment.
53+
- **`test-deploy.yml`** — triggers on pull requests to `main`. Runs a build to catch errors before merge.
54+
55+
**First-time setup:** Go to **Settings → Pages** and set the source to **GitHub Actions**.

docs/.gitkeep

Whitespace-only changes.

docusaurus.config.js

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/** @type {import('@docusaurus/types').Config} */
2+
const config = {
3+
title: '8th Wall',
4+
markdown: {
5+
format: 'detect',
6+
},
7+
tagline: 'Open Source AR & 3D',
8+
favicon: 'favicon.svg',
9+
url: 'https://8thwall.org',
10+
baseUrl: '/',
11+
organizationName: '8thwall',
12+
projectName: '8thwall.github.io',
13+
trailingSlash: false,
14+
onBrokenAnchors: 'warn',
15+
presets: [
16+
[
17+
'classic',
18+
{
19+
docs: false,
20+
blog: {
21+
path: 'blog',
22+
routeBasePath: 'blog',
23+
showReadingTime: false,
24+
},
25+
theme: {
26+
customCss: './src/css/custom.css',
27+
},
28+
},
29+
],
30+
],
31+
themeConfig: {
32+
colorMode: {
33+
defaultMode: 'dark',
34+
disableSwitch: true,
35+
respectPrefersColorScheme: false,
36+
},
37+
announcementBar: {
38+
id: 'migration',
39+
content: '<span class="announcement-text">The hosted 8th Wall platform was retired Feb 28, 2026. Existing published experiences continue to run until Feb 28, 2027.</span><span class="announcement-btns"><a target="_blank" rel="noopener" href="https://8th.io/migration" class="banner-btn">View Migration Guide</a><a target="_blank" rel="noopener" href="https://8th.io/blog" class="banner-btn">View Announcements</a></span>',
40+
backgroundColor: '#111',
41+
textColor: '#a1a1a1',
42+
isCloseable: false,
43+
},
44+
navbar: {
45+
title: '',
46+
logo: {
47+
alt: '8th Wall',
48+
src: 'logo.png',
49+
srcDark: 'logo.png',
50+
height: '24px',
51+
style: { height: '24px', width: 'auto' },
52+
},
53+
items: [
54+
{ href: 'https://github.com/8thwall', label: 'GitHub', position: 'left' },
55+
{ href: 'https://8th.io/examples', label: 'Samples', position: 'left' },
56+
{ href: 'https://www.youtube.com/@8thwall', label: 'Tutorials', position: 'left' },
57+
{ href: 'https://8th.io/blog', label: 'Blog', position: 'left' },
58+
{ href: 'https://8th.io/discord', label: 'Discord', position: 'left' },
59+
{ href: 'https://www.8thwall.com/docs', label: 'Docs', position: 'left' },
60+
{
61+
type: 'html',
62+
position: 'right',
63+
value: '<a href="/downloads" class="btn btn-primary navbar-download-btn">Download</a>',
64+
},
65+
],
66+
},
67+
footer: {},
68+
metadata: [
69+
{ property: 'og:image', content: 'https://8thwall.org/social-cover.png' },
70+
{ property: 'og:type', content: 'website' },
71+
{ name: 'twitter:image', content: 'https://8thwall.org/social-cover.png' },
72+
],
73+
},
74+
clientModules: [require.resolve('./src/clientModules/navbarScroll.js')],
75+
plugins: [
76+
[
77+
'@docusaurus/plugin-content-docs',
78+
{
79+
id: 'legacy-policies',
80+
path: 'legacy-policies',
81+
routeBasePath: 'legacy-policies',
82+
sidebarPath: require.resolve('./sidebars-legacy.js'),
83+
},
84+
],
85+
],
86+
};
87+
88+
module.exports = config;

0 commit comments

Comments
 (0)