MoDeck

MoDeck documentation: from MOGRT to finished video

Learn how to publish After Effects MOGRTs, shape the browser editor your team will use, and render their finished versions on your own machine.

Evaluating MoDeck? Read the official product guide.

After EffectsMOGRT source
→⇄
Browser editorTeam input

Quick start

Publish your first working template

Start with one simple MOGRT. Once the full loop works, add logic and automation.

  1. 1

    Create an account and install the desktop app

    Create your MoDeck account, then install the desktop app on a Mac or Windows computer with After Effects.

  2. 2

    Connect the app to After Effects

    Open App settings and choose an installed After Effects version, or use Select custom folder… to locate your installation. Stop background After Effects before changing versions. Note the sync folder. The default is a folder named MoDeck Sync in your user folder.

  3. 3

    Make a template folder

    Create a folder inside the sync folder and put one or more After Effects MOGRT files inside it. The folder name becomes the online template name.

    MoDeck Sync/└─ Social Posts/   ├─ Headline.mogrt   └─ End Card.mogrt

    MOGRTs can sit in subfolders. The same folder structure appears in the browser. Rename the template folder whenever you want to rename the online template. MOGRT files placed directly in the sync-folder root are not treated as a template.

  4. 4

    Test the complete loop

    Keep the desktop app running, open the browser editor, create an edit, change an option, fetch a preview, and request a render.

  5. 5

    Share it

    Invite editors by email, add a user group, or create a Magic Link from User management.

What stays local?

Your source AEPs and locally referenced template assets stay on the render machine. MoDeck syncs the MOGRT's editable metadata and template settings. Browser-uploaded media and completed renders use MoDeck's file service when upload is enabled, so they can move between the editor and the render machine.

Optional: export MOGRTs automatically from AEP files

Turn on Auto export mogrts from aeps in sync folder in App settings, then save an AEP inside a template folder. MoDeck exports comps with Essential Graphics that are either at the project root or inside an After Effects project folder named (or commented) modk-export.

This is useful while developing a template because saving the AEP refreshes its MOGRT files automatically.

Desktop app

The bridge between the browser and After Effects

The desktop app is both the template manager and the local render worker.

Start by selecting a template

Use the template dropdown at the top of the desktop app, then open the tab for the job you want to do: Edits, Template settings, Template logic, User management, Render settings, or Render log. The controls in those tabs apply to the selected template.

Sync

Watches the sync folder, reads MOGRT controls, and updates online template metadata.

Configure

Stores editor behavior, template logic, sharing, local paths, and render settings.

Preview

Asks After Effects for still previews that reflect the editor's current choices.

Render

Claims queued work, assembles an AEP, renders locally, and handles the finished files.

MoDeck desktop app showing a template and its edits
The app lives in the system tray and is designed to keep working in the background.

Background After Effects

MoDeck can keep a separate background instance of After Effects ready for previews and assembly. The AE indicator in the app shows its state. You can disable launching it at startup to save memory; the first preview or render will then take longer to begin.

When the app must be online

Template metadata remains visible online, but a connected desktop app is needed for fresh After Effects previews and final renders. If no eligible render machine is online, requests cannot be completed until one connects.

Rendering is a local operation

Closing the app, signing out, letting the machine sleep, or losing access to After Effects stops that machine from processing work. The app includes startup, sleep-prevention, and operating-system notification options for render stations.

Editor experience

Choose how much freedom your editors get

Both editor types use the same exposed MOGRT properties. The difference is how the experience is presented.

Set the editor type for a template

In the desktop app, select the template, open Template settings, then find Online editor. Choose Journey editor (simple) or Sequence editor (advanced). MoDeck saves the choice for that template, so it controls which experience opens in the browser; you can change it later without editing or re-exporting the MOGRTs. Use Open this template in online editor at the bottom of the tab to test it.

Flexible

Sequence editor

Best when editors should build, reorder, and reuse scenes.

Annotated MoDeck Sequence editor showing its MOGRT browser, option panel, preview, and timeline
The Sequence editor and its main working areas.
  • Drag or double-click MOGRTs onto a timeline
  • Edit the selected MOGRT in the option panel
  • Save and return to edits later
  • Connect CSV, Google Sheets, or JSON data
  • Use predefined sequences when the scene order should be fixed
Guided

Journey editor

Best for a single scene or a tightly controlled, form-like workflow.

MoDeck Journey editor showing one guided template option beside its video preview
The Journey editor presents choices one step at a time.
  • Guide the editor through one option at a time
  • Show a relevant preview beside each choice
  • Remove timeline and sequence decisions
  • Use Essential Graphics comments as extra help text
  • Send the finished choices directly to rendering

How previews work

The MoDeck online editor is capable of providing live previews of your edits, drag the playhead at the top of the timeline in order to see your edits at that point. To configure previews, select the template in the desktop app and open Template settings → Preview behavior. There you can set its maximum width and height, and show After Effects comp markers in the browser.

Hover over a freshly generated still preview to show boxes around editable text. Click a box to focus and select its text input, then type a replacement. This works in both Sequence and Journey. Hidden inputs and values supplied by a spreadsheet, JSON, or hidden expression are excluded.

Focusing a text input moves the preview to the midpoint of that text layer's in/out range, unless the current preview time is already inside it. Global text inputs use the first linked text layer. Timing becomes available from a generated preview and is approximate for nested compositions; stretching, time remapping, opacity and position animations are not taken into account.

Visible media replacement layers also show bounds on hover, with a Select media button in the center. Click it to open the same media picker as the option panel. This works in Sequence and Journey, including linked global media options; data- or expression-driven inputs remain controlled by their source.

In the advanced Sequence editor, hovering over a fresh still preview also shows targets for editable 2D Number position controls. Drag a target and release it to update its X/Y values and generate a new preview. You can still enter the numbers directly.

In Journey, place a preview comment before the options that should use that frame. Selecting a named preview frame moves the playhead to that moment in its MOGRT and loads it through the same preview system as the scrubber. The frame buttons and Journey frame menu remain shortcuts to those times.

Google Sheet previews may reuse data fetched in the previous 10 seconds. Refresh the sheet manually when you need a change immediately. Final renders fetch the current data again.

Collaboration

Share a template without sharing After Effects

Access is managed per template from the desktop app's User management tab.

Magic Link controls

Each link has its own name, assigned editors, and render-request settings:

  • Assigned editors: add more than one email and use the generated password or personalized link to choose who receives the render.
  • Requester-provided email: let a visitor enter the delivery address. Your approval is automatically required.
  • Review before rendering: keep a request out of the render queue until you approve it in the desktop app or approval email.
  • Submission message: show instructions before an editor requests a render.
  • Embed code: place the browser editor in an iframe on your own site.

Brand the editor

Enterprise accounts can upload a compact logo and set the editor colors from browser account settings. Your branding is used whenever an editor opens one of your templates.

The color scheme editor on the online settings
The editor color scheme can be adjusted through the settings on the online editor.

Customize notification emails

With custom SMTP enabled in the desktop app, you can change email subjects and buttons or provide full HTML templates for invitations and completed renders.

Custom links and HTML can use {{ deckName }}, {{ editName }}, {{ deckID }}, {{ editID }}, {{ magicLinkHash }}, {{ hashPass }}, and {{ hashVisitor }}. Values that do not apply to that email are removed.

Template authoring

Prepare MOGRTs for a good browser experience

Any MOGRT made in After Effects can be read by MoDeck. The quality of the editor depends on how deliberately you expose and name its controls.

01

Expose only useful choices

Every Essential Graphics control becomes work for the editor. Hide implementation controls and use Modk commands for MoDeck-only behavior.

02

Use human names

Name controls for the person supplying content, “Headline” is clearer than “Source Text 2.” Use groups and comments to add structure and guidance.

03

Design for real content

Set sensible defaults, limits, and required fields. Test long text, missing media, unusual aspect ratios, and the maximum intended duration.

04

Choose preview moments

Preview frames should show the option clearly. Add more than one named frame when a single moment cannot represent the whole MOGRT.

Media replacement

Drag a supported footage or comp layer into Essential Graphics. Replacements keep the bounds of the original layer and follow its Default Scaling setting. To expose audio, precompose the audio layer and add that precomp instead.

Editors can upload or select images, video, and audio; crop images; and trim video or audio. They can also enter a filename from _modk-data/User media or an additional media folder. Use forward slashes for subfolders, including on Windows. Browser uploads are downloaded automatically into a folder for that editor.

Media values can come from the browser, CSV, Google Sheets, or JSON. An HTTPS file URL, or a supported video-platform page such as YouTube, Vimeo, or Instagram, is downloaded by the desktop app before assembly.

Text to speech

In the media picker, choose Generate speech audio file from text, select a voice, and enter the script. The script can also be linked to spreadsheet or JSON data to generate different speech for each version.

Preview clips and thumbnails

MOGRT preview clip

When exporting from After Effects 24.2 or later, enable Include video preview. The browser can play that clip when an editor hovers over the MOGRT.

How mogrts display their previews on mouse hover
Your mogrt preview clips play on hover.

Template showcase

Place an MP4 with the same name as the template folder beside the folder in the sync root. You can also override an individual MOGRT's online thumbnail from Template logic.

How template showcase clips are accessed online
Template showcase videos can be played online.

Add more functionality to MOGRTs

Modk commands

Commands are specially named Essential Graphics comments, controls or comp markers that are used to define specific functionality on the MoDeck editor. MoDeck reads them during sync and hides the command controls from editors. Add an Essential Graphics comment from the panel's Add Formatting menu.

Screenshow showing how to add comments to the Essential Graphics panel in After Effects
Add comments in the Essential Graphics panel through the Add Formatting dropdown at the bottom.
You can override common commands in the desktop app

In Template logic, open a MOGRT's settings to adjust overlap, editable duration, start delay, base-MOGRT behavior, and preview frames. These saved settings override values read from the MOGRT file and can be reset later.

modk-preview-[name]
Essential Graphics comment or comp marker

Defines a still-preview frame. For a comment, put the frame number in the comment value. For a marker, place the marker at the desired time. The optional name lets editors switch between several frames.

Without a preview command, MoDeck uses the midpoint.

modk-render
Comp marker

Defines a frame for JPG or PNG output. Add one marker for each still you want rendered.

A marker can contain comma-separated commands, for example: modk-render, modk-preview-End.

modk-setDuration
Slider

Sets the assembled MOGRT comp duration in seconds from the slider's evaluated value. Drive the slider with an expression when duration depends on another option or replaceable media.

After Effects calculates this value, so the browser timeline updates its displayed duration after a fresh preview.

modk-setStretch
Slider

Like modk-setDuration, but time-stretches the MOGRT layer to the evaluated number of seconds. Use this when protected regions make changing the source comp duration unsuitable.

modk-dimensions
Dropdown menu

Defines named output sizes that editors can preview and select when rendering. Each selected size becomes a separate output file.

Add a Dropdown Menu Control, format its items like 1080x1920-Story, then expose its Menu property as modk-dimensions. See the setup guide below.

modk-durationEditable
Essential Graphics comment

Lets editors change a MOGRT's duration. Put an initial duration in frames in the comment value. The source comp duration is the maximum.

Ignored when the MOGRT also uses modk-setDuration or modk-setStretch.

modk-stretchEditable
Essential Graphics comment

Adds the same editable-duration control, but time-stretches the MOGRT layer rather than changing its comp duration.

modk-startEditable
Essential Graphics comment

Lets editors add a delay before the MOGRT starts. Put the initial delay in frames in the comment value.

modk-overlap
Essential Graphics comment

Starts this MOGRT early so it overlaps the previous one. Put the overlap length in frames in the comment value.

Overlap shortens the total sequence duration by the same amount.

modk-transcribe
Essential Graphics comment

Adds the option to transcribe audible speech into online timeline markers. Leave the value blank for all audio layers or enter comma-separated AE layer indexes.

modk-base
Essential Graphics comment

Marks the MOGRT as a persistent layer behind the sequence. Optional values are always, stretch, and fixed; combine them with spaces when needed.

modk-index
Slider

Receives the zero-based position of this MOGRT in the sequence. A base MOGRT receives -1. Use it in AE expressions for first-, middle-, or last-scene behavior.

modk-count
Slider

Receives the total number of MOGRTs in the sequence. A last item has index equal to count minus one.

modk-editName
Text input

Receives the edit name entered in the browser or sent through the API.

Set up multiple output dimensions

modk-dimensions lets one MOGRT support several output sizes, such as landscape, square, and vertical. Editors can preview a size while working, then select one or several sizes when they request a render. MoDeck produces a separate output for every selected size.

  1. Add an Effect → Expression Controls → Dropdown Menu Control to a layer. Open the menu's Edit dialog and add one item for each output size you want to support.
  2. Name every menu item using its dimensions. Use widthxheight-name, with width first and height second. For example: 1920x1080-Wide, 1080x1080-Square, and 1080x1920-Story. The text after the first dash is the name shown in MoDeck, so give each size a unique name. If you omit it, the dimensions themselves are used as the name.
  3. Expose the menu to Essential Graphics. Drag the Dropdown Menu Control's Menu property into the Essential Graphics panel and rename that exposed property exactly modk-dimensions. MoDeck recognizes it during the next sync and hides the command control from editors.
  4. Make the design respond to each shape. During rendering, MoDeck resizes the MOGRT comp and assembled sequence to the selected width and height, then sets modk-dimensions to the matching menu item. Use responsive layout expressions and, when needed, the dropdown value to reposition, resize, or show different layers for each format. The responsive-size expressions below are a useful starting point.
Resizing the comp does not automatically redesign the layout

MoDeck changes the comp dimensions and centers the assembled MOGRT, but the artwork still needs to be authored responsively. Test text wrapping, media crops, safe areas, and layer positions in every supported aspect ratio.

After Effects modk-dimensions dropdown with Wide and Story sizes becoming selectable render dimensions in MoDeck
Menu items such as 1920x1080-Wide and 1080x1920-Story become named dimension choices in the render dialog.

Option-name prefixes

Add specific text at the beginning of your MOGRT option name to alter how that option works.

PatternUse
*Headline Make a text, media, or dropdown input required. Editors cannot preview or render until it has a value.
multiline-Body copyShow a multi-line text area instead of a single-line input.
limit-80-HeadlineLimit a text input to the stated number of characters.
direct-Volume Apply the value directly to the source property as well as the Essential Property. Useful for properties such as audio volume.

For a required multi-line or limited text field, put * first, for example *multiline-limit-200-Description.

Useful responsive-size expressions

Apply these to a layer's Scale property when the MOGRT may be rendered at several sizes.

Fit inside the comp
var r = sourceRectAtTime(time);
var sx = thisComp.width / r.width;
var sy = thisComp.height / r.height;
var s = 100 * Math.min(sx, sy);
[s, s];
Fill the comp
var r = sourceRectAtTime(time);
var sx = thisComp.width / r.width;
var sy = thisComp.height / r.height;
var s = 100 * Math.max(sx, sy);
[s, s];
Limit width and height
var limitW = 500;
var limitH = 500;
var r = sourceRectAtTime(time);
var s = Math.min(
  100 * limitW / r.width,
  100 * limitH / r.height,
  value[0]
);
[s, s];

Useful timing expressions

These help animations survive a duration change. Use the first for an outro or fade that must stay at the end; use the second when all animation should scale across the new duration.

Keep animation at the end
var dur = thisComp.duration;
var lastKeyTime = thisProperty.key(thisProperty.numKeys).time;
valueAtTime(time - dur + lastKeyTime);
Stretch keys across duration
var dur = thisComp.duration;
var lastKeyTime = thisProperty.key(thisProperty.numKeys).time;
valueAtTime(time / dur * lastKeyTime);

Template logic

Connect template-wide choices to MOGRT controls and scene structure

Every MOGRT has its own local options, such as its headline, color, or media. Template logic lets you create global options that belong to the template as a whole, then use those values to control options across several MOGRTs and decide which MOGRTs may appear in an edit.

Where to configure it

Select the template in the desktop app and open Template logic. The page has two main areas: Global options at the top and MOGRTs below. Changes remain a draft until you choose Save and apply logic; Cancel changes reloads the last saved version.

The template logic section of the desktop app
Global options are defined first; the MOGRT area controls the sequence, links, and conditions.
Local to one MOGRT

MOGRT options

These come from the MOGRT's Essential Graphics properties. They only affect that MOGRT and normally appear whenever an editor adds or reaches that scene. Two MOGRTs can each have a separate option named “Headline.”

Global to the template

Global options

These are created in Template logic and appear once for the whole edit, independently of any single scene. One global value can drive options in several MOGRTs and can be used to keep or remove scenes.

A simple example

Create a global dropdown named Style with “Light” and “Dark.” Link it to the color options in an intro, body scene, and end card. The editor makes one choice and all three MOGRTs receive the appropriate values. You can also add a condition so a dark-only end card is available, or included in a predefined sequence, only when Style is “Dark.”

1

Define template-wide choices

Add the global text, dropdown, media, and guidance fields that an editor should set once for the entire edit.

2

Choose the sequence mode

Let editors build their own sequence, or define the exact scene order they will start with.

3

Connect global and local values

Link each relevant MOGRT option to a global option, using mapping or an expression when a direct value is not enough.

4

Apply show/hide rules

Use global values to control which MOGRTs are available or retained in the sequence, and which inputs remain relevant.

Create global options

Use the add button below Global options, then choose the option's type, name, and default value. Global options are displayed in their own area in the browser editor and are saved with the edit.

  • Available types are dropdown menu, text, multiline text, media replacement, and comment. Comments provide headings and help text rather than a value to link.
  • Text, multiline text, dropdown, and media options can be marked required. Use the arrow controls to arrange the order editors see them.
  • Use the conditions button on a global option to show or hide that input based on other global values, for example, show “Custom headline” only when a dropdown is set to “Custom.”

Choose who controls the sequence

Under MOGRTs, choose one of the two sequence modes. This is separate from choosing the Sequence or Journey editor: the editor type controls how choices are presented, while this setting controls who determines the scene order.

Flexible sequence

Editors build their own sequence

Every permitted MOGRT is available in the browser for editors to add, reorder, and reuse. You can still link its local options to global options and add conditions that decide whether the MOGRT is available.

If a condition hides a MOGRT in this mode, MoDeck removes it from the MOGRT browser and removes any instances already placed on the timeline.

Owner-defined sequence

Editors use a predefined sequence

Use the add button to choose MOGRTs, then arrange them in the required order. Editors supply values but cannot add, remove, or reorder scenes themselves. Show/hide rules can still remove individual sequence items according to global choices.

Each position is configured separately. This means the same MOGRT can be used more than once with different links or conditions at each point in the sequence.

Link MOGRT options to global options

Open a MOGRT's logic panel with the control at the lower-right of its card. The dialog lists that MOGRT's local options. Use the link button beside an option, then select the compatible global option that should drive it.

  1. Create the global option that editors should control.
  2. Open each MOGRT that needs to respond to it.
  3. Link the relevant local option to the global option.
  4. Repeat across as many options and MOGRTs as needed, then save and apply the logic.

Once a local MOGRT option is directly linked, it no longer appears as a separate browser input because its value now comes from the global option. Use Auto link options by name when global and local option names already match. If their values do not map directly, use dropdown mapping or an option expression as explained below.

Control which MOGRTs and options can appear

In the same MOGRT logic dialog, add a show if or hide if rule and compare one or more global options with the values that should keep or remove that MOGRT. Conditions can be grouped with AND and OR rules for more specific behavior.

When editors build the sequence

The condition controls whether that MOGRT may be used at all. When hidden, it disappears from the browser and any copies already on the timeline are removed.

When the sequence is predefined

The condition controls one specific item in the predefined sequence. If it evaluates as hidden, that item is omitted while the remaining scene order stays intact.

You can also conditionally show global inputs based on other global values, or show a local MOGRT option based on another local option in that same MOGRT. These input-level rules remove irrelevant questions without changing the sequence itself.

MoDeck show and hide condition builder for controlling a MOGRT from global option values
Conditions can combine several global-option checks with AND or OR logic.
How this appears in Journey

Journey shows visible global options first, followed by the visible local options from each MOGRT in the predefined sequence. If a condition removes a sequence item, that MOGRT and its questions are omitted from the journey.

Option expressions

Use an option expression instead of a direct link when a local value must be calculated from several global options or transformed with more specific rules. Open the MOGRT's logic dialog and choose the expression button beside the local option. The JavaScript expression's result becomes that option's value.

Right-click in the expression editor to insert an available global option, then use Evaluate expression to check the result. The final result must match the local option's expected type, for example, text for a text option or a valid numeric value for a slider.

Use a dropdown value, or custom text
if (globalOption("Global dropdown").value === "Custom") {
  globalOption("Custom text").value;
} else {
  globalOption("Global dropdown").value;
}

This expects global options named Global dropdown and Custom text. Add a show/hide condition so the custom field only appears when the dropdown is set to “Custom.”

The option expressions dialog in the desktop app
Advanced connections can be made using an expression in the global options linking dialog.

Sequence behavior

How browser timelines become an After Effects comp

MoDeck assembles the selected MOGRTs into a comp named modk-sequence. Expressions inside a MOGRT can reference that comp to react to the surrounding sequence, for example, a base MOGRT can respond while a named scene is playing.

A screenshot of how mogrts are arranged in the AE timeline
Mogrts are pulled into a project and assembled into a sequence in one comp.
01

MOGRTs are placed in editor order.

02

Each new MOGRT is layered above the previous one.

03

Durations, start delays, overlap, options, logic, and media are applied.

04

An optional base MOGRT is moved behind the sequence.

Transitions between MOGRTs

Put the incoming transition at the start of a MOGRT and use modk-overlap so it begins before the previous MOGRT ends. For an outgoing animation on editable-duration MOGRTs, use protected regions with stretch behavior or drive the end keyframes from comp duration. Use modk-index and modk-count when the first or last scene should behave differently.

Base MOGRTs

A base MOGRT sits behind the entire sequence and is useful for a continuous background, music bed, watermark, or other persistent layer. Add modk-base or enable it in the MOGRT settings panel. By default editors can choose the base; always makes it mandatory, stretch time-stretches it, and fixed makes its duration determine the edit duration.

Versioning and automation

Create one video, or hundreds, from data

In the Sequence editor, data sources can populate MOGRT options and global options. One row or array item becomes one output version.

The flow of how to link mogrt options to columns of a spreadsheet
Individual options are linked to columns of your spreadsheet.

CSV or blank spreadsheet

Upload a CSV or build a sheet in MoDeck, then link each column to an option. Editors can also put media filenames or URLs into cells.

Google Sheets

Connect an authorized sheet or a sheet available to anyone with the link. Data is fetched again on the render machine before output.

JSON

Fetch HTTPS JSON, choose values with JSON paths, use request bodies and headers when needed, and select an array for multi-video output.

A practical versioning workflow

  1. Open or create an edit in the Sequence editor, choose Settings, then add a CSV, blank spreadsheet, Google Sheet, or JSON source.
  2. Close Settings and use the data-link button beside a MOGRT or global option.
  3. Select the matching column or JSON value.
  4. Preview a representative version.
  5. Request the render, then open Renders. MoDeck renders each included row and output size, and makes completed files available by row while the rest of the batch continues.

Scheduled renders

CSV, Google Sheets, and JSON edits can run on a schedule. Keep a render machine online at the scheduled time.

Render conditions

Skip rows based on a spreadsheet column and value, or use template show/hide logic to remove scenes per version.

Automatic linking

Options automatically link to spreadsheet columns with exactly matching names, including options in newly added scenes. This sets the initial link; you can choose any other column in the option's spreadsheet link menu, or choose none to keep its value independent of the sheet.

Dynamic filenames

Build filenames from edit data, date and time, dimensions, global options, spreadsheet values, and other render context. Each completed batch is also saved in the configured completed-renders folder (by default, _modk-data/Renders).

Work with large spreadsheets

The sheet supports searching, editing cells, pasting a tab-separated range, adding rows below the Row column and columns at the right end of the header, and clicking a row number to preview that version. The dialog expands with the sheet up to the screen edges, then scrolls to show additional rows and columns. Double-click a cell to edit longer text. Only the visible rows are drawn, keeping large sheets responsive. Automatic linking preserves your chosen column mappings and explicit none choices when you reopen an edit or render it. This also applies to global options, base scenes, and Google Sheets.

CSV files can be up to 50 MB. Free templates support 3 rows, Pro templates 30, and Enterprise templates up to 100,000. A row may contain up to 256 KB, with at most 1,000 columns and 128 MB of expanded data in a batch. Ambiguous column names and invalid CSV are reported before importing; extra rows are never silently discarded. These are input limits, not a guarantee of render throughput on a particular computer.

Watch and recover a batch

You can open Renders from the editor or by clicking the edit's play button in the template list. While a batch is running, click its rendering indicator to open the same panel.

The batch view lists one item per spreadsheet row: Video 1, Video 2, and so on. Each item groups all selected output sizes and formats, with one status and progress indicator for the row. Expand it to see its source data and choose an output to preview or download. Three rows with three sizes and one format produce three list items, each containing three files. A row completes when all its outputs have been delivered.

Pause after current video preserves remaining work. Resume batch continues it. If a video fails, the other videos continue and Retry failed videos retries the failures using the same captured data. To change source values or edit settings, request a new batch. Cancel stops further videos; files already completed stay available.

If the connection drops or MoDeck restarts, reopen the desktop app on the same render machine and sign in. It resumes from saved row and output-size checkpoints. An interrupted output may render again; verified completed outputs and uploaded file parts are reused. Keep the batch job folder under _modk-data/Temp/Renders intact until the batch finishes. A disconnected batch is not automatically handed to another computer.

Google Sheets and JSON are fetched when a new batch starts. That captured data is reused for retries. Videos that need rendering use the latest local MOGRTs, including on retry. Presets are copied for the run; replacement media is captured when each row is prepared. Completed local checkpoints are retained for seven days, then removed when another batch starts. Incomplete checkpoints are retained for recovery and protected from Clear temporary files. Each job uses a readable template/edit folder with a short suffix; each video and size has one working folder directly inside it. Finished videos are moved individually to the configured Render Output Path, with their filenames and any output subfolders preserved. Batch delivery adds no extra batch/row folders and creates no ZIP, whether cloud upload is enabled or disabled. This lets existing watch-folder ingest workflows pick up the media.

Extracted MOGRT assets are shared by previews and renders in Temp/Assets, with one folder named after each MOGRT plus a short suffix. Updated MOGRTs get a fresh extraction. There are no separate preview or batch asset copies. Save as AEP includes its own asset copies alongside the exported project.

Set up default spreadsheet data in After Effects

Import a CSV into an After Effects project, add it to a comp, open the CSV layer's Data property group, and drag that group into Essential Graphics. MoDeck uses it as the default spreadsheet for every new edit made from the template.

Build dynamic values from JSON

With JSON connected, right-click supported text, media, and JSON URL inputs to insert values from a response. You can combine fetched data with other text, or use one response to build a later request URL.

Rendering

From browser request to delivered file

The server coordinates the work; the desktop app and After Effects do the creative processing.

Configure output before requesting a render

In the desktop app, select the template and open Render settings. Enable at least one output format, choose the completed-renders folder, and decide whether finished files should be uploaded for browser download and email delivery. Then open the template in the browser, finish an edit, and use its render button to submit the job.

01

The editor submits

MoDeck saves the latest choices and creates a render request. A Magic Link may hold it for your approval first.

02

A machine claims it

The server assigns an eligible connected desktop app and prevents another machine from taking the same request.

03

The app prepares

It fetches current data and media, extracts the MOGRT projects, applies logic, and builds the modk-sequence comp.

04

After Effects renders

AE or Media Encoder creates every requested version, dimension, and enabled output format on the local machine.

05

MoDeck delivers

The app moves files to the completed folder, optionally uploads them, updates status, sends webhooks, and triggers notification email.

Render settings that matter most

SettingWhat it controls
Output formats MP4, MOV, JPG, PNG, GIF, and one or more Adobe Media Encoder EPR presets.
Allow editors to select formats Shows the enabled format choices when an editor requests a render.
Upload after render Uploads completed files so editors can view or download them and receive a delivery email.
Completed-renders folder The final local destination after files leave the temporary working folder.
File naming Separate conventions for single and multi-version output, with dynamic fields and optional subfolders.
Render webhook POSTs render-status changes to another service. Completed status includes file links when available.
Expression engine Must match the engine used when authoring the MOGRTs: JavaScript or Legacy ExtendScript.

Still-image output

For JPG or PNG, add modk-render markers to the MOGRT's main comp. MoDeck outputs a still for each render marker; without one it uses a midpoint fallback. One marker can serve both purposes, for example modk-render, modk-preview-Hero.

Post-assembly JSX

Place JSX files in the template folder to run them after MoDeck assembles the project and before the AEP is saved. This is an advanced escape hatch for custom AE processing. The script runs in the assembly scope, where config.editName, config.moseq, config.globalProperties, and the assembled project are available.

Multiple render machines

Sign in to the same MoDeck account on several computers to distribute separate jobs. The server assigns work to an available app; it does not split one render across machines. Every machine must have compatible After Effects, fonts, media, presets, MOGRT files, template folder names, and the same hidden .modeck file so the folders point to the same online template.

Local font collection

When you add or update a MOGRT, the desktop app collects the necessary locally available font files into _modk-data/Fonts inside your sync folder. Only font names, file hashes, sizes, and scan status are stored with the online template; font files stay on your computer.

If a compatible copy is both installed locally and available through Adobe Fonts, MoDeck prefers the installed copy.

Successful MOGRT font scans are saved in the template's hidden .modeck file and reused after refreshes and app restarts. MoDeck checks the MOGRT's content hash before reusing saved results; changed files are scanned again. Refresh templates still checks for newly available fonts and retries incomplete scans.

To ensure clean font handling, before a preview or render, MoDeck prepares uniquely named copies of the required fonts in Adobe's shared Fonts folder and prepares a local copy of each extracted After Effects project that uses those fonts. Different MOGRTs can use different versions of the same font. Source MOGRTs and your installed fonts stay unchanged. The prepared fonts appear only in Adobe apps, grouped under names beginning with z_modeck. Initial setup may request administrator access once; subsequent font additions normally reuse the folder's saved permissions. See the "Font management" section in the desktop app for details.

Saved AEP exports also reference MoDeck's prepared Adobe fonts. Opening them on another computer requires preparing the same font files there.

File synchronization is your responsibility

If using multiple render machines, it is your responsibility to ensure each render machine shares the same mogrts files. This can be done using your own shared storage or deployment process to synchronize files across different render machines.

Troubleshooting

When a preview or render fails

Work through these checks in order. They solve the most common local-render problems.

  1. 1

    Confirm the machine is ready

    Check that the desktop app is signed in, the template is active, After Effects is found, and the app shows no sync warning.

  2. 2

    Check the render log

    Open the template's Render log. It records the edit, machine, status code, and error detail for each stage.

    For custom Media Encoder presets, MoDeck checks the encoder if no progress is reported and output files do not grow for five minutes. If the job remains inactive, it reports a failure and asks the encoder to stop. Longer renders continue while progress or output activity is detected. If MoDeck cannot confirm that the encoder stopped, close and reopen Media Encoder before retrying. A paused encoder also needs attention on the render machine.

  3. 3

    Check storage and files

    Make sure the temp and output drives have space and all MOGRTs, media, fonts, and Encoder presets are available on this machine.

  4. 4

    Clear temporary files

    Let renders, previews, syncing and media downloads finish, then stop background AE using the AE indicator. Use the desktop app setting to clear temp files, then retry. Cached extracted MOGRT projects are rebuilt.

  5. 5

    Restart the background tools

    Close Media Encoder, stop background AE from the app, close any stranded After Effects processes, then start background AE again.

  6. 6

    Open the generated AEP

    For visual or timing errors, inspect the AEP in the temp folder. The root modk-sequence comp shows exactly what MoDeck assembled. For a preview-only problem, enable Save preview AEP for troubleshooting (slower) in the desktop template's Preview behavior settings, request another preview, then open Temp/Previews/latest_preview.aep on the render machine handling that request. This setting also saves latest_preview_diagnostics.json in the same folder, with preview settings, AE environment, assets, effects, fonts and any captured failure details. Include this file alongside desktop logs when reporting a preview problem; Submit logs does not attach it automatically. Draft previews do not save these troubleshooting files. The requested modk-sequence comp is inside its preview folder. Disable this setting afterward to avoid saving a project on every preview.

After Effects bridge installation and connection issues

Native-bridge versions of MoDeck use a C++ After Effects plug-in to prepare previews, export templates and assemble renders. On first launch after discovering After Effects, MoDeck installs or verifies the bundled plug-in without starting AE. It also verifies the plug-in before starting background AE. If administrator permission is required, MoDeck explains why and opens the operating system's permission prompt. Approve it (enter an administrator's credentials if requested); MoDeck finishes installation and verifies the files automatically. No manual file copying, commands or Adobe SDK installation are needed. The plug-in only connects from the background AE instance launched by MoDeck.

If background AE does not connect

Update or reinstall MoDeck, and try starting background AE again. If you declined the administrator prompt, retry and approve it. Keep the full bridge error from MoDeck's log when contacting support.

Windows

The bridge file is MoDeckBridge.aex in Adobe's shared MediaCore folder, typically C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore. MoDeck obtains this location from the selected AE installation's registry settings. AE versions share this copy. Standard Windows installations require administrator approval for installation, updates and repair. Already-current bridge files are verified without another prompt. A custom installation in a writable folder may not need approval. If another running AE instance locks a bridge file during an update, save your work and close that instance, then retry setup.

macOS

The bridge bundle is installed in your user Library at ~/Library/Application Support/Adobe/Common/Plug-ins/7.0/MediaCore/MoDeckBridge.plugin. This normally needs no administrator rights and is shared by AE versions on your Mac. Use the MoDeck build for your processor architecture.

Contact MoDeck support →

Public API

Drive MoDeck from another application

Use the API to inspect templates, create previews, queue renders, manage media and editors, and connect MoDeck to your own interface or workflow.

01

Create an API key

Generate it in browser account settings. Treat it like a password; creating a new key replaces the old one.

02

Authenticate

Prefer Authorization: Bearer YOUR_API_KEY. The API also accepts an apiKey field in the JSON body.

03

Keep a renderer online

/render, /preview, and local-media routes need a connected desktop app. Read-only template routes do not.

Endpoint reference

The examples below place apiKey in the request object. Omit that field when you authenticate with the recommended Bearer header instead.

GET / POST/listdecksList templates

Returns the account owner's templates, sanitized MOGRT data, editor addresses, and whether a render machine is online.

Example request object
{
  "apiKey": "YOUR_API_KEY"
}
GET / POST/getdeckGet one template

Returns one template with its global options, predefined sequence, MOGRTs, editors, and online state.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE"
}
GET / POST/getmogrtGet one MOGRT

Returns a sanitized MOGRT and its available options. For a MOGRT in a subfolder, include its key path.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "mogrt": "NAME_OR_PATH_OF_MOGRT"
}
POST/renderQueue a render

Creates a new edit or rerenders an existing edit, applies supplied sequence and global values, and assigns an online desktop app. When template logic uses a predefined sequence, MoDeck builds that sequence automatically. Otherwise include the MOGRTs in mogrtSeq. Omitted options keep their template defaults.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "name": "NAME_OF_THIS_EDIT",
  "editId": "OPTIONAL_EDIT_ID",
  "notificationEmail": "editor@example.com",
  "waitForRender": false,
  "mogrtSeq": [
    {
      "name": "MOGRT_NAME",
      "options": [
        {
          "name": "OPTION_NAME",
          "value": "OPTION_VALUE"
        }
      ],
      "duration": 10
    }
  ],
  "globalOptions": [
    {
      "name": "GLOBAL_OPTION_NAME",
      "value": "GLOBAL_OPTION_VALUE"
    }
  ]
}

Returns editId and requestId. Reuse editId for high-volume recurring work to avoid creating unnecessary saved edits.

POST/previewRender a still preview

Renders one MOGRT with supplied option values and returns preview data from an online desktop app.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "size": "OPTIONAL_NAME_OF_SIZE",
  "frame": "OPTIONAL_NAME_OF_PREVIEW_FRAME",
  "mogrt": {
    "name": "MOGRT_NAME",
    "options": [
      {
        "name": "OPTION_NAME",
        "value": "OPTION_VALUE"
      }
    ]
  }
}
GET / POST/renderstatusCheck render status

Returns current status for one edit, or ordered results for up to 50 edits. Data-driven batches include a requestId and paged batchstatus/batchfiles endpoints; ordinary renders include completed-file URLs.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "editId": "EDIT_ID"
}
GET / POST/batchstatusInspect batch rows

Returns up to 100 row statuses, the batch state, total rows and nextOffset. Use the requestId returned by renderstatus. Requires the template owner's API key.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deckID": "TEMPLATE_ID",
  "editID": "EDIT_ID",
  "requestId": "RENDER_REQUEST_ID",
  "offset": 0
}
GET / POST/batchfilesDownload a completed batch row

Returns short-lived download URLs for a completed row's uploaded outputs. The index is zero-based. Local-only renders remain on the render machine.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deckID": "TEMPLATE_ID",
  "editID": "EDIT_ID",
  "requestId": "RENDER_REQUEST_ID",
  "index": 0
}
GET / POST/listrendersList completed renders

Lists ordinary completed-render URLs and the latest 100 batchRuns for a template, optionally filtered to an edit name or ID. Batch files are fetched by row through batchfiles; moreBatchRuns indicates older batch history.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "editName": "OPTIONAL_NAME_OF_EDIT",
  "editId": "OPTIONAL_EDIT_ID"
}
GET / POST/listmediaList local media

Asks an online desktop app for files in its user-media folder, optionally filtered to one editor.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "userEmail": "OPTIONAL_EDITOR_EMAIL"
}
POST/uploadmediaCreate a media upload

Creates a time-limited upload URL. PUT the file bytes to the returned URL with the same Content-Type, then refresh connected apps.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "filename": "Picture.jpg",
  "filetype": "image/jpeg",
  "userEmail": "OPTIONAL_EDITOR_EMAIL"
}

The returned upload URL expires after 30 minutes.

POST/deletemediaRemove uploaded media

Removes a media entry from the online library. It does not delete copies already downloaded to a render machine.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "filename": "Picture.jpg",
  "userEmail": "OPTIONAL_EDITOR_EMAIL"
}
GET / POST/refreshappsRefresh desktop apps

Asks every currently connected desktop app on the account to refresh and download newly uploaded media.

Example request object
{
  "apiKey": "YOUR_API_KEY"
}
GET / POST/getshowcaseclipsGet showcase clips

Returns signed URLs for the template showcase and individual MOGRT preview clips or still thumbnails.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "mogrt": "OPTIONAL_NAME_OF_MOGRT"
}
GET / POST/getusersList template editors

Returns direct editor addresses and addresses inherited from user groups.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE"
}
GET / POST/getuserGet API-key owner

Returns the authenticated account's email, first name, and last name.

Example request object
{
  "apiKey": "YOUR_API_KEY"
}
POST/inviteusersInvite editors

Adds one or more editor email addresses to a template and can send invitation emails.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "emails": [
    "editor@example.com"
  ],
  "notify": true
}
POST/updatelogicUpdate global options

Adds or updates global options by name while preserving their existing links where possible.

Example request object
{
  "apiKey": "YOUR_API_KEY",
  "deck": "NAME_OF_TEMPLATE",
  "globalOptions": [
    {
      "name": "OPTION_NAME",
      "type": 13,
      "value": "OPTION_DEFAULT_VALUE",
      "menucontent": [
        "OPTION_MENU_ITEM"
      ]
    }
  ]
}
GET / POST/statusAPI health

Returns the public API health state. No API key is required.

MOGRT option type values returned by the API
1 Checkbox2 Number3 Angle4 Color5 2D number6 Text7 Multiline text8 Comment9 2D scale13 Dropdown menu14 Media replacement