This repository contains both the landing page (Next.js) and documentation (MkDocs) for ProjectAlita, deployed together to GitHub Pages.
- Landing Page: https://elitea.ai
- Documentation: https://elitea.ai/docs/
projectalita.github.io/
βββ web/ # Next.js landing page
β βββ pages/ # Next.js pages
β βββ src/ # Source code
β βββ public/ # Static assets
β βββ out/ # Build output (generated)
β βββ package.json
β
βββ docs/ # MkDocs documentation source
β βββ home/
β βββ getting-started/
β βββ how-tos/
β βββ ... (other docs)
β
βββ site/ # MkDocs build output (generated)
βββ scripts/ # Development & build scripts
βββ mkdocs.yml # MkDocs configuration
βββ .github/workflows/ # GitHub Actions workflows
βββ deploy-unified.yml # Unified deployment workflow
- Node.js 18+ (for Next.js landing page)
- Python 3.x (for MkDocs documentation)
- pip (Python package manager)
# Install all dependencies (Next.js + MkDocs)
./scripts/install-deps.sh./scripts/dev-all.shThis starts:
- Landing page at http://localhost:3000
- Documentation at http://localhost:8000
Press Ctrl+C to stop both servers.
Landing page only:
./scripts/dev-landing.shOpens at http://localhost:3000
Documentation only:
./scripts/dev-docs.shOpens at http://localhost:8000
./scripts/build-all.shThis builds:
- Next.js β
web/out/ - MkDocs β
site/
./scripts/serve-built.shThis creates a unified preview matching the production structure:
- Landing: http://localhost:8080
- Docs: http://localhost:8080/docs/
Perfect for testing before deployment! Press Ctrl+C to stop.
The site deploys automatically to GitHub Pages when you push to main branch:
git add .
git commit -m "Update content"
git push origin mainGitHub Actions will:
- Build the Next.js landing page
- Build the MkDocs documentation
- Combine them into a unified deployment
- Deploy to GitHub Pages
Trigger deployment manually from GitHub:
- Go to Actions tab
- Select Deploy Landing + Docs to GitHub Pages
- Click Run workflow
GitHub Pages (elitea.ai)
βββ / (root) β Next.js landing page
βββ /docs/ β MkDocs documentation
Configuration: web/next.config.js
{
output: 'export', // Static export
trailingSlash: true, // Add trailing slashes
images: { unoptimized: true } // No image optimization for static export
}Configuration: mkdocs.yml
Key settings:
site_url: https://elitea.ai/docs/- Documentation base URL- Theme: Material for MkDocs
- Plugins: search, glightbox (image lightbox)
- Edit files in
web/directory - Test locally:
./scripts/dev-landing.sh - Commit and push (auto-deploys)
- Edit Markdown files in
docs/directory - Test locally:
./scripts/dev-docs.sh - Commit and push (auto-deploys)
- Create new
.mdfile in appropriatedocs/subdirectory - Add entry to
nav:section inmkdocs.yml - Test locally to verify navigation
| Script | Description |
|---|---|
./scripts/install-deps.sh |
Install all dependencies |
./scripts/dev-landing.sh |
Start landing page dev server |
./scripts/dev-docs.sh |
Start documentation dev server |
./scripts/dev-all.sh |
Start both servers concurrently |
./scripts/build-all.sh |
Build both applications |
./scripts/serve-built.sh |
Preview unified build locally |
pip install mkdocs mkdocs-material mkdocs-glightboxcd web
rm -rf node_modules package-lock.json
npm install- Landing (3000): Kill the process or use a different port
- Docs (8000): Kill the process or specify different port with
mkdocs serve -a localhost:8001
- Check Actions tab for error logs
- Test build locally:
./scripts/build-all.sh - Ensure all paths in workflow match new structure
Ensure these settings in your repository:
- Settings β Pages
- Source: GitHub Actions (not branch-based)
- Custom domain: elitea.ai
- Ensure DNS A records point to GitHub Pages IPs
See LICENSE file for details.