System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| Node.js | 20.x | 22.x (LTS) |
| Browser | Chrome 89+ / Edge 89+ | Latest Chrome |
| RAM | 4 GB | 8 GB |
| OS | macOS, Windows 10+, Linux | Any |
WebSerial (USB connections) only works in Chromium-based browsers. Safari and Firefox do not support it.
Quick Start
Open in your browser
Navigate to http://localhost:4000. You will see the dashboard.
Available Scripts
| Command | Description |
|---|---|
npm run dev | Development server on port 4000 (Turbopack). No demo data. |
npm run demo | Development server with 5 simulated drones. Great for exploring the UI. |
npm run build | Production build. |
npm run start | Start the production server on port 4000. |
npm run lint | Run ESLint. |
npm run test | Run Vitest unit tests. |
npm run test:e2e | Run Playwright end-to-end tests (demo mode). |
npm run test:e2e:sitl | Run Playwright tests against a real SITL instance. |
Demo Mode
Demo mode is the fastest way to explore Mission Control without hardware.NEXT_PUBLIC_DEMO_MODE=true and starts the dev server. Five simulated drones appear on the dashboard with realistic telemetry, GPS tracks, and flight modes. All configuration panels work with mock parameters.
You can also activate demo mode by adding ?demo=true to any URL:
Environment Variables
Create a.env file in the project root for optional features. A .env.example file is included in the repo.
Electron Desktop App
Build a standalone desktop application for macOS, Windows, or Linux.
For development, you can run the Electron app without building a distributable:
Electron Architecture
The Electron app wraps the same Next.js standalone server. No proxy layer is needed. The main process starts the Node.js server and opens a BrowserWindow pointed athttp://127.0.0.1:4000.
Convex Backend (Optional)
If you want cloud features (authentication, fleet sync, community changelog, cloud relay), deploy a Convex backend.convex/ directory in the repo contains the standalone backend with 25 tables (7 auth + 18 custom). Community users can deploy their own instance without depending on any external service.
Updating
Pull the latest changes and reinstall dependencies:Troubleshooting
Port 4000 is already in use
Port 4000 is already in use
Another process is using port 4000. Kill it or change the port:
WebSerial not available
WebSerial not available
WebSerial requires a Chromium-based browser (Chrome 89+, Edge 89+). It is not available in Firefox or Safari. Make sure you are not running in an incognito window with restricted permissions.
Convex connection fails
Convex connection fails
Check that your
NEXT_PUBLIC_CONVEX_URL is correct and the Convex backend is running. Cloud features are optional. The GCS works fine without Convex for local connections.Electron build fails on macOS
Electron build fails on macOS
Make sure Xcode command line tools are installed:
xcode-select --install. Electron Builder needs native compilation tools for the packaging step.