01 / SOURCE

What arrived and where it came from

One card per delivery. A delivery is one long-form video cut into clips, so the source URL and the campaign belong to the whole batch — they are read once and every clip in it is named in one call. Fix either here; "Look it up" reads the URL again.

idle

02 / TITLE & ESSENTIALS

What each clip is called and what it says

One Claude call per batch writes the title, the description and the hashtags for every clip at once — they are one editorial decision made from one context, and five clips off one video have to differentiate rather than repeat each other. The rules are three separate lists because what makes a good title has nothing to do with what makes a good tag.

The call

In: the source video's title, channel and description, the campaign, and per clip its burnt-in captions and why that moment was picked. Out: a title, a description and hashtags per clip, plus one line saying which moment the title was built on.

03 / RULES

Where a post goes and how it is published

Everything that is true of a post whatever its title says: which accounts it reaches, the bounds the calendar has to stay inside, and the per-platform options Outstand actually accepts. Every hour on this page is New York time.

Who a post reaches

A post targets a channel family — one brand across the platforms it lives on. The scheduling call picks the family; this switch decides how much of it the post reaches.

Pick platforms myself

Off (the default): the post goes to every connected account that family has — one Outstand call with all of them on it, so the brand posts everywhere it lives. On: only the platforms ticked below, which is the exception rather than the rule.

Platforms

Only used while the switch above is on.

When a post may land

Told to the scheduling call, and enforced in code afterwards — a slot that breaks one of these is moved to the next legal one. New York time, always.

Posting hours

Nothing is scheduled outside them; a slot past the close moves to the next morning.

Minimum gap between posts

Minutes. Two clips one minute apart is the failure this exists for.

Posts per day

A cap the scheduling call is told about.

Window

Days ahead a post may be placed. Outstand itself accepts at most 30.

YouTube

Sent with the post as Outstand's youtube configuration. Only applied when the post actually reaches a YouTube account.

Privacy

What the video is when it lands. Unlisted is the safe way to test a real upload.

Category

YouTube's own category id.

Publish as a Short

A 9:16 clip under a minute is a Short. Off uploads it as a normal video.

Made for kids

YouTube requires an answer. Wrong here is a compliance problem, not a preference.

Send the written title as the video title

YouTube is the one platform with a real title field of its own. Off leaves the title as the first line of the description, the way every other platform reads it.

TikTok

Sent as Outstand's tiktok configuration.

Post mode

DIRECT_POST publishes straight away. MEDIA_UPLOAD puts it in the creator's inbox as a draft to finish by hand — which is what an app that has not passed TikTok's audit is limited to.

Privacy level

Required for a direct post, and it must be one the account actually offers — an unaudited app only gets SELF_ONLY. Unused for a draft.

Turn comments off

Per post, at publish time.

Instagram

Sent as Outstand's instagram configuration.

Publish as a Story

Off posts it as a Reel, which is what a 9:16 clip normally wants to be.

Reel cover frame

Milliseconds into the video to take the cover from. 0 leaves it to Instagram. A custom cover image is a per-post field, so it belongs on the post, not here.

Label as AI-generated

Meta's own disclosure flag. On when the clip actually is.

What Outstand accepts

Read live from HubApi, which validates every option against the same list before it sends. A platform with nothing listed takes no per-post configuration at all — its content and its media are the whole post.

04 / SCHEDULE

When it goes out and to which brand

A second Claude call places the whole batch at once. Spacing posts apart and spreading them over brands is a decision about the set — a model shown one post at a time would put all five at the best hour of the same day.

The call

In: every written post with its title and hashtags, every channel family with its category, tags and connected accounts, what is already booked, and the bounds from the Rules page. Out: one family and one New York time per post, with a sentence saying why. Anything that breaks a bound is moved in code afterwards.

Booked

Soonest first. Everything with a time on it.

What happened

One line per thing Posty did.

    05 / MANUAL MODE

    Do it yourself for one post

    Fully separate from the rest of Posty: a clip added here never touches the pipeline, never appears on the Source page, and is never named or placed by Claude. Drop a video in, write everything yourself, then send it.

    Add a clip

    Drop a vertical video here, or click to choose one.

    Drop a video here mp4, mov, webm or m4v · or click to choose

    06 / DEVELOPMENT

    Wired in or on its own

    Every agent in this ecosystem carries this page. It holds the switches that decide whether Posty is part of the pipeline or a closed loop you can safely run anything through, and the one combined log for everything the automatic pass does - it lives here and nowhere else.

    Log

    Intake, naming and scheduling, in order, since this process started. Manual mode keeps its own history per clip instead - see "How it is going" on that page.

    Sandbox

    Take work from other agents

    On: input/ is picked up on its own every minute, which is how Clipper's clips get here. Off: the folder is left alone and nothing moves unless you press Run now.

    Publish for real

    On: a post that comes due is sent to HubApi and goes out on real accounts. Off: it stays in the queue and says it was due. Off is the default — the switch that reaches an audience is the one you turn on deliberately, and turning it on sends what was already waiting.

    Public address

    HubApi — never Outstand directly — downloads each clip from here and relays it into Outstand's own storage before posting. POSTY_PUBLIC_URL in AFBITE/.env is the address it uses to reach this computer's archive/ folder. http://127.0.0.1:8200 is enough, since HubApi runs on this same machine — a public address (Tailscale Funnel or similar) only matters once it doesn't.

    Where things are

    input/what other agents drop off: one folder per run, one batch.json plus three files per clip sharing a stem.
    archive/where a registered clip lives afterwards, and what /media/… serves — including the previews on the Source page.
    posty.dbbatches, posts and the event log.
    HubApi :8100the account register, and the only way out to a platform.