finds.dev← search

// the find

TerriaJS/terriajs

★ 1,336 · TypeScript · Apache-2.0 · updated Jun 2026

A library for building rich, web-based geospatial 2D & 3D data platforms.

TerriaJS is a TypeScript library for building browser-based geospatial map platforms, handling 3D globes via Cesium and falling back to 2D Leaflet. It powers several Australian government mapping portals and supports a large catalog of OGC services, file formats, and spatial data APIs. This is firmly in the GIS platform builder space — not a lightweight map widget, but a full application framework.

The format and service coverage is genuinely impressive: WMS, WFS, WMTS, Esri MapServer, CKAN, SDMX, 3D Tiles, CZML, GTFS, and more — most projects would need to integrate half a dozen libraries to match this. The 2D/3D fallback is real and automatic, not just a feature flag someone wrote once and forgot. The catalog system that handles tens of thousands of layers with nested groups, time dimensions, and shareable URL state solves a hard problem that most spatial UIs just punt on. Architecture decision records are present and actually useful — the reasoning behind Babel/TS loader choices and IE11 removal is documented, which matters when you're inheriting a complex build.

The build setup is a mess of Webpack, Babel, Gulp, and Yarn 1.x — getting a dev environment running is more archaeology than onboarding, and the Webpack config files are custom enough that you cannot easily swap in Vite or esbuild. The Australian regional mapping focus (ASGS, SA2, LGA, etc.) is baked deep into the region-mapping system, making it genuinely difficult to adapt for non-Australian administrative boundaries without understanding internals. The library is tightly coupled to its own Cesium fork rather than upstream Cesium, so you're stuck on their release cadence. Documentation covers the happy path but drops off quickly for custom catalog item types — the catalog-type-details directory is basically a placeholder.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →