One file, not 357 million: ELEMNT v0.0.1 is generally available

One file, not 357 million: ELEMNT v0.0.1 is generally available

Somewhere right now, an engineer is updating a basemap. The data change took ten minutes. The rest of the day goes to the pipeline: re-cutting a tile pyramid, re-uploading a few million tiny files to object storage, invalidating caches, and checking that the tile server survived the deploy. None of that work is the map. All of it is the plumbing.

We built ELEMNT because that plumbing should not exist anymore. Today, ELEMNT v0.0.1 is generally available, and it is free during early access.

The math on the plumbing

A standard web-map tile pyramid grows by a factor of four per zoom level. Cut the whole planet down to zoom 14 and the pyramid holds:

4^0 + 4^1 + ... + 4^14 = 357,913,941 tiles

Every one of those tiles is traditionally a separate file: a separate upload, a separate object to store, a separate thing that can fail. Even a single-country extract runs to hundreds of thousands of files. That is why basemap updates become afternoon-long jobs, and why so many teams end up babysitting a tile server whose only job is to hand out those files one at a time.

The cloud-native answer is to stop treating tiles as millions of files. PMTiles packs an entire pyramid into one archive. A client asks for the exact byte range it needs over plain HTTP, straight from object storage. One file to upload. One file to update. No tile server in the middle. The same shift is happening across the geospatial stack, which is why open projects like Overture Maps distribute planet-scale data as PMTiles and GeoParquet rather than as file trees.

ELEMNT is built on that idea from the first commit.

What v0.0.1 does

This release ships the core loop of a cloud-native geospatial platform: import, organize, generate, serve.

Import in the formats you already have. GeoPackage, GeoJSON, Shapefile, FlatGeobuf, GeoParquet, and NDJSON, uploaded as files or a zip archive, or pulled from a URL. No conversion step before the conversion step.

Organize like a team, not a folder of downloads. Organizations with teams and invitations, projects to group the work, and collections with editable schemas and folder hierarchies to keep a growing workspace navigable.

Generate PMTiles in the platform. Point at a collection, get a single-file tile archive ready to serve. No tiling toolchain to maintain on the side.

Serve through open standards. Every collection is available through OGC API Features, Part 1 (Core): create, read, update, delete, and query features over a standards-based API, in GeoJSON or NDJSON. Every dataset ships with a MapLibre-compatible Style JSON, so an existing MapLibre GL client can render straight from ELEMNT without custom glue.

Authenticate the boring, safe way. API keys with scoping and rotation, and service accounts for pipelines and machine access.

From upload to rendered map

Here is the loop in practice. Create an organization and a project. Import a GeoParquet file, or a Shapefile, or a zip of GeoJSON; the importer takes them all. ELEMNT lands the data in a collection with an editable schema, filed wherever it belongs in your folder hierarchy. Generate PMTiles from that collection and you have a single archive ready to serve. The same collection is already live behind OGC API Features, so an application can query it as GeoJSON or NDJSON with standard requests, and the bundled Style JSON means a MapLibre GL map renders it with a URL change instead of an integration project. Scope an API key to what the app actually needs, give the refresh pipeline its own service account, and the loop is closed: no tile server, no file tree, nothing to babysit.

The exit is part of the product

A platform that imports open formats but exports nothing is a trap with a nice front door. ELEMNT exports every collection back out as GeoPackage, GeoJSON, NDJSON, Shapefile, FlatGeobuf, or GeoParquet. The formats going in are the formats coming out. If ELEMNT ever stops earning its place in your stack, your data leaves with you.

We think that is the only honest way to build infrastructure. Lock-in is a bet that your customers cannot leave. Open formats are a bet that they will not want to.

What v0.0.1 is not

A v0.0.1 version number is a statement, not false modesty. This release is deliberately small: the core loop, done properly on open formats and open standards. There is a long roadmap behind it, and we will announce each piece when it ships, not before. The changelog will do the talking.

Early access is free, for every function. We want v0.0.1 in the hands of people who move real data, and we want the feedback that comes with that.

Try it

Create an account at app.elemnt.earth, import a dataset, generate PMTiles, and serve it through OGC API Features. If your afternoon usually goes to plumbing, see what it feels like when the plumbing is one file.