🎨 Replace Carto basemaps with keyless OpenFreeMap styles #3

Merged
mat merged 1 commit from openfreemap-basemaps into main 2026-10-01 13:32:14 +00:00
Owner

Summary

 basemap.ts
-voyager:      cartocdn raster tiles (API key now required)
-positron:     cartocdn raster tiles
-dark_matter:  cartocdn raster tiles
+liberty:   https://tiles.openfreemap.org/styles/liberty
+positron: https://tiles.openfreemap.org/styles/positron
+bright:   https://tiles.openfreemap.org/styles/bright

Carto now serves 2 KB "API Key Required" placeholder tiles to unauthenticated requests — the basemap was broken in prod and locally. OpenFreeMap serves vector styles with no account, no key, no quota; basemapStyle(id) now returns a style URL, which MapLibre loads directly.

  • The Dark button becomes Bright (OpenFreeMap has no dark style); default basemap is liberty (closest to Voyager).
  • Control panel dark mode keys off BASEMAPS[id].theme instead of the deleted dark_matter id.
  • Attribution updated in the About modal.

Builds on the merged #2 (map container fix) — verified locally with both applied.

Evidence

  • Before: a.basemaps.cartocdn.com/voyager/11/1037/704.png → 2049-byte placeholder, byte-identical for every style and zoom.
    After: 17/17 unit tests, svelte-check clean, 3/3 e2e (basemap switch asserted against real OpenFreeMap).

Merge Danger

Door: two-way (revert restores Carto).

Blast Radius: basemap only — heatmap proxy and API untouched.

## Summary ```diff basemap.ts -voyager: cartocdn raster tiles (API key now required) -positron: cartocdn raster tiles -dark_matter: cartocdn raster tiles +liberty: https://tiles.openfreemap.org/styles/liberty +positron: https://tiles.openfreemap.org/styles/positron +bright: https://tiles.openfreemap.org/styles/bright ``` Carto now serves 2 KB "API Key Required" placeholder tiles to unauthenticated requests — the basemap was broken in prod and locally. OpenFreeMap serves vector styles with **no account, no key, no quota**; `basemapStyle(id)` now returns a style URL, which MapLibre loads directly. - The **Dark** button becomes **Bright** (OpenFreeMap has no dark style); default basemap is `liberty` (closest to Voyager). - Control panel dark mode keys off `BASEMAPS[id].theme` instead of the deleted `dark_matter` id. - Attribution updated in the About modal. Builds on the merged #2 (map container fix) — verified locally with both applied. ## Evidence - **Before:** `a.basemaps.cartocdn.com/voyager/11/1037/704.png` → 2049-byte placeholder, byte-identical for every style and zoom. **After:** 17/17 unit tests, svelte-check clean, 3/3 e2e (basemap switch asserted against real OpenFreeMap). ## Merge Danger **Door:** two-way (revert restores Carto). **Blast Radius:** basemap only — heatmap proxy and API untouched.
mat force-pushed openfreemap-basemaps from 474b5a2232 to a076c12356 2026-10-01 13:32:06 +00:00 Compare
mat changed title from WIP: 🎨 Replace Carto basemaps with keyless OpenFreeMap styles to 🎨 Replace Carto basemaps with keyless OpenFreeMap styles 2026-10-01 13:32:08 +00:00
mat merged commit 8f76c69e65 into main 2026-10-01 13:32:14 +00:00
mat deleted branch openfreemap-basemaps 2026-10-01 13:32:14 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mat/canicule!3
No description provided.