# CleanCopy

CleanCopy is a Windows utility that sits in the system tray, automatically sanitizing your clipboard text on trigger. Designed with a focus on privacy, ergonomics, and performance (it is written in Rust btw).

## Repository Structure

```
clean-copy/
├── app/                      # Tauri desktop app (React frontend + Rust backend)
├── shared/                   # Shared Rust crate (types, licensing, cleansing logic)
├── server/                   # Axum web server (landing page, activation API, updater)
├── licensing/                # Ed25519 key files (gitignored)
├── licensing_profiles.json   # Profile-based licensing config (compiled into binary)
├── Cargo.toml                # Workspace root
└── package.json              # Thin npm wrapper (delegates to app/)
```

## Quick Start

### Prerequisites

- **Node.js** (v18+)
- **Rust & Cargo** (latest stable)
- **Windows C++ Build Tools** (for Tauri)

### Install & Run

```bash
npm install          # from repo root, installs app/ dependencies
npm run tauri dev    # starts Vite dev server + Tauri tray app
```

### Run Tests

```bash
cargo test --workspace    # Rust tests (shared + app)
cd app && npm test        # Frontend tests (Vitest)
```

### Lint & Format

```bash
cd app && npm run lint          # ESLint
cd app && npm run format:check  # Prettier
```

## Documentation

- **[app/README.md](app/README.md)** — Desktop app: features, architecture, licensing system, CLI tools
- **[server/README.md](server/README.md)** — Web server: routes, local dev, Docker deployment
