ELEMNT v0.0.3: the workspace explains itself

ELEMNT v0.0.3: the workspace explains itself

11 August 2026

Three weeks ago, if you asked an ELEMNT workspace "what built this layer?", it could only answer for recent work. Job details expired after a limited window, which is fine for a demo and useless for a project that lives for months. And once your data was in, wiring it into your own app meant writing boilerplate from scratch. v0.0.3 fixes both, and since we spent the cycle load-testing the platform, we are publishing the capacity numbers too.

Job history that stays. Every job is now archived at completion: status, timeline, inputs, outputs, and a trimmed log stay readable long after the run, and archived jobs are labeled so you can tell history from a live feed. A new lookup answers "what has ever touched this collection": imports in, tile builds out, newest first. Each job also opens as a full page you can share, with one-click copies of the job ID, the raw log, and a result link.

Structured job inputs. The log's "preparing inputs" line now carries inputs as structured data, not a sentence. The workspace renders them as a table, and you can copy a past job's configuration to run it again with the same settings.

The Integrate panel writes your code. Open a view, pick the Features or collection metadata endpoint, choose MapLibre GL JS, Leaflet, OpenLayers, or cURL, and copy a snippet that already contains your URLs. Parameters like limit and offset are added from the panel with a plain explanation of each. Need credentials? Create an API key in place; it lands in the snippet, goes out as api_key in the URL and x-api-key for cURL, and is kept in memory for the session only.

Run before you paste. The Run button executes the request and shows status, timing, and size, with the response as raw JSON or rendered on a map. You see exactly what your app will get before your app exists.

Capacity, measured. We load-tested both directions of the data path and are publishing the results with the caveats attached. Writes scaled near-linearly with pod count: 5,142 feature inserts per second on one pod, 8,745 on two, 18,422 on four, roughly 90% scale efficiency. The asterisk: at four pods our load generator gave out before the service did, so the real ceiling is higher. Reads served about 150 requests per second per pod pair with p95 under 300 ms, 245 at double, roughly 395 at quadruple, every request unique so no cache flattered the numbers. And when we held 2,048 requests open at once, responses slowed, nothing errored, nothing restarted. Overload costs your users time, not their session.

If you bulk-load, the recipe that won: batches of 5 to 50 MiB per request, 2 to 4 parallel workers per pod.

Export dataset. Data leaves the workspace as easily as it came in. No lock-in is a design goal, not a slogan; the exit door is now a button.

Console. Views get a home: list active and archived views, create one, edit its metadata, and add an existing collection instead of rebuilding it. Collection cards surface more about what is inside. And forgot-password recovery finally lives on the sign-in page.

Behavior change

None. The jobs-by-collection lookup is additive, nothing was removed or renamed, and import and export formats are unchanged. Upgrade by doing nothing; the managed service is already on v0.0.3.

Try it at app.elemnt.earth, and tell us the first thing that annoys you: @elemntearth. A person reads every message, and the replies decide what we fix first.