Terrain Viewer
Dev

Tech Stack

The libraries and services this app is built on

  • MapLibre GL v5 via React Map GL — the map renderer everything else layers on top of
  • nuqs — shareable URL query-string state (viewport, viz toggles, sources)
  • jotai — local persistence (atomWithStorage) for API keys and UI collapse state
  • shadcn/ui on Base UI — component primitives (dialogs, dropdowns, tooltips, tabs) and styling, plus Tailwind CSS v4
  • onthegomap/maplibre-contour — contour lines
  • geomatico/maplibre-cog-protocol — direct in-browser Cloud-Optimized GeoTIFF streaming
  • geotiff.js — parses GeoTIFF responses client-side (WMS float32 DEM bridge, COG metadata)
  • Turf.js — geospatial calculations (bounds, truncation, geometry helpers)
  • chroma.js — color-ramp interpolation behind every hypsometric/derivative-mode color ramp
  • Terra Draw — the Drawing tool's sketch/measure primitives, via its own MapLibre GL adapter
  • @esri/wayback-core — the SDK behind ESRI Wayback's release catalog and per-tile capture dates
  • Coachmark — the guided product tour (spotlight, step popovers, branching paths)
  • Sugar High — lightweight syntax highlighting (Settings dialog code snippets, GDAL export commands)

See Setup for how these fit together (state architecture, custom MapLibre protocols, no-backend design).