A sleek, dark-mode trading dashboard built with Tauri v2 + React + TypeScript + Vite. Connects to the Tradier API for real-time market data, account management, and order tracking.
- Account Dashboard — Profile, balances, buying power, and P&L at a glance
- Market Clock — Real-time market status (open/closed/pre/post)
- Live Watchlist — Streaming quotes via WebSocket with bid/ask/volume
- Price Charts — Intraday candlestick charts powered by Lightweight Charts
- Orders & Positions — View open orders, filled trades, and current positions
- Options Chain — Browse expirations and strike prices with Greeks
- Symbol Search — Quick type-ahead symbol lookup
- Secure Credential Storage — API keys persisted via Tauri's encrypted store plugin
| Layer | Tech |
|---|---|
| Desktop Runtime | Tauri v2 (Rust + WebKitGTK/WKWebView) |
| Frontend | React 19, TypeScript, Vite 7 |
| State | Zustand |
| Charts | Lightweight Charts v5 |
| Styling | Vanilla CSS (dark neon theme) |
| Fonts | Inter + JetBrains Mono |
- Node.js ≥ 18
- Rust toolchain (
rustup default stable) - System dependencies for Tauri v2 on your platform
git clone https://github.com/mph/tradier-desktop.git
cd tradier-desktop
npm installCreate a .env file in the project root:
VITE_TRADIER_API_KEY=your_tradier_api_token
VITE_TRADIER_ACCOUNT_ID=your_account_idGet your API key from Tradier Developer.
Desktop app (Tauri):
npm run tauri devBrowser only (no Rust needed):
npm run dev
# Open http://localhost:1420npm run tauri buildtradier-desktop/
├── src/ # React frontend
│ ├── components/ # UI components (AppShell, Charts, Tables, etc.)
│ ├── pages/ # Dashboard, TradeView
│ ├── services/ # Tradier API client
│ └── stores/ # Zustand state (auth, watchlist)
├── src-tauri/ # Rust backend
│ ├── src/lib.rs # Tauri plugin registration
│ └── Cargo.toml # Rust dependencies
├── docs/ # API recipes & screenshots
└── index.html # Vite entry point
MIT

