Files
rmtPocketWatcher/.kiro/steering/tech.md
2025-12-03 18:00:10 -05:00

1.5 KiB

Technology Stack

Backend

  • Language: TypeScript (Node.js)
  • Framework: Fastify
  • Scraping: Playwright (headless Chromium)
  • Database: PostgreSQL + TimescaleDB extension
  • ORM: Prisma or Drizzle
  • Job Scheduling: Node Scheduler or BullMQ
  • WebSockets: Native ws or Fastify WS plugin
  • Deployment: Docker containers

Frontend (Electron Desktop App)

  • Framework: Electron 30+
  • UI Library: NextJS? + TypeScript/TSX
  • Build Tool: Vite
  • Styling: TailwindCSS
  • Charts: Recharts, ECharts, or TradingView Charting Library
  • State Management: Zustand or Recoil
  • Auto-updates: electron-updater

Testing

  • Unit Tests: Jest
  • E2E Tests: Playwright
  • API Integration: Supertest or Pact

Common Commands

# Backend
npm run dev          # Start development server
npm run build        # Build TypeScript
npm run test         # Run Jest tests
npm run scrape       # Manual scrape trigger

# Frontend (Electron)
npm run dev          # Start Electron in dev mode
npm run build        # Build production app
npm run package      # Package for distribution
npm run test         # Run tests

# Database
npm run migrate      # Run database migrations
npm run seed         # Seed initial data

Performance Requirements

  • API latency < 50ms for standard queries
  • Support 5000+ concurrent WebSocket connections
  • Desktop app must handle 50k+ chart datapoints smoothly
  • Scraping frequency: every 5 minutes (configurable)