# rafcenter

A personal dev control center for everything you run locally. One calm, dark window discovers your projects from the Caddy reverse proxy, gives each a pretty .localhost address, launches dev servers in embedded terminals that survive closing the window, watches every port, and deploys to production in one click.

## Features

- **Caddy App Discovery:** Reads the local Caddy admin API and parses the running config, so every local project shows up automatically with its own myapp.localhost address.
- **Register in Seconds:** Pick a folder and the start command is detected for you — Rails, Node, Django, Go, Rust — then the reverse-proxy entry gets wired up automatically.
- **Persistent Terminals:** Real pty sessions in tmux-style tabs. Dev servers keep running when you close the window, and each app-and-purpose pair reuses one tab instead of stacking them.
- **Live Port Monitoring:** Green 'Live' and grey 'Asleep' status everywhere in the UI, plus a reaper that frees ports left behind by dead processes.
- **One-Click Kamal Deploy:** Detects your deploy config, surfaces its aliases as buttons, and runs the deploy in a live terminal tab — with a second tab tailing production logs.
- **Command Palette:** A ⌘K palette launches, restarts, stops and reloads everything without your hands leaving the keyboard.
- **Per-App Avatars:** Each registered project gets a deterministic animal glyph from a fixed set of nine, so projects stay recognizable at a glance.
- **Signed In and Up to Date:** Browser-based PKCE sign-in with Keychain-backed tokens, plus a notify-only update banner that rechecks daily.

## Technology

SwiftUI, Swift, SwiftData, SwiftTerm (pty), Caddy Admin API, Kamal, Keychain + PKCE OAuth, XCTest, notarytool release pipeline
