Skip to main content
Coming SoonCustom template functionality is planned for a future release. The underlying creative design library infrastructure is in place.

Custom Templates Overview

Custom templates allow you to:
  • Save successful landing page designs for reuse
  • Create organization-specific templates
  • Maintain brand consistency across experiences
  • Speed up landing page creation

Template Architecture

The template system is built on the creative design library:
Creative Design Library
├── Global Templates (Fanfare-provided)
├── Organization Templates (your custom templates)
└── Page Instances (individual landing pages)

How Templates Work

Template (reusable)

    Clone

Landing Page (instance)

   Customize

   Publish
Changes to templates don’t affect existing landing pages - they’re independent copies.

Creating Custom Templates (Coming Soon)

From Existing Page

  1. Open a published landing page
  2. Click Save as Template
  3. Enter template name and description
  4. Choose visibility (personal/organization)
  5. Save template

From Scratch

  1. Create new landing page
  2. Design your template
  3. Save as template before adding experience-specific content
  4. Use placeholders for dynamic content

Template Properties

PropertyDescription
NameTemplate identifier
DescriptionUse case and contents
ThumbnailPreview image
CategoryOrganization category
TagsSearchable tags
VisibilityPersonal or organization-wide

Template Content

Static Content

Content that remains the same across uses:
  • Brand logo placement
  • Standard header/footer
  • Legal disclaimers
  • Social links

Placeholder Content

Content to be replaced per-use:
  • Headlines (marked as editable)
  • Product images
  • Feature descriptions
  • Dates and times

Dynamic Bindings

Content that updates automatically:
  • Experience name
  • Experience dates
  • Countdown to start
  • Current status

Managing Templates

Organization Template Library

View and manage your organization’s templates:
┌─────────────────────────────────────────────────────────┐
│  Organization Templates                                 │
│                                                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │ [Thumbnail] │  │ [Thumbnail] │  │ [Thumbnail] │    │
│  │             │  │             │  │             │    │
│  │ Product     │  │ VIP Event   │  │ Holiday     │    │
│  │ Launch      │  │ Template    │  │ Sale        │    │
│  │             │  │             │  │             │    │
│  │ 12 uses     │  │ 5 uses      │  │ 3 uses      │    │
│  └─────────────┘  └─────────────┘  └─────────────┘    │
│                                                         │
│  + Create Template                                      │
│                                                         │
└─────────────────────────────────────────────────────────┘

Template Actions

ActionDescription
EditModify template design
DuplicateCreate copy for variations
DeleteRemove (doesn’t affect existing pages)
ShareShare with team members
ExportDownload template JSON

Template Versioning

Track template changes over time:
VersionDateChanges
v3Mar 15, 2024Updated hero section
v2Feb 1, 2024Added FAQ section
v1Jan 10, 2024Initial creation

Template Categories

Organize templates by category:
CategoryExample Templates
Product LaunchesStandard drop, Premium drop, Flash sale
EventsTicket release, Virtual event, In-store
CampaignsHoliday, Seasonal, Partnership
WaitlistsPre-launch, Beta signup, Interest

Sharing Templates

Within Organization

All organization templates are available to team members with appropriate permissions.

Template Permissions

RoleCapabilities
AdminCreate, edit, delete all templates
EditorCreate personal, edit own, use all
ViewerUse templates only

Exporting Templates

Export templates for backup or sharing:
// Export template as JSON
const templateExport = {
  name: "Product Launch Template",
  version: "1.0.0",
  creativeDocument: {
    schemaVersion: 1,
    kind: "landing-page",
    editor: "section-builder",
    body: {
      // Template sections
    },
  },
  metadata: {
    description: "Standard product launch template",
    tags: ["product", "launch", "queue"],
  },
};

Importing Templates

Import templates from JSON:
// Import endpoint (coming soon)
await adminApi.templates.import({
  template: templateJson,
  organizationId: "org_...",
});

Template Best Practices

Design for Reuse

DoDon’t
Use placeholder contentInclude specific product names
Apply brand themeHard-code colors
Include common sectionsOver-customize for one use
Document template purposeLeave unnamed

Placeholder Strategy

Use clear placeholders that are easy to identify:
[PRODUCT NAME]
[HERO IMAGE]
[LAUNCH DATE]
[FEATURE 1 TITLE]
[FEATURE 1 DESCRIPTION]

Section Library

Build templates from reusable sections:
  1. Create section variations (Hero A, Hero B, Hero C)
  2. Document each variation’s use case
  3. Combine sections into full templates
  4. Test across different content

Template Inheritance

Future capability: Template inheritance
Base Template (brand standards)

Product Template (extends base)

Sneaker Drop Template (extends product)

Landing Page Instance

Current Workarounds

Manual Template Creation

Save template designs as JSON files:
# Export current page design
# Copy from editor output drawer
# Save to templates/product-launch.json

Page Duplication

Duplicate existing pages for new experiences:
  1. Create a “template” experience with landing page
  2. Clone the experience for each new launch
  3. Customize the cloned landing page

Design System Documentation

Maintain a design system document:
# Brand Landing Page Standards

## Hero Section

- Headline: 48px, bold, primary color
- Subheadline: 18px, regular, muted color
- CTA: Primary button, "Join Queue" default

## Features Section

- 3-column layout
- Icon + Title + Description
- Consistent spacing: 32px gap

## Color Usage

- Hero background: Brand gradient
- Section backgrounds: Alternate white/gray
- CTAs: Primary color

Template API (Coming Soon)

Programmatic template management:
// List organization templates
const templates = await adminApi.templates.list({
  organizationId: "org_...",
  category: "product-launch",
});

// Create template from page
const template = await adminApi.templates.createFromPage({
  landingPageId: "lp_...",
  name: "Summer Drop Template",
  description: "Template for summer product releases",
});

// Create page from template
const page = await adminApi.landingPages.createFromTemplate({
  templateId: "tpl_...",
  experienceId: "exp_...",
  slug: "summer-2024",
});

Next Steps