Problem
src/components/map/map-view.tsx:448 interpolates the key straight into the tile URL:
url={`https://api.maptiler.com/maps/${tileVariant}/256/{z}/{x}/{y}{r}.png?key=${process.env.NEXT_PUBLIC_MAPTILER_KEY}`}
If the env var is unset (fresh fork, self-host following SELF-HOSTING.md but skipping the key step), the URL becomes ...?key=undefined, MapTiler returns 403 for every tile, and the user just sees a gray void — no warning, no hint about what's wrong.
Suggested fix
- In dev, log a loud console warning when the variable is missing/empty
- Optionally surface a visible error/empty state ("Basemap unavailable — is NEXT_PUBLIC_MAPTILER_KEY set? See SELF-HOSTING.md") instead of silent gray tiles
- Mention the failure mode explicitly in SELF-HOSTING.md troubleshooting
Acceptance criteria
Problem
src/components/map/map-view.tsx:448interpolates the key straight into the tile URL:If the env var is unset (fresh fork, self-host following SELF-HOSTING.md but skipping the key step), the URL becomes
...?key=undefined, MapTiler returns 403 for every tile, and the user just sees a gray void — no warning, no hint about what's wrong.Suggested fix
Acceptance criteria