The things that shipped, newest first. Subscribe to the RSS feed to get notified.
Recent updates
- newDelete a template from the API
DELETE /v1/templates/:id removes a template and every asset it uploaded to storage. Agents that create templates programmatically can now clean up after themselves instead of leaving files behind forever. Past renders survive with their URLs intact; the response reports what was detached. The MCP delete_template tool now cleans up storage the same way.
- newIdempotency-Key on every render endpoint
Send an Idempotency-Key on POST /v1/render, /v1/renders or /v1/renders/batch and a retry replays the first response byte for byte — no second render, no second credit, no duplicate job. Concurrent retries get 409 idempotency_in_progress; the same key with a different body gets 422 idempotency_key_reuse. Keys are workspace-scoped and expire after 24 hours.
- fixedFixed: multi-select jumping to the wrong spot after a drag
Moving several selected elements together could render them in the wrong place right after the drag, even though the correct position was saved — a sync bug between the canvas and the saved layout, not a data-loss issue. Reworked how the canvas resyncs elements while a multi-selection is active.
- newNew docs site
Full multi-section documentation replacing the single-page reference. API reference, guides, and integrations all live here now.
- improvedRender API authorization hardening
Staging keys can no longer touch production templates. Cleaner 403 responses on cross-workspace access.
- newBatch renders
POST /v1/renders/batch accepts up to 100 renders per request and returns per-item job ids.
- newBusiness plan
API access, higher credit allocation, and webhook delivery moved to a dedicated Business tier.
- improvedPDF vector fidelity
Pure vector export path replaces the raster fallback. Smaller, sharper, print-safe files.