Skip to content

docs(compose): new engine, per-minute pricing and a full docs revamp - #113

Merged
a-essawy merged 17 commits into
mainfrom
docs/compose-output-pricing
Oct 20, 2026
Merged

a-essawy merged 17 commits into
mainfrom
docs/compose-output-pricing

Conversation

@a-essawy

@a-essawy a-essawy commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

The Compose docs for the new engine and its pricing. Merge on launch day, together with rendobar/rendobar#867 (the API deploy changes billing and plan limits, so these pages must go live the same day).

What changes

Pricing and plans

  • One rate: $0.04 per minute of output video, billed per second, 15-second minimum, on every plan.
  • What each plan renders: Free 1080p30, Pro 1440p30, Studio 4K60. Animated graphics stop at 1080p30 on self-serve plans.
  • The full POST /compose/validate response, field by field.

Every engine capability documented in prose

  • New Media clips page: video, image, audio, Lottie, trim, speed, opacity, and the 8 blend modes.
  • New Subtitles and timers page, split out of Text: cues, .srt and .vtt files, line vs typewriter reveal, timer directions and formats, and what they can animate.
  • Output is now a full reference: defaults, every format, all 15 size presets with pixels, frame rate, quality and codecs, transparency, and range.
  • Framing has a JSON snippet per section and now holds fit (all four modes).
  • Audio and mixing adds ducking with volume keyframes, pan, how tracks mix, and effects on the final mix.
  • Effects explains all 23 picture effects and lists the effect endpoints. Transitions adds direction for edge wipes and custom map wipes.
  • Kinetic titles (by, stagger, order, out) and 3D turns (rotateX, rotateY, perspective).
  • The field reference is regenerated from the schema: nested fields now appear, and transform and text animate state the 1080p 30 fps cap for animated graphics.

Corrections found against the schema (18), for example: mosaic is pixelate, the visualizer draws waveform or spectrum (no meter), animated graphics are kinetic text, blur/scale entrances and 3D turns (not HTML or Lottie), volume lives on video and audio assets, fade dips through black and transition has no default, broken in-page anchors and duplicate headings.

Readability

  • A plain-English pass on all 15 hand-written pages (about 9% shorter, no facts removed).
  • In-docs links on the Compose pages are written /docs/.... On the live site a bare /jobs/... href returns 404 without JavaScript. About 30 non-Compose pages still use the bare form. That is a separate fix.
  • The overview opens with the illustrated story render and the full request that made it.
  • build-with-ai.mdx mirrors the integration prompt's new line pointing at /compose/features/ (rendobar/rendobar#867 changes the source).

Checks

  • mint validate passes.
  • Every JSON example on the Compose pages (49) passes the API's own compose validation.
  • No em dashes or semicolons in prose. Every description is 100 to 160 characters.
  • mint broken-links flags only /docs/-prefixed links (it serves locally at the root) and existing links outside Compose.

Merge order

  1. rendobar/rendobar#867 merged (squash) and the engine deployed to prod (launch steps 1 to 4 in its body).
  2. Merge this PR, before deploy:production: the website build fails while the new Compose pages it links (/docs/jobs/compose/media, /captions, /pricing) return 404.
  3. deploy:production from rendobar/rendobar. The illustrated-story recipe link here resolves once that deploy is live.

Compose now bills per second of delivered video instead of compute time.
Add a compose pricing page (rates, 20 s minimum, animated graphics at 3x,
failed-render rules, quote from validate, enterprise contact) and update
the credits, FAQ, job lifecycle and MCP pages that said every job bills
by compute. Escape the dollar signs on lines Mintlify rendered as math.
A timeout means the compose engine's own time estimate was off, so it counts as a failure on Rendobar's side and bills nothing.
The engine effect now takes "filter" with a public name and public parameter names (FFmpeg names for FFmpeg filters, camelCase for the rest). Point readers at GET /compose/effects/engine for the full list.
Compose bills one rate per output minute with a 15-second minimum, the same on every plan. Pro adds 4K and 60 fps compose and GPU FFmpeg, and animated graphics above 1080p or 30 fps are enterprise only. A render over the plan returns PLAN_LIMIT.
Studio ($29/mo, $20 monthly credits, 50 concurrent jobs) renders compose
up to 4K at 60 fps. Pro now stops a plain edit at 1440p 30 fps. Both paid
plans get a 25% credit-purchase bonus, up from 20%.

Adds a Studio column to the plan tables, drops the priority queue row
(no plan has it yet) and names Studio wherever a limit was listed for
Pro only.
Generated from the schema the API validates with. Nested fields such as
style.animate.by, stagger, order and out now appear, with the 3D
transform fields, and schemaVersion, output and style.size show their
defaults instead of being marked required.
Every engine capability is now explained in prose. New Media clips page
(video, image, audio, Lottie, trim, speed, opacity, blend modes) and
Subtitles and timers page. Output becomes a full reference (formats,
all size presets, quality, codecs, transparency, range), Framing gets
JSON per section and fit, Audio covers ducking, pan and the mix,
Effects explains every picture effect, Transitions adds direction and
custom wipes, and Pricing explains the validate response. Fixes 18
errors found against the schema (mosaic, visualizer kinds, animated
graphics, volume path, fade colour, broken anchors). Plain-English pass
on every page, links written as /docs/... so they resolve without
JavaScript, and the overview opens with the illustrated story and its
request.
Studio keeps outputs 90 days. The FAQ lists the nine live job types
instead of ffmpeg alone. A compose render past its time limit is free,
and compose failures follow their own rule. The Open in ChatGPT and
Cursor links carry the current integration prompt. Ten in-page links
point at headings that were renamed, and the credits section on
charging is titled for what it says.
…ics cap

The transform and text animation fields now say they render up to 1080p at 30 fps on self-serve plans, from the schema.
Animated text and 3D turns are refused inside a scene or a
composition, so the timeline, text and motion pages now say they work
only on top-level tracks and in overlays.

The pricing page no longer claims a 4K render with animated graphics
costs the same, since those stop at 1080p 30 fps. It names upgradeTo
on a plan refusal and points at the job's cost instead of the error
codes page. Free replaces pay-as-you-go on the output page, and two
float artifacts in the index example are rounded.
The error codes page gains FEATURE_NOT_ENABLED and a section on
reading upgradeTo from a PLAN_LIMIT, and RUNNER_TIMEOUT now says what
it means. The FFmpeg page matches the job lifecycle page: a job past
its timeout fails with JOB_TIMEOUT and is billed for its compute.

The limits table gains team members, total input per job, the
priority queue, the audit log and priority support. Table rows with
two prices escape the dollar sign, two semicolons become sentences,
and the links this branch added carry the /docs prefix. The SDK page
covers the compose resource and billing.checkoutPlan, and the MCP page
shows the real validate_compose result.
Scene clips no longer advertise 3D turns, subtitles and timers say which entrances they take, the output size and frame rate name each plan's frame, and the subtitle file field no longer names a job type that is not live.
@a-essawy
a-essawy marked this pull request as ready for review October 20, 2026 19:48
@a-essawy
a-essawy merged commit 26b75ec into main Oct 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant