Skip to main content

Introduction

Designs (formerly called "Posts") are projects or creations based on templates. A design serves as a container for your template configuration - you select a template, fill in custom content through controls, choose which sizes and formats to generate, and save your configuration including color palette selections and media type preferences. Once created, you can generate multiple exports from a design for different sizes, formats, or at different times, all based on the same saved configuration.

Design Structure

A design is organized as a project configuration based on a template. The main design object contains metadata, a reference to the source template, control values that customize the template content, selected template sizes (which formats to generate), and configuration options like color palette and media type.

The Base Design Object

The main design object structure (internally called "Post" in the API):

interface Design {
id: string; // UUID
name: string; // Design name
templateId: string; // Reference to source template

// Custom content
controlValues?: Record<string, ControlValue>; // Values for template controls

// Configuration
colorPaletteId?: string; // Selected color palette
templateSizes?: string[]; // Selected output format IDs
mediaType: 'image' | 'video'; // Render as image or video

// Metadata
previewUrl?: string; // Preview image URL
schemaVersion: number; // Schema version for compatibility

// Relations
creatorId?: string; // User who created the design
lastModifiedById?: string; // User who last modified
organizationId: string; // Organization
exports: Export[]; // Generated exports
assets: Asset[]; // Referenced assets
}

Control Values

Control values store the custom content for a design. Each control value corresponds to a control defined in the template, allowing users to customize text, images, selections, and other properties.

Control values can be:

  • Text: String values for text inputs and textareas
  • Images: Asset references with optional crop data
  • Booleans: True/false values for checkboxes
  • Selections: Selected option values for dropdown selects

Selected Sizes

A design stores a configuration of which template sizes (output formats) should be generated. The templateSizes array contains the IDs of the sizes that are selected for this design. This allows you to save a specific configuration - for example, you might create a design that only generates Instagram and LinkedIn formats, even if the template supports many more sizes. If not specified, all sizes from the template are used.

Color Palette

If the template supports color palettes, a design can specify a colorPaletteId to apply a specific color scheme. This can be either a custom organization palette (UUID) or a system palette (e.g., "warm-orange").

Read more about Color Palettes →

Media Type

The mediaType property determines whether the design should be rendered as a static image ('image') or an animated video ('video'). This preference is applied when generating exports.

Batch Creation (Datasets)

Designs can generate multiple records from tabular data using datasets. Instead of storing CSV rows on the design itself, the data lives in a reusable Dataset (an organization-scoped table of typed columns, including image/video columns) that is linked to a design through a DesignDataBinding.

  • A Dataset holds the imported rows (CSV/Excel, including embedded images ingested into the asset library) and a typed column schema. The same dataset can be reused across multiple designs.
  • A DesignDataBinding links a design to a dataset and stores the mapping (template control → dataset column), the selected rows, per-record overrides and an optional naming column used for export filenames.

At export time the platform resolves the binding and renders one output per selected row.

Read more about Datasets →

Exports

Exports are the final rendered outputs generated from designs. When you export a design, the platform renders the template with your design's configuration and creates the final image, video, or PDF files for the selected template sizes.

Read more about Exports →

See also