← All features
Dynamic templates
Invoices and line items, without N templates.
Use data-repeat groups for row-repeating data (line items, invoice rows) and data-if directives for conditional visibility—both expand at render time from one template.

render-time directives in the SVG
<!-- in your template SVG -->
<g data-repeat="items">
<text data-param-name="name"></text>
<text data-param-name="price"></text>
</g>
<g data-if="show_discount">...</g>
POST /api/v1/image
{ "templateId": "tpl_invoice", "items": [ { "name": "Widget", "price": "9.99" } ] }Row-repeat for line items
A data-repeat group expands once per array entry—one invoice template handles any number of line items.
Conditional visibility
data-if hides or shows a group based on a param being truthy, for optional sections like a discount line.
Free authoring capability
Both directives are part of the core template engine—no plan gate on using them.
