Skip to content

CrimsonSoul/Relay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

876 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Relay

Relay is an Electron desktop command center for operations teams managing people, systems, and incident bridge communications.

Platform Shell UI Language

Snapshot

  • Embedded PocketBase with offline-first cache and realtime sync
  • Typed IPC contracts with Zod validation and a context-isolated preload bridge
  • Scales to large directories via virtualization and lazy tab loading
  • Security-first desktop posture: CSP, webview allowlists, path validation, encrypted credentials
  • Full quality workflow: linting, type checking, tests, and CI release packaging

Preview

Compose On-Call Board
Compose tab On-Call tab

Core Features

  • Compose — Build bridge communication lists from contacts and groups, copy to clipboard instantly
  • On-Call Board — Drag-and-drop team/role scheduling with week navigation and popout display mode
  • People & Servers — Searchable directories with inline notes, tags, and quick-action menus
  • Weather — Live conditions, NWS alerts, saved locations, and an embedded radar tab
  • Alerts — Build and capture alert cards with severity levels, compact/enhance text processing, highlight colors, event time banners, and screenshot capture
  • Notes — Create, edit, reorder, and tag standalone notes with rich content parsing and color coding
  • Cloud Status — Monitor cloud provider status pages (AWS, Azure, M365, GitHub, Cloudflare, Google Cloud, Claude, ChatGPT, Salesforce)
  • Global Layer — Command palette, keyboard shortcuts modal, import/export manager, backup/restore, toast notifications

Architecture

  • src/main/: IPC handlers, PocketBase services, offline cache, and business-logic operations modules
  • src/preload/: typed window.api bridge via Electron context isolation
  • src/renderer/: React tabs, feature-focused hooks, and shared UI components
  • src/shared/: IPC channel contracts, Zod validation schemas, and domain types

Business logic stays in operations modules; handlers validate inputs and delegate — no logic in handlers.

Tech Stack

Layer Technology
Desktop shell Electron 41
Frontend React 19 + TypeScript 5.9
Build Vite 7 + electron-vite 5
Validation Zod 4
Virtualization react-window 2 + react-virtualized-auto-sizer 2
Drag and drop @dnd-kit/core + @dnd-kit/sortable
Testing Vitest 4 + Playwright

Quick Start

npm install
npm run dev

Quality and Testing

npm run typecheck   # TypeScript strict mode
npm run lint        # ESLint
npm test            # Vitest unit tests
npm run test:electron  # Playwright integration tests

Coverage thresholds are enforced:

  • Main/shared: lines 80%, functions 80%, branches 80%, statements 80%
  • Renderer: lines 80%, functions 80%, branches 80%, statements 80%

Security

  • Context isolation and OS-level sandbox enabled on all renderer processes
  • Renderer has no direct Node.js or Electron API access
  • Strict CSP headers and HTTPS-only webview allowlists
  • Navigation and window.open() interception on all windows
  • Path traversal checks on all file system operations
  • Credential handling delegated to main process via Electron safeStorage

Project Layout

  • src/main/operations/: core data and business logic
  • src/main/handlers/: IPC handler registration and input validation
  • src/renderer/src/tabs/: feature tabs (Compose, Alerts, On-Call, People, Servers, Weather, Radar, Notes, Cloud Status)
  • src/renderer/src/tabs/alerts/: alert sub-components (severity selector, body editor, compact/enhance engines, highlight colors, event time banner)
  • src/renderer/src/tabs/notes/: note sub-components (card, editor, toolbar, content parser/renderer)
  • src/renderer/src/hooks/: feature-focused state and side-effect hooks
  • src/main/handlers/cloudStatus/: cloud status provider fetchers (Google, AWS/Azure/GitHub/Cloudflare via RSS, Salesforce, Statuspage)
  • src/main/handlers/backupHandlers.ts: PocketBase backup create/restore with cache invalidation
  • docs/: architecture decisions, logging guide, security notes, troubleshooting

License

MIT

About

Electron desktop command center for operations teams — on-call scheduling, bridge communications, people/server directories, weather, and AI chat

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages