What problem does this solve?
The map basemap (CARTO Voyager/dark_all) reads as muted/colorless,
especially in dark mode. CARTO's only colorful style is Voyager, and it's
light-only — there's no colorful dark equivalent in CARTO's catalog, so a
CSS saturate filter has a hard ceiling: you can't saturate a colour that
isn't there.
Proposed solution
Migrate to MapTiler Cloud: free tier (100k tiles/month, no credit card),
genuine theme-aware light+dark colorful raster styles, drop-in Leaflet
TileLayer URL swap. Keep the existing useTheme()-driven swap pattern
(key={tileVariant} remount) in src/components/map/map-view.tsx. Needs
NEXT_PUBLIC_MAPTILER_KEY set locally (.env.local) and in Vercel project
env vars.
Alternatives considered (optional)
- Plain OpenStreetMap tiles: no signup needed, colorful in light mode, but
no native dark style and OSM's usage policy isn't meant for sustained
production traffic.
- Stadia Maps / Jawg: also viable, lower free-tier quotas than MapTiler.
Checklist
What problem does this solve?
The map basemap (CARTO Voyager/dark_all) reads as muted/colorless,
especially in dark mode. CARTO's only colorful style is Voyager, and it's
light-only — there's no colorful dark equivalent in CARTO's catalog, so a
CSS saturate filter has a hard ceiling: you can't saturate a colour that
isn't there.
Proposed solution
Migrate to MapTiler Cloud: free tier (100k tiles/month, no credit card),
genuine theme-aware light+dark colorful raster styles, drop-in Leaflet
TileLayerURL swap. Keep the existinguseTheme()-driven swap pattern(
key={tileVariant}remount) insrc/components/map/map-view.tsx. NeedsNEXT_PUBLIC_MAPTILER_KEYset locally (.env.local) and in Vercel projectenv vars.
Alternatives considered (optional)
no native dark style and OSM's usage policy isn't meant for sustained
production traffic.
Checklist