Skip to main content

Changelog

Follow new updates and improvements to Templated - API for Automated Image, Video and PDF Generation.

September 2026 Update - Catalogs, BYOS, 2FA, HTML Export and a lot more! 🚀

It's been a couple of months since the last update and we've been shipping non stop.

This one is packed: a brand new Catalog integration that turns a product spreadsheet into a print ready PDF, BYOS, Template Merge, HTML imports (and exports), Two Factor Authentication, and a long list of API additions.

Let's dive in ⬇️


Catalog Integration

Catalog integration

Turn a product spreadsheet into a print ready PDF catalog, without writing a single line of code. Pick a template with product slots, upload a CSV or Excel file, map its columns, and Templated does the rest.

The catalog compiler fills the product grid page by page, starts a new section every time the category changes, and merges cover, dividers and back cover into a single PDF. If your sheet has 12 products and your template fits 6 per page, you get the right number of pages automatically. No manual pagination.

  • Automatic pagination based on how many product slots your template has

  • Category sections with their own divider pages

  • Cover and back cover pages merged into the final PDF

  • Cover image can be bound to a column in your spreadsheet

  • Per category grid densities, so featured categories can use a different layout

  • Preview and edit the compiled catalog as a regular template before downloading

Find it under Integrations → Catalog.


Multi-Page Documents from Spreadsheets

Spreadsheet document mode

The Spreadsheet integration used to be strictly one row, one render. Now it can build multi page documents: add a page column to your sheet and each row becomes a page instead of a separate file.

Group rows into documents with a document column, and set merge to bundle each document into a single PDF. Perfect for proposals, reports, contracts and any deliverable where one customer needs several pages.

  • document groups rows into separate documents

  • page picks which template page each row renders

  • merge outputs one merged PDF per document

  • Legacy single render sheets keep working exactly as before

This also fixes a long standing issue where multi page templates would only render page 1 in bulk jobs.


Merge Templates

Merge templates

Select multiple templates in your dashboard and merge them into a single multi page template. Each source template's pages are appended in order, with page names and internal ids de-conflicted automatically, so nothing breaks when two templates share layer names.

It is non destructive by default: your original templates stay untouched unless you tick the "delete originals" option. Great for assembling a full campaign, a multi page document, or a client deliverable out of pieces you already designed.


Import HTML as a Template

HTML import

You can now paste raw HTML (or upload an .html file) and get an editable Templated template out of it. The converter parses your markup and extracts text, images and shapes as real layers you can edit, rename and drive through the API.

Imports run asynchronously, so large documents keep processing while you carry on working. Files up to 5 MB are supported.


Two-Factor Authentication

2FA setup

Protect your account with TOTP based two factor authentication. Enable it from Account Settings, scan the QR code with any authenticator app (Google Authenticator, 1Password, Authy), and you will be asked for a 6 digit code on every sign in.

  • Works with any standard authenticator app

  • Recovery codes generated at setup, in case you lose your device

  • Secrets encrypted at rest and rate limited code attempts


Bring Your Own Storage

Custom storage

Scale and Enterprise teams can now deliver every render straight into their own S3 compatible bucket (AWS S3, Cloudflare R2 and compatible providers). Connect it from Account Settings → Storage, run the connection test, and every completed render lands in your bucket.

Two modes are available:

  • Copy keeps the render on Templated and writes a copy to your bucket

  • External only makes your bucket the single durable copy, and the render URL points there

API responses and webhooks now include a storage_url field alongside the usual url.


Print-Safe Zone via API

Safe zone

The safe zone overlay is no longer editor only. It is stored on the template and can be set through the API, so print templates created programmatically carry their own margin guide.

PATCH /v1/template/{id}{  "safeZoneWidth": 50}

Set it to 0 to remove the safe zone. The editor picks it up on load and persists any change you make from the canvas.


HTML Render Format (Enterprise)

Renders can now be returned as self contained HTML instead of an image. Pass "format": "html" to the render endpoint and you get back a fully resolved HTML document, with absolute asset and font URLs, ready to embed or post process.

POST /v1/render{  "template": "your-template-id",  "format": "html",  "layers": { "title": { "text": "Hello World" } }}

It skips the browser entirely, so it completes instantly. Available on Enterprise plans, API only.


Create a Template from a Render

Turn any completed render back into a template, with the render's payload baked in as the new default content:

POST /v1/template/from-render/{renderId}

Useful for "save this variation as a new template" flows, and for turning a generated result into a starting point your users can edit. Pages that were not part of the render payload come in hidden, so the new template matches what was actually rendered.


ZIP Bundling for Multi-Page Renders

Multi page and batch renders can now be delivered as a single ZIP archive instead of a list of URLs:

POST /v1/render{  "template": "your-template-id",  "zip": true}

Use merge when you want one combined PDF, and zip when you want the individual files bundled. Async requests with zip deliver the archive through your webhook when it is ready.


Autofit Limits and Locked Layers via API

Autofit is now fully controllable from the API. Each text layer accepts min_font_size and max_font_size, so long values shrink within a range you decide instead of becoming unreadable.

{
  "layers": {
    "title": {      
      "text": "A much longer headline than usual",
      "min_font_size": 18,
      "max_font_size": 64
    }
  }
}

Set either to 0 to remove the limit. Layer locked state is also returned and updatable, and the pages endpoint accepts includeLockedLayers when you need the full picture.


Animation Preview While Scrubbing

Timeline scrubbing

Dragging the timeline playhead now updates the canvas to show exactly what the frame looks like at that moment, including animation mid states. No more rendering a test video just to check where an element sits halfway through its entrance.


Blend Modes

Blend modes

Image and video layers now support 16 CSS blend modes (Multiply, Screen, Overlay, Soft Light and friends) from the new Effects panel. Blend modes are preserved on duplication, survive template operations, and render identically through the API.


More Improvements

Faster Render Delivery

Renders are now served through a global CDN, so downloads and previews are noticeably faster, wherever your users are.

Zoom Buttons in the Crop Toolbar

Fine tuning a crop no longer depends on trackpad gestures: the crop toolbar now has explicit zoom in and zoom out buttons.

Linked Autofit for Anchor Groups

Anchored text layers can now share a single font size, so a group of related labels shrinks together instead of ending up with mismatched sizes.

Bigger Icon Library

The icon panel now runs on a new library, with a much larger searchable catalog than before.

Faster Bulk Jobs

Bulk render concurrency was increased and a race condition in the row counter was fixed, so large spreadsheets finish quicker and report accurate progress.

Embed Improvements

New hide-save-button URL parameter, a dedicated upload endpoint for embedded editors, better toolbar positioning when the sidebar is hidden, and a mobile friendly color picker that opens as a bottom sheet.

Smarter Paste

Components pasted into a page of a different size are now scaled to fit their destination instead of overflowing it.

Guided Onboarding

New accounts get a guided get-started flow that points them to the right path, whether they are integrating the API or embedding the editor.

Object Fit for Vector Layers

Vector layers now have the same fit controls as images: choose how an SVG fills its frame directly from the toolbar, without distorting the artwork.


Fixes

  • zip: true was being ignored for single page templates

  • Multi page templates only rendering page 1 in bulk spreadsheet jobs

  • Text layer formatting lost on API roundtrips and partial updates

  • Empty strings and zero values being dropped in embed postMessage layer updates

  • Non breaking spaces not preserved in rendered HTML

  • Tall templates producing truncated screenshots in the renderer

  • Large bulk jobs running out of memory while building the ZIP archive

  • Intermittent signups leaving users stuck on the form

  • Hidden layers not respected in some render paths

  • vertical_align in the render payload having no effect on text layers


That's it for this update!

A big one, with a lot of quality of life improvements and some powerful new features. As always, let us know what you'd like to see next on our feedback board.

Until the next one,
Pedro @ Templated

NewImprovedFixed

Layer Grouping, Scale Parameter, Edit Template via API and more 🚀

Hey all!

Thanks for all the feedback and suggestions you’ve been posting in out feedback board in the last weeks! It really helps us focusing on what you guys need the most and what will be more impactful for your workflow and automations.

Here’s a quick roundup on all the recent new features and fixes we’ve been working on and are now released in the app and API:

• Layer Grouping

You can now group multiple layers together for better formatting and designing your templates.
Just select multiple elements (with Shift + Click) and click on the Group button or use the Ctrl/Cmd + G keyboard shortcut.

• Show distance between elements while moving

When you drag or move elements in the editor, if you hold the Option key, you’ll now see live distance markers so you can align and space things more precisely.

• Edit Template endpoint in the API

Added a new endpoint so you can programmatically edit templates (not just create/render).
You can send a payload similar to the one to generate a render to modify the template structure. You can find more here in the docs.

• New params in the API Render endpoints

You can now pass line_height and letter_spacing to specify line-height and letter-spacing for text layers.
And you can now scale up or down the final render dimensions by using the scale parameter and control the image output size/scale.
You can check it here in the docs.

• Search by template tags on Dashboard

On the dashboard we added a tag‐based search so you can filter and find templates by your custom tags that we used to organize your templates.

• Rename template directly from the Template tile

No need to open the editor — you can now rename a template straight from its tile in the dashboard UI by just clicking the template name and start typing.

Shapes with dashed and dotted borders

In the editor you’ll now find shape layers that support dashed and dotted border styles (in addition to solid). You can also set different dash widths and spacing.


Other Improvements & Fixes

  • General performance and stability improvements across the editor and APIs

  • UI tweaks for smoother workflow in multi-element editing

  • Minor bug fixes (e.g., correct handling of custom asset URLs, improved typo corrections in dashboard)

  • Add external ID filter param to list template clones via API


That’s it for this update.

Hope these enhancements make your workflow better!

Until the next one,

Pedro

NewImproved

✨ New Features and Improvements

Hey there!
Just a quick update to let you know what we’ve been working, our recent new features, bug fixes and improvements.

We’re always listening to your feedback and suggestions and we even added a new board where you can summit your ideas, report bugs and follow our roadmap:
👉 Check our feedback board and roadmap here!

• Copy and Paste layers (including between tabs/templates)

You’re now able to Copy (Cmd + C) and Paste (Cmd + V) layers.
That’s particularly useful when you need to duplicate elements to a different page or even to a different template that you can open a different browser tab.

• Multi-Select Resizing

Select multiple elements or layers at once and resize them all together using the corner handles. This makes batch editing much faster and more efficient.

• Uploaded SVG Color Control via API

You can now control uploaded SVGs fill and stroke directly through the API. This gives you more flexibility when working with uploaded assets programmatically.

• Endpoint to Delete Uploads

We've added a new endpoint that accepts a list of upload IDs for deletion. This is perfect for workflows where you need to temporarily upload files and clean them up after your process is completed. You can find it in the docs here.

• Multiple Levels of Text Boldness

Text layers now support multiple font weight levels including thin, normal, semibold, bold, and extrabold. This gives you more precise control over your typography.

• Bulk Actions on Templates and Renders

You can now perform bulk actions directly in the dashboard:

  • Templates: Add to folder or remove multiple templates at once.

  • Renders: Download or remove multiple renders in one go.
    This makes managing your workspace faster and more convenient than ever.


Improvements and fixes:

  • Enhanced API flexibility for upload management

  • Streamlined multi-element editing workflow

  • Better resource cleanup options for temporary uploads

  • More granular text styling controls

  • Show angle while rotating elements

That’s it for this update 😉
Hope it improves your workflow and your automations.

Until the next one,

Pedro

NewImproved

Earlier updates