Maritime chart application with 2D/3D views, OpenSeaMap integration, and terrain visualization.
- Node.js 18+ (recommend using
nvmorfnm) - npm (comes with Node.js)
# Install Node.js via Homebrew
brew install node
# Or use nvm (recommended)
brew install nvm
nvm install 20
nvm use 20# Clone and enter directory
cd meridian-terminal
# Install dependencies
npm installnpm run devOpens at http://localhost:5173
# Terminal 1: Start Vite dev server
npm run dev
# Terminal 2: Start Electron (after Vite is running)
npm run dev:electron
# Or run both together:
npm run dev:full# Build web assets
npm run build
# Build Electron app (creates distributable)
npm run build:electron- 2D Map: Leaflet with OpenStreetMap + OpenSeaMap overlays
- 3D Map: MapLibre GL with terrain elevation (AWS Terrain Tiles)
- Layers: Seamarks, Bathymetry, Satellite Imagery, Grid overlay
- Depth Soundings: Grid-based depth markers that reveal on hover
- Measure Tool: Distance measurement in nm/km/mi
- Search: Claude-powered geocoding (requires API key)
- Orbit Mode: Auto-rotate 3D view
Create a .env file in the project root:
# For Claude-powered search (optional)
VITE_ANTHROPIC_API_KEY=sk-ant-...| Command | Description |
|---|---|
npm run dev |
Start Vite dev server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run dev:electron |
Start Electron (requires dev server) |
npm run dev:full |
Start both Vite and Electron |
npm run build:electron |
Build Electron distributable |
npm run lint |
Run ESLint |
- React 19
- Vite 7
- Leaflet (2D maps)
- MapLibre GL JS (3D maps)
- Electron (desktop app)