Frontend
Nullus · live at ecominded.ca
EcoMinded
An interactive world emissions explorer with a color-scaling algorithm that keeps small emitters visible.

EcoMinded is a climate-awareness platform built with the Nullus team. The centrepiece is a MapLibre GL choropleth of fossil emissions across 190+ countries, driven by a data-driven fill expression over a GeoJSON layer.
The interesting problem was the color ramp. Emissions span a roughly 300,000× range between the largest and smallest countries, so a linear scale renders almost everything as the lowest color. Applying gamma correction (ratio^0.2) to the ramp keeps low-emitting countries visually distinguishable against China's outlier value. There's also a GPT-backed sustainability chat assistant with an API route handling upstream quota and error states.
The map has no basemap tiles at all. The style is defined inline as one fill layer and one border layer over a static GeoJSON of country shapes, with each country's colour precomputed and fed into a MapLibre match expression keyed on country name, falling back to white where there's no data. I built the landing page, the chatbot, and the emissions colouring; a teammate set up the initial map and the Drizzle schema.
The chat route validates the incoming message list, calls the model over plain fetch, and maps an upstream insufficient-quota error to a 429 so the UI can say something more useful than a generic failure. The API key is checked with Zod when the module loads, so a missing key fails at startup instead of on the first message.