Contributing
ArgoPlane is open source (Apache-2.0). Contributions are welcome.
Repository structure
extensions/ # ArgoCD UI extensions (React + Go)
shared/ # Shared React component library
metrics/ # Metrics extension (Prometheus)
backups/ # Backups extension (Velero)
networking/ # Networking extension (Cilium/Hubble)
services/ # Standalone services
docs/ # Documentation site (SvelteKit)
design-system/ # CSS design tokens and components
hack/ # Dev scripts (kind cluster, ArgoCD setup)
deploy/ # Deployment manifests
argocd/ # ArgoCD configuration
extensions/ # Per-extension deployments
examples/ # Demo applications
tests/ # Integration tests
docs/ # Static docs (styleguide, roadmap) Development workflow
# Set up local dev environment
make dev-infra
# Build all extensions
make build-extensions
# Deploy to local cluster
make setup-argocd
# Deploy demo app
make deploy-example
# Run integration tests
make test-integration
# Build docs site
cd services/docs && npm run dev Commit conventions
Concise, imperative mood. Focus on “why” not “what”:
Add metrics extension with Prometheus backend
Fix backup schedule timezone handling
Wire up proxy extension config for networking Adding a new extension
See the developing guide for the full checklist. Key steps:
- Create
extensions/<name>/ui/andextensions/<name>/backend/ - Register via
window.extensionsAPI - Add deployment manifests, proxy config, RBAC
- Update the demo app
- Update documentation
Code style
- Go: follow Effective Go,
log/slogfor logging,net/httpstdlib for HTTP - TypeScript/React: strict mode, no
any(except ArgoCD API types), PascalCase components - CSS: use design system tokens, no hardcoded colors, 4px grid