Official website and documentation platform for OpenHD - Open Source Digital FPV System.
- Modern Documentation: Built with Docusaurus 3.8.1
- Version Management: Support for multiple OpenHD versions (Evo Latest & 2.0)
- Local Search: Fast client-side search functionality
- Responsive Design: Modern FPV-themed UI with HUD elements
- Community Integration: Direct links to Discord, Telegram, and other channels
- Asset Management: All images and assets locally hosted
- Docusaurus - Static site generator
- TypeScript - Type safety
- React - UI framework
- @easyops-cn/docusaurus-search-local - Local search
- Node.js 18+
- pnpm 9 (via
corepack enable)
# Clone the repository
git clone https://github.com/OpenHD/OpenHD-Website.git
cd OpenHD-Website
# Enable corepack (once per machine)
corepack enable
# Install dependencies
pnpm install
# Start development server
pnpm start# Build static files
pnpm build
# Serve built files locally
pnpm serve
Note: During `pnpm build`, a script converts `.png/.jpg` in `static/img` to `.avif`. Use the `OptimizedImg` component or CSS `image-set(...)` to prefer AVIF with fallback.├── docs/ # Current documentation (Evo Latest)
├── versioned_docs/
│ └── version-2.0/ # Version 2.0 documentation
├── static/
│ └── img/
│ └── assets/ # Images and assets
│ └── v2-0/ # Version-specific assets
├── src/
│ └── pages/ # Custom pages (Homepage, etc.)
├── docusaurus.config.ts # Main configuration
└── sidebars.ts # Sidebar configuration
The site uses a custom FPV-themed design with:
- HUD-style elements and overlays
- OpenHD brand colors
- Responsive navigation
- Animated elements
- Create documentation in
docs/ - Run
npm run docusaurus docs:version X.X - Assets go in
static/img/assets/vX-X/
pnpm start- Start development serverpnpm build- Build for productionpnpm serve- Serve built filespnpm clear- Clear cachepnpm swizzle- Eject components for customization
- AVIF conversion runs at build time for files under
static/img. - In React, use
src/components/OptimizedImg.tsx:<OptimizedImg path="/img/logo.png" alt="Logo" /> - In CSS, prefer:
background-image: image-set(url('/img/hero.avif') type('image/avif'), url('/img/hero.png') type('image/png'));
Use the included PowerShell script to migrate external assets:
powershell -ExecutionPolicy Bypass -File migrate-assets.ps1This site is designed to be deployed on:
- GitHub Pages (recommended)
- Netlify
- Vercel
- Any static hosting service
The site includes GitHub Actions workflow for automatic deployment. Simply push to the main branch.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Join our Discord community
- Visit our Telegram channel
- Check the documentation
Made with ❤️ by the OpenHD Community