Web App
The Klaxon web app (packages/web/) is a browser-based client that renders the same UI as the desktop app. It connects to the cloud server via REST API + WebSocket.
Running
bash
pnpm --filter @klaxon/web devOpens at http://localhost:5173. Configure the server URL and log in via the Settings panel.
Architecture
The web app is a thin entry point that renders <MainWidget /> from @ottercoders/klaxon-common:
tsx
import { MainWidget, connectWebSocket } from "@ottercoders/klaxon-common";
function WebApp() {
useEffect(() => {
connectWebSocket();
}, []);
return <MainWidget />;
}All components, hooks, and the API transport layer live in the shared packages/common/ library. The web app adds only the HTML shell and Vite config.
Features
Everything the desktop app supports:
- Slack-style sidebar with filter views, channels, saved views, settings
- Item list with search, date filters, multi-select bulk actions
- Item detail with inline form rendering
- Keyboard shortcuts (J/K navigate, A ack, D dismiss, / search, ? help)
- Undo toast for dismiss/archive
- Real-time updates via WebSocket
- Theme support (dark/light/dracula/nord)
Building for Production
bash
pnpm --filter @klaxon/web buildOutputs static files to packages/web/dist/. Serve with any static file server or CDN.