Features

Everything between a prompt and a published post

FrameFlow covers the whole path — generation, upload, composition, preview, and delivery — because the gaps between separate tools are where files get lost and the wrong cut gets posted.

01

Generation

Model output is treated as material to review, not as something to post unseen.

Text-to-video and text-to-image

Prompt xAI for a clip or a still. Video generation runs asynchronously with bounded polling; images return immediately and land in the library.

Start from a source image

Attach a still — uploaded or picked from the library — and the clip animates out of it, or the prompt edits the picture instead. One source image per generation, kept in the library beside the clip it produced.

Errors are recorded, not hidden

A failed poll is stored on the job. Non-retryable API responses stop it immediately; network blips and rate limits stay eligible for another attempt.

02

Media and direction

Build complete multi-shot films or bring finished media into one focused workspace.

Direct upload

MP4, WebM, MOV, M4V, JPEG, PNG, WebP, and GIF, with authenticated, range-enabled playback in the browser so scrubbing works properly.

AI-directed multi-shot films

Give Director one brief and it plans the shots, locks visual continuity with keyframes, renders each clip, records narration, and assembles the finished cut.

Text posts

Compose text-only posts in the studio for destinations that accept them, with the platform's own character limit checked before anything is queued.

03

Publishing

Uploading to a real audience is slow and failure-prone, so it runs out of band.

Durable queue

Publishing is enqueued and run by a worker, one row per destination. A large upload can never time out the request, and every attempt is recorded.

Scheduling

Park a post until a chosen time. It sits as scheduled, ignored until due, and can be cancelled beforehand. Retries are manual by design — silent auto-retry risks double-posting.

Media-type awareness

Destinations that cannot accept the selected item are disabled with the reason shown, and per-platform settings appear only for the destinations you picked.

04

Operations and security

Self-hosted means the operator carries the keys, so the app is careful with them.

Encrypted credentials

Provider tokens are encrypted at rest and never returned to the browser. TikTok's single-use refresh token is rotated and written back on every exchange.

Signed session login

A signed, HTTP-only cookie guards the studio and the media routes. Generated and uploaded files are served only to an authenticated session.

Atomic deployments

Standalone builds are installed as versioned releases behind a symlink switch, with data kept outside release directories and a health check that rolls back a bad release.

Want the mechanics rather than the list?

How it works walks through the actual sequence a post goes through, including the handshake each platform requires.

How it works

A note on what is not here

Douyin, Xiaohongshu, and Bilibili were removed rather than left half-built: all three gate programmatic publishing behind business-entity qualification that an individual developer cannot obtain, so those integrations could never actually run. FrameFlow will not automate cookies or unofficial endpoints to work around a platform's approval process.

Supported destinations are TikTok, YouTube, and X.