Pluslide LogoPluslide
Design Template

Template Overview

Learn to design effective templates in Pluslide. Understand core concepts like fields, layout systems, and API-driven data binding for dynamic presentations.

Template is the foundation of Pluslide's presentation generation system. A well-designed template enables you to generate consistent, professional presentations with dynamic data through a single API call.

What is a Template?

A Template is a reusable slide layout that defines:

  • Visual Structure: The arrangement and styling of elements on a slide
  • Dynamic Fields: Placeholders that accept data from API calls
  • Layout Rules: How elements respond when data changes
┌─────────────────────────────────────────────────────┐
│  Template (title-slide)                             │
│  ┌───────────────────────────────────────────────┐  │
│  │  Field: title                                 │  │
│  │  "Quarterly Report"  ← from API               │  │
│  └───────────────────────────────────────────────┘  │
│  ┌───────────────────────────────────────────────┐  │
│  │  Field: subtitle                              │  │
│  │  "Q4 2024 Results"   ← from API               │  │
│  └───────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────┘

Core Concepts

Projects and Templates

  • A Project contains multiple templates
  • Each Template represents one slide layout
  • Templates are identified by a unique Template Key
Project (proj_abc123)
├── Template: title-slide
├── Template: content-slide
├── Template: chart-slide
└── Template: closing-slide

The API-First Mindset

When designing templates, always think about how the API will populate your slides:

{
  "slideList": [
    {
      "templateKey": "title-slide",
      "content": {
        "title": "Quarterly Report",
        "subtitle": "Q4 2024 Results"
      }
    }
  ]
}

The content object maps directly to your Field Keys. This is why clear, descriptive naming is crucial.

Human-Readable Keys

Your template_key and field_key values appear directly in API requests. Make them self-documenting:

Good: templateKey: "product-comparison"
Bad:  templateKey: "template-1"

Good: fieldKey: "product_name"
Bad:  fieldKey: "text_field_1"

See Naming Conventions for detailed guidelines.

Strategic Use of Static and Required

Control data flow by marking fields appropriately:

  • Static: Content defined in the template, not from API (logos, decorative elements)
  • Required: API must provide this value or the request fails

See Field Configuration for implementation details.

Group for Dynamic Layouts

When elements need to respond to each other based on varying data, use Group:

Without Group:              With Group:
┌────────┬────────┐        ┌─────────────────────────┐
│ Fixed  │ Fixed  │        │ Grid Container          │
│ Text   │ Image  │        │ ┌────────┬────────────┐ │
│ (100px)│ (100px)│        │ │  Hug   │    Fill    │ │
└────────┴────────┘        │ │ content│  container │ │
                           │ │  Text  │   Image    │ │
Data changes? Overlap!     │ └────────┴────────────┘ │
                           └─────────────────────────┘
                           Data changes? Adapts!

See Layout System for the complete grid system guide.

On this page