This directory contains all applications and services that make up the NexaMesh platform.
The apps/ directory is organized as a monorepo structure, containing multiple
independent applications and services that work together to provide the complete
counter-drone defense system.
- Type: Docusaurus static site
- Purpose: Comprehensive technical documentation portal
- Tech Stack: Docusaurus, React, TypeScript
- Deployment: Azure Static Web Apps (published under
/docs) - Documentation: apps/docs/README.md
- Features:
- Executive summaries and pitch materials
- Technical architecture and specifications
- Business plans and market analysis
- Operations manuals and deployment guides
- Legal and compliance frameworks
- Type: Next.js 14 static site
- Purpose: Public-facing marketing site with interactive demos
- Tech Stack: Next.js 14, React, TypeScript
- Deployment: Azure Static Web Apps (exports to
out/) - Documentation: apps/marketing/README.md
- Features:
- Threat simulator
- ROI calculator
- Interactive demos
- Career application system
- User authentication
- Type: Tauri desktop application
- Purpose: Desktop version of threat simulator with blockchain evidence recording
- Tech Stack: Rust, Leptos/WASM, Tauri
- Documentation: apps/threat-simulator-desktop/README.md
- Features:
- Desktop-native threat simulation
- Blockchain evidence recording
- Offline capability
- Type: Python application
- Purpose: Real-time drone detection for edge devices
- Tech Stack: Python, TensorFlow Lite, OpenCV, Pydantic
- Platforms: Raspberry Pi, NVIDIA Jetson, Desktop
- Documentation: apps/detector/README.md
- Features:
- Modular architecture with hot-swappable components
- Multiple frame sources (Pi Camera, USB, video files, mock)
- Multiple inference engines (TFLite, ONNX, Coral TPU, mock)
- Object tracking (Centroid, Kalman)
- Streaming server
- Alert system with webhooks
- Configuration via YAML files
- Type: Rust web server
- Purpose: Backend API for platform services
- Tech Stack: Rust, Axum
- Documentation: See apps/api/docs/ for deployment and database patterns
- Features:
- RESTful API endpoints
- Database integration patterns
- Deployment configurations
- Type: Rust service
- Purpose: Blockchain keeper service for evidence anchoring
- Tech Stack: Rust
- Features:
- Automated blockchain anchoring
- Evidence management
- Multi-chain support (Solana, EtherLink)
-
Type: Rust CLI tool
-
Purpose: Command-line interface for evidence management
-
Tech Stack: Rust
-
Usage:
cargo run --manifest-path apps/evidence-cli/Cargo.toml -- <command>
- Purpose: Utility scripts specific to applications
- Note: Root-level scripts are in the repository root
scripts/directory
See the root README.md for development commands and setup instructions.
# Build all applications
pnpm build
# Build specific application
pnpm --filter marketing build
pnpm --filter docs build
# Run Rust services
cargo run --manifest-path apps/api/Cargo.toml
cargo run --manifest-path apps/keeper/Cargo.toml# Run Python detector tests
cd apps/detector
pytest
# Run Rust tests
cargo test --manifest-path apps/api/Cargo.toml
cargo test --manifest-path apps/keeper/Cargo.tomlEach application has its own deployment configuration:
- Web Apps (docs, marketing): Deployed to Azure Static Web Apps via GitHub Actions
- API: Deployed to Azure Functions or App Service
- Detector: Deployed to edge devices (Raspberry Pi, NVIDIA Jetson)
- Desktop App: Built as native installers for Windows, macOS, Linux
See the root README.md and DEPLOYMENT.md for detailed deployment instructions.
The applications follow a modular architecture:
- Frontend: React-based web applications (Next.js, Docusaurus)
- Backend: Rust services for performance and safety
- Edge: Python for flexibility and ML integration
- Desktop: Rust + Web technologies via Tauri
All applications share common packages and crates from the monorepo root:
packages/- Shared TypeScript packagescrates/- Shared Rust crates
When adding new applications:
- Create a new directory under
apps/ - Add a
README.mdwith application-specific documentation - Update this
apps/README.mdwith the new application - Update the root
README.mdstructure section - Add appropriate build/deploy configurations
See CONTRIBUTING.md for contribution guidelines.