# GuruRMM Feature Roadmap

This document tracks potential features for consideration. Features are categorized by area and marked with priority/status as planning progresses.

## Legend
- [ ] Not started
- [~] In consideration
- [x] Implemented
- Priority: P1 (critical), P2 (important), P3 (nice-to-have)

---

## Core Agent Features

### Monitoring & Metrics
- [ ] CPU, RAM, disk usage (basic) - P1
- [ ] Process monitoring (top processes by resource) - P2
- [ ] Service status monitoring - P1
- [ ] Disk health (SMART data) - P2
- [ ] Network interface stats - P2
- [ ] Custom metric collectors (plugin system) - P3
- [ ] Windows Event Log monitoring - P2
- [ ] Linux syslog/journald monitoring - P2
- [ ] Application-specific monitors (SQL Server, IIS, Apache, etc.) - P3

### Remote Commands
- [ ] Execute shell commands - P1
- [ ] PowerShell support (Windows) - P1
- [ ] Bash support (Linux/Mac) - P1
- [ ] Command templates (reusable scripts) - P2
- [ ] Scheduled commands (cron-like) - P2
- [ ] Command approval workflow - P3
- [ ] Command audit logging - P1

### File Operations
- [ ] File transfer (push/pull) - P2
- [ ] File browser - P3
- [ ] Configuration file management - P2
- [ ] Backup file retrieval - P3

### Software Management
- [ ] Installed software inventory - P2
- [ ] Software deployment (silent install) - P2
- [ ] Patch management integration - P3
- [ ] Windows Update status - P2
- [ ] Package manager integration (apt, yum, chocolatey, winget) - P3

### Agent Updates
- [ ] Built-in update handler (not shell script based) - P1
- [ ] Server sends update command with version, URL, checksum - P1
- [ ] Download to temp, verify SHA256, replace binary - P1
- [ ] Platform-specific restart logic - P1
- [ ] Backup previous binary for rollback - P2
- [ ] Auto-rollback if new version fails to connect - P2
- [ ] Version tracking in server database - P1
- [ ] Fleet-wide version dashboard - P2
- [ ] Staged rollouts (% of agents at a time) - P3
- [ ] Update scheduling (maintenance windows) - P2

### White-Labeling / Branding
MSPs need to brand the agent with their company identity.

#### Install-Time Branding
- [ ] Custom service name (`--service-name "AcmeTech Agent"`) - P2
- [ ] Custom display name (`--display-name "AcmeTech Monitor"`) - P2
- [ ] Custom install path (`--install-path "C:\Program Files\AcmeTech"`) - P2
- [ ] Custom binary name (rename on install) - P3
- [ ] Branding config file (alternative to CLI flags) - P2

#### Runtime Branding (Server-Managed)
- [ ] Branding config pushed from server - P2
- [ ] MSP logo/icon URL - P2
- [ ] Support contact info (phone, email, URL) - P2
- [ ] Custom "About" dialog content - P2
- [ ] Per-customer branding overrides - P3

### System Tray / End-User Self-Service (Windows/macOS)
Interactive tray icon for end users to access self-service features.

#### Tray Infrastructure
- [ ] System tray icon (Windows) - P2
- [ ] Menu bar icon (macOS) - P2
- [ ] Custom icon support (MSP branding) - P2
- [ ] Connection status indicator (connected/disconnected) - P2
- [ ] Tooltip with basic info (hostname, status) - P2

#### Built-In Actions
- [ ] Show System Info dialog (hostname, IP, OS, agent version) - P2
- [ ] Create Support Ticket (opens form or portal link) - P2
- [ ] Screenshot to Ticket (capture screen, attach to new ticket) - P2
- [ ] About dialog (version, MSP branding, support contact) - P2

#### Admin-Definable Custom Actions
Server pushes custom tray menu items that execute predefined commands.
- [ ] Custom action data model (label, icon, command, elevation, confirm) - P2
- [ ] Action types: RunCommand, RestartService, OpenUrl, RunScript - P2
- [ ] Confirmation dialogs ("Are you sure?") - P2
- [ ] Elevation support (run as admin) - P2
- [ ] Per-customer action sets - P2
- [ ] Action categories/submenus - P3
- [ ] Success/failure notifications - P2

#### Example Custom Actions
```
├── Quick Actions
│   ├── Restart Print Spooler
│   ├── Clear Temp Files
│   ├── Restart Network Adapter
│   ├── Flush DNS Cache
│   └── (admin-defined...)
```

#### Security
- [ ] Actions are server-defined only (users can't add) - P1
- [ ] Audit logging of tray action executions - P2
- [ ] Optional PIN/password for sensitive actions - P3

---

## Server/API Features

### Authentication & Authorization
- [ ] JWT authentication - P1
- [ ] API keys for agents - P1
- [ ] Role-based access control (RBAC) - P2
- [ ] Multi-tenant support - P3
- [ ] SSO integration (SAML, OAuth) - P3
- [ ] 2FA/MFA support - P2

### Agent Management
- [ ] Agent registration/enrollment - P1
- [ ] Agent grouping/tagging - P2
- [ ] Agent policies (config profiles) - P2
- [ ] Bulk operations - P2
- [ ] Agent health monitoring - P1
- [ ] Auto-update agents - P2

### Site Proxy / Local Node
- [ ] Agent can operate as site proxy/hub - P2
- [ ] Local agents connect to proxy instead of cloud - P2
- [ ] Proxy aggregates metrics and forwards to server - P2
- [ ] Store-and-forward when WAN is unavailable - P2
- [ ] Local command relay (proxy executes commands on local agents) - P2
- [ ] Reduced WAN bandwidth (batched/compressed uploads) - P3
- [ ] Failover between multiple proxies at site - P3
- [ ] Proxy discovery (agents auto-find local proxy) - P3
- [ ] Mesh communication between proxies - P3
- [ ] Local caching of scripts/files for faster deployment - P2
- [ ] Site-level alerting (proxy can alert locally if WAN down) - P3

### Alerting
- [ ] Threshold-based alerts - P1
- [ ] Alert escalation - P2
- [ ] Alert suppression/maintenance windows - P2
- [ ] Email notifications - P1
- [ ] SMS notifications - P3
- [ ] Webhook notifications - P2
- [ ] PagerDuty/Opsgenie integration - P3
- [ ] Slack/Teams integration - P2

### Reporting & Analytics
- [ ] Unified reporting engine (works across RMM, PSA, all modules) - P1
- [ ] Clean, modern report templates - P1
- [ ] Custom report builder (drag-and-drop) - P2
- [ ] Scheduled report delivery (email, portal) - P2
- [ ] White-label/branding support - P2
- [ ] Export formats: PDF, Excel, CSV, HTML - P1
- [ ] Executive summary dashboards - P2
- [ ] Uptime/SLA reports - P2
- [ ] Resource usage trends with visualizations - P2
- [ ] Ticket metrics (response time, resolution time, volume) - P2
- [ ] Technician performance/utilization - P2
- [ ] Customer health scores - P3
- [ ] Revenue/profitability by customer - P3
- [ ] Report templates library (pre-built, shareable) - P2

#### Data Granularity & Flexible Calculations
The data model must support arbitrary business logic, not just canned reports.

- [ ] Granular time entry data (tech, client, ticket, service type, rate plan) - P1
- [ ] Effective rate tracking per client/plan (block rate vs hourly vs plan) - P2
- [ ] Calculated fields / custom formulas in reports - P2
- [ ] Multi-variable calculations (hours × effective rate × commission %) - P2
- [ ] Aggregation at any level (tech, client, service type, date range) - P2
- [ ] Rate plan / contract type as first-class data dimension - P2
- [ ] Historical rate tracking (rate was X on this date) - P2
- [ ] Payroll-ready exports (base + commission breakdown) - P2
- [ ] Custom metrics definition (define your own KPIs) - P2
- [ ] Formula builder for complex business rules - P3
- [ ] Drill-down from summary to line-item detail - P2
- [ ] Data warehouse / OLAP cube for complex analytics - P3
- [ ] API access to raw data for external BI tools - P2

---

## Dashboard Features

### Views
- [ ] Agent list with status - P1
- [ ] Agent detail view - P1
- [ ] Real-time metrics charts - P2
- [ ] Map view (geographic) - P3
- [ ] Network topology view - P3
- [ ] Custom dashboards - P3

### Remote Access
- [ ] Remote terminal (web-based) - P2
- [ ] Remote desktop (RDP/VNC proxy) - P3
- [ ] File manager UI - P3

### Direct Agent Connection (Admin Tunnel)
- [ ] On-demand reverse tunnel to agent - P2
- [ ] Live interactive shell session (not queued commands) - P2
- [ ] Direct command pipe (real-time stdin/stdout/stderr) - P2
- [ ] Point-to-point encrypted tunnel (WireGuard/custom) - P3
- [ ] Tunnel enables direct SSH/RDP through agent - P3
- [ ] Credential/role-based access (only authorized admins) - P1
- [ ] Agent classification determines tunnel capability - P2
- [ ] Session recording for audit - P2
- [ ] Idle timeout and forced disconnect - P2
- [ ] Concurrent session limits - P3
- [ ] Tunnel through site proxy (when agent behind NAT) - P3
- [ ] Local port forwarding through tunnel - P3

### User Experience & Interface Design

#### Design Philosophy
- Beautiful AND functional - no compromise, no "ugly but it works"
- Clean, modern aesthetic with purposeful whitespace
- Information density without clutter
- Consistent design language across all modules
- Accessibility (WCAG compliance, screen readers, keyboard nav)

#### Customization
- [ ] Dark/light/system theme - P2
- [ ] Customizable dashboard layouts (drag-and-drop widgets) - P2
- [ ] User-defined color accents/branding - P2
- [ ] Configurable data density (compact/comfortable/spacious) - P2
- [ ] Saved views and workspace layouts - P2
- [ ] Per-user preferences synced across devices - P2
- [ ] Custom CSS injection for white-label deployments - P3

#### Real-Time Updates
- [ ] WebSocket-based live data (no page refresh) - P1
- [ ] Real-time agent status changes - P1
- [ ] Live metric updates on dashboards - P1
- [ ] Instant alert notifications (toast/badge) - P1
- [ ] Collaborative indicators (who else is viewing this ticket) - P3
- [ ] Optimistic UI updates (instant feedback, sync in background) - P2

#### Third-Party Module Integration
- [ ] Plugin/module API for UI extensions - P2
- [ ] Dashboard widget SDK (third parties can add widgets) - P2
- [ ] Panel embedding (iframe or native component) - P2
- [ ] Unified navigation (third-party modules appear native) - P2
- [ ] Shared authentication context - P2
- [ ] Event bus for cross-module communication - P2
- [ ] Style guide/component library for consistent third-party UI - P2

#### Core UX
- [ ] Mobile responsive (PWA capable) - P2
- [ ] Keyboard shortcuts with command palette (Cmd+K) - P2
- [ ] Saved searches/filters - P2
- [ ] Bulk selection and actions - P2
- [ ] Contextual right-click menus - P3
- [ ] Undo/redo for destructive actions - P2
- [ ] Breadcrumb navigation - P1
- [ ] Global search (agents, tickets, customers, docs) - P1

### Customer Portal (End-User Facing)
- [ ] Branded portal per customer (white-label) - P2
- [ ] Ticket submission and tracking - P1
- [ ] View open/closed ticket history - P1
- [ ] Asset inventory view (their devices) - P2
- [ ] Service status dashboard (are things healthy?) - P2
- [ ] Meaningful metrics (uptime, response times, SLA status) - P2
- [ ] Invoice/billing history - P3
- [ ] Knowledge base / self-service articles - P2
- [ ] Scheduled maintenance notifications - P2
- [ ] Contact directory (who to call for what) - P2
- [ ] Document library (contracts, policies, procedures) - P3
- [ ] Approval workflows (quote approvals, change requests) - P3
- [ ] Mobile-friendly / PWA - P2

---

## Integration Features

### PSA/Ticketing Integration (External)
- [ ] ConnectWise Manage - P3
- [ ] Autotask - P3
- [ ] HaloPSA - P3
- [ ] Generic webhook for tickets - P2
- [ ] Pluggable PSA adapter architecture - P2

### GuruPSA (Companion CRM/PSA) - Separate Project
- [ ] Core ticketing system - P1
- [ ] Customer/company management - P1
- [ ] Contact management - P1
- [ ] Asset linking (from RMM) - P1
- [ ] Time tracking - P2
- [ ] Contracts/SLA management - P2
- [ ] Quoting/proposals - P3
- [ ] Project management - P3
- [ ] Knowledge base - P2
- [ ] Technician mobile app - P3
- [ ] Calendar/scheduling - P3
- [ ] Email integration (ticket from email) - P1
- [ ] Alert-to-ticket automation - P1
- [ ] Shared reporting engine with RMM - P1

### Automated Usage-Based Billing (GuruPSA + RMM Integration)
No more manual agent counting. Usage data flows automatically to invoices.

#### Core Billing Engine
- [ ] Recurring invoice generation - P2
- [ ] Usage metering framework (count anything, bill for it) - P2
- [ ] Billing rules engine (per-agent, per-user, tiered, flat) - P2
- [ ] Proration for mid-cycle changes - P2
- [ ] Invoice approval workflow (review before send) - P2
- [ ] Multi-currency support - P3
- [ ] Tax calculation / integration - P3
- [ ] Payment gateway integration (Stripe, QuickBooks, etc.) - P2

#### RMM-to-Invoice Automation
- [ ] Live agent count per customer - P1
- [ ] Auto-sync agent count to invoice line items - P2
- [ ] Agent add/remove reflected immediately in billing - P2
- [ ] Billable vs non-billable agent classification - P2
- [ ] Per-agent-type pricing (server vs workstation) - P2
- [ ] Audit trail (agent added on X date, removed on Y) - P2
- [ ] Usage snapshots for billing period - P2
- [ ] Dispute resolution (customer says "I only had 10") - P2

#### Third-Party Usage Integration
- [ ] Generic API adapter for usage data - P2
- [ ] MSP Backup integration (licenses, storage used) - P2
- [ ] Microsoft 365 license count (via Graph API) - P2
- [ ] Google Workspace license count - P3
- [ ] DNS/domain registrar counts - P3
- [ ] Security product license counts - P3
- [ ] Storage/bandwidth metering - P3
- [ ] Custom API connector builder - P3

#### Billing Intelligence
- [ ] Usage trending (predict next invoice) - P3
- [ ] Anomaly alerts (sudden agent spike/drop) - P2
- [ ] Margin analysis per customer - P3
- [ ] Contract vs actual usage comparison - P2
- [ ] Unbilled usage warnings - P2

### Unified API Architecture
- [ ] RESTful API for all RMM functions - P1
- [ ] RESTful API for all PSA functions - P1
- [ ] OpenAPI/Swagger documentation - P1
- [ ] Webhook system (outbound events) - P2
- [ ] API versioning strategy - P1
- [ ] Rate limiting and quotas - P2
- [ ] API key management - P1
- [ ] OAuth2 for third-party integrations - P2
- [ ] GraphQL endpoint (optional) - P3
- [ ] Event-driven architecture (pub/sub) - P2
- [ ] Integration SDK/client libraries - P3

### Documentation
- [ ] IT Glue integration - P3
- [ ] Hudu integration - P3
- [ ] Auto-document discovered info - P3

### Backup
- [ ] Veeam status monitoring - P3
- [ ] Datto status monitoring - P3
- [ ] Generic backup job monitoring - P2

### Network
- [ ] SNMP monitoring - P3
- [ ] Network device discovery - P3
- [ ] Bandwidth monitoring - P3

---

## Security Features

### Endpoint Security
- [ ] Antivirus status monitoring - P2
- [ ] Windows Defender management - P2
- [ ] Firewall status - P2
- [ ] Security baseline compliance - P3
- [ ] Vulnerability scanning integration - P3

### Audit & Compliance
- [ ] Full audit trail - P1
- [ ] Session recording - P3
- [ ] Compliance reporting (SOC2, etc.) - P3
- [ ] Data retention policies - P2

### Agent Security Hardening (P1 post-alpha)
- [ ] Dependency vulnerability scanning (CI/CD pipeline) - P1
- [ ] Automated CVE monitoring for all dependencies - P1
- [ ] Regular security audits of agent codebase - P1
- [ ] Minimal attack surface (no unnecessary open ports) - P1
- [ ] Code signing for agent binaries - P1
- [ ] Secure update mechanism (signed updates only) - P1
- [ ] Memory-safe language benefits (Rust) - P1
- [ ] Principle of least privilege (drop privs where possible) - P1
- [ ] Certificate pinning for server communication - P2
- [ ] Tamper detection (agent integrity monitoring) - P2
- [ ] Sandboxed command execution option - P3
- [ ] Security disclosure program / responsible disclosure policy - P2
- [ ] Penetration testing (periodic) - P2
- [ ] SBOM (Software Bill of Materials) for transparency - P2
- [ ] Rapid patch deployment capability - P1

---

## Infrastructure

### Deployment

#### Development/Small Scale
- [ ] Docker Compose deployment - P1
- [ ] Single-server setup (dev, small MSP <500 agents) - P1

#### Production/Cloud Scale
- [ ] Kubernetes deployment - P2
- [ ] Cloud-native architecture (AWS, Azure, GCP) - P2
- [ ] Horizontal scaling (stateless API servers) - P2
- [ ] Auto-scaling based on load - P2
- [ ] High availability (multi-zone, failover) - P2
- [ ] Load balancing (API, WebSocket, dashboard) - P2
- [ ] Geographic distribution (multi-region) - P3
- [ ] CDN for dashboard/static assets - P2
- [ ] Managed database services (RDS, Cloud SQL) - P2
- [ ] Message queue for agent check-ins (Redis, RabbitMQ, SQS) - P2
- [ ] Connection pooling for 50k+ concurrent agents - P2
- [ ] Read replicas for reporting/analytics queries - P2
- [ ] Tenant isolation (multi-tenant SaaS) - P3

### Code Signing & Distribution (Pre-Release)
- [ ] Windows EV Code Signing Certificate - P1 (pre-release)
  - Required for SmartScreen reputation
  - ~$400-600/year (DigiCert, Sectigo, GlobalSign)
  - Hardware token required for private key
- [ ] Apple Developer Program enrollment - P1 (pre-release)
  - $99/year - covers macOS signing and notarization
  - Required for Gatekeeper approval on macOS 10.15+
- [ ] Signing pipeline integration (CI/CD) - P1 (pre-release)
- [ ] Notarization workflow for macOS builds - P1 (pre-release)
- [ ] Secure key storage (HSM or hardware token) - P1 (pre-release)

### Data
- [ ] PostgreSQL backend - P1
- [ ] Redis caching - P2
- [ ] Time-series DB for metrics (InfluxDB/TimescaleDB) - P2
- [ ] Data archival/retention - P2
- [ ] Backup/restore - P1

---

## Platform Support

### Agent Platforms
- [ ] Windows (x64) - P1
- [ ] Windows (ARM64) - P3
- [ ] Linux (x64) - P1
- [ ] Linux (ARM64) - P2
- [ ] macOS (Intel) - P2
- [ ] macOS (Apple Silicon) - P2
- [ ] FreeBSD - P3

### Mobile Device Management (MDM)
- [ ] iOS/iPadOS agent (MDM profile-based) - P2
- [ ] Android agent (Work Profile / Device Admin) - P2
- [ ] Mobile device inventory - P2
- [ ] App deployment/management - P3
- [ ] Remote lock/wipe - P2
- [ ] Location tracking (with consent) - P3
- [ ] Compliance policies (PIN, encryption) - P2
- [ ] BYOD vs corporate device handling - P3
- [ ] Apple Business Manager integration - P3
- [ ] Android Enterprise integration - P3
- [ ] Mobile management dashboard - P2
- [ ] Push notification for alerts - P2

### Appliance/NAS Agents
- [ ] Unraid plugin - P2
- [ ] Synology package (DSM) - P2
- [ ] QNAP package (QTS) - P3
- [ ] TrueNAS plugin - P3
- [ ] Netgear ReadyNAS (limited/polling) - P3
- [ ] Docker container agent (for containerized appliances) - P2
- [ ] SNMP-based monitoring (for appliances without agent support) - P2
- [ ] Proxmox integration - P2
- [ ] ESXi/vSphere monitoring - P3

### Appliance-Specific Metrics
- [ ] RAID/array health status - P2
- [ ] Drive temperatures and SMART data - P2
- [ ] Share/volume utilization - P2
- [ ] Replication/sync job status - P3
- [ ] UPS status (NUT integration) - P2
- [ ] Docker container status (for Unraid/NAS) - P2
- [ ] VM status (Proxmox/ESXi) - P3
- [ ] Backup job status - P2

### Installation Methods
- [ ] MSI installer (Windows) - P1
- [ ] DEB package (Debian/Ubuntu) - P2
- [ ] RPM package (RHEL/Fedora) - P2
- [ ] Homebrew (macOS) - P3
- [ ] One-liner install script - P1

---

## Future Considerations

### AI/Automation

#### Ticket Intelligence (P2)
- [ ] Grammar/spelling correction for technician notes
- [ ] Professional tone enhancement (convert shorthand to proper language)
- [ ] Auto-summarization of long ticket threads
- [ ] Smart ticket categorization/tagging based on content
- [ ] Duplicate/related ticket detection (3 people report same issue → merge offer)

#### Troubleshooting Assistant (P2)
- [ ] Suggest solutions based on similar past tickets
- [ ] Pattern matching on ticket subject/description
- [ ] Alert-to-resolution correlation (what fixed this alert before?)
- [ ] Knowledge base article suggestions
- [ ] "This issue was resolved X times before by doing Y"

#### Proactive Intelligence (P3)
- [ ] Anomaly detection (ML-based)
- [ ] Auto-remediation scripts (with approval workflow)
- [ ] Natural language queries ("show me servers with high CPU this week")
- [ ] Predictive alerting (disk will be full in 3 days based on trend)

### Advanced Features
- [ ] Asset lifecycle management - P3
- [ ] License management - P3
- [ ] Cost tracking/billing - P3
- [ ] API for third-party integrations - P2

(White-labeling moved to Core Agent Features → White-Labeling / Branding)

---

## Development Phases

### Phase 1: Foundation (MVP)
Core RMM functionality - enough to monitor your own clients.
- Agent: heartbeat, basic metrics (CPU, RAM, disk), Windows + Linux
- Server: agent registration, API, database
- Dashboard: agent list, status, basic metrics view
- Alerts: threshold-based, email notification

### Phase 2: Operational
Day-to-day MSP operations.
- Remote commands, PowerShell/Bash execution
- Patch status, software inventory
- Alert escalation, maintenance windows
- Basic reporting

### Phase 3: PSA Integration
GuruPSA companion or third-party PSA.
- Ticketing, customer management
- Alert-to-ticket automation
- Time tracking, basic billing
- Customer portal

### Phase 4: Scale & Polish
Production-ready for broader use.
- Cloud deployment, horizontal scaling
- Advanced reporting, usage-based billing
- UI polish, customization
- Third-party integrations, plugin SDK

### Phase 5: Intelligence
Differentiation features.
- AI ticket enhancement, troubleshooting suggestions
- Anomaly detection, predictive alerting
- Advanced analytics

---

## Design Principles

### True Integration, Not API Checkboxes
Unlike vendors who claim "API integration" but deliver siloed products that barely talk to each other, GuruRMM and GuruPSA must be designed as a unified system:

- **Single Action, Full Workflow**: When an admin initiates an EDR scan from the RMM, the PSA should automatically:
  - Create/update a ticket with scan status
  - Log the action against the asset
  - Update documentation with findings
  - Trigger alerts/escalations based on results
  - No manual steps, no copy-paste, no "check the other product"

- **Bidirectional Context**: A technician viewing a ticket should see:
  - Real-time agent status
  - Recent alerts and metrics
  - One-click remote access
  - Full asset history
  - Not just a link to "go look it up in the RMM"

- **Event-Driven Architecture**: Actions in one product automatically trigger appropriate responses in others. Not "you can build it yourself with the API" - it works out of the box.

- **Shared Data Model**: Assets, customers, contacts, and history exist once and are referenced everywhere. No sync conflicts, no duplicate data entry.

### Avoid the Datto Anti-Pattern
Datto owns ITGlue, Autotask, DattoRMM, and EDR - yet they operate as separate products that happen to have APIs. Example failures to avoid:
- EDR scan results don't auto-create tickets
- RMM alerts require manual ticket creation
- Documentation requires separate manual updates
- "Integration" means "we have an API, build it yourself"

GuruRMM/GuruPSA should feel like one product with different views, not two products bolted together.

---

## Notes

Add feature ideas and notes here as they come up:

- GuruPSA will be a separate repo but designed to integrate seamlessly with GuruRMM
- API-first design: both products should be fully controllable via API
- Users can use GuruRMM standalone, GuruPSA standalone, or both together
- Third-party PSA users get first-class integration via pluggable adapters
- Consider shared authentication/SSO between RMM and PSA

## Project Structure

```
GuruRMM (this repo)
├── agent/        - Rust agent for endpoints
├── server/       - Rust API server
├── dashboard/    - React web dashboard
└── docs/         - Documentation

GuruPSA (future repo)
├── server/       - API server (Rust or Node?)
├── dashboard/    - React web dashboard
├── portal/       - Customer portal
└── docs/         - Documentation

Shared
├── guru-api-sdk/ - Client libraries for API
└── guru-common/  - Shared types/utilities
```

---

*Last updated: 2025-12-15*
