Files
meshstream/web
Daniel Pupius d95a74c1d7 refactor(web): replace Google Maps with MapLibre, clean up map components
- Migrate all three map components (Map, GoogleMap, NetworkMap) to MapLibre GL JS
- Extract shared CARTO_DARK_STYLE constants into lib/mapStyle.ts
- Move buildCircleCoords to lib/mapUtils.ts (was duplicated across components)
- Rename exports: Map → LocationMap, GoogleMap → NodeLocationMap
- Remove dead props (width, height, nightMode) from LocationMap interface
- Lazy-mount GL contexts via IntersectionObserver to prevent WebGL exhaustion
- Fix Math.spread RangeError in NetworkMap bounds calculation
- Remove showLinks conditional render in favour of visibility layout property
- Remove cursor state; set canvas cursor style directly on map interactions
- Remove Google Maps API key env vars from .env.example and .env.local
- Move Vite dev server to port 5747 (avoids cached redirect on 3000)
- Fix CORS/404: set VITE_API_BASE_URL="" so browser uses Vite proxy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 20:22:12 +00:00
..
2025-04-29 12:12:41 -07:00
2025-04-22 16:42:22 -07:00
2025-04-22 13:26:35 -07:00

Meshstream Web Interface

This is the web interface for the Meshstream application, which provides a real-time view of Meshtastic network traffic.

Technologies Used

  • Vite
  • React
  • TypeScript
  • Redux Toolkit
  • Tailwind CSS
  • Tanstack Router

Development

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm build

# Preview production build
pnpm preview

Structure

  • src/components/ - React components
  • src/routes/ - Tanstack Router route components
  • src/store/ - Redux store and slices
  • src/hooks/ - Custom React hooks
  • src/lib/ - Utility functions and API clients
  • src/styles/ - CSS styles
  • src/assets/ - Static assets like images

API

The application communicates with the Meshstream server via:

  • REST API endpoints at /api/...
  • Server-Sent Events (SSE) connection at /api/stream

See src/lib/api.ts for more details on the API client implementation.