postfast

Features — Publish Guard

Publish Guard

One pass over a composed post that says what will go wrong on every network it is aimed at — before it is scheduled, not at the minute it fires.

The failure that always happens at the worst time

A post that breaks one network’s rule usually breaks it silently. The copy is fine everywhere else, the schedule looks healthy, and the problem surfaces at the moment the post was supposed to go out — which is, by definition, the moment you are not watching.

Publish Guard moves that moment forward. It takes the composed post, the thread replies, the media, the schedule time, and every network you selected, and returns every problem it can prove, worst first. The composer renders those findings; the API refuses the ones that block. Same rules, one implementation, so the two can never disagree.

Two severities, and the difference matters

A checker that refuses everything it is unsure about is a checker people learn to route around. So the guard separates what it knows from what it suspects.

  • Block. This will be rejected. The composer refuses to schedule it and the publisher refuses to send it — an Instagram target with no media, a thread aimed at a network with no self-reply, a post with no body, a post with no targets at all.
  • Warn. This may be rejected. Character counts are the only soft rule, and deliberately so: X weights links and CJK characters, Bluesky counts graphemes, and a count three over may well publish. Refusing it would be a guess overruling the person who wrote the post.

What it checks

Character limits, per network

Counted against the tightest limit among the networks you actually selected, and named per network so you know which one is the problem.

Missing media

Instagram publishes media with a caption, never a caption alone. An Instagram target with nothing attached is blocked at compose time.

Unsupported threads

Instagram, Facebook and LinkedIn have no self-reply. A thread aimed at them is blocked rather than published as its first part alone.

Too much attached

More media items than a network takes on one post, or more thread replies than it allows.

An empty part

A thread reply left blank, which the API would refuse anyway — caught here instead of at submit.

A schedule that is too soon

Where a network requires the post handed over some time ahead of publication, the guard knows the lead time and checks it.

It costs nothing and it never guesses

Every rule reads the same capability table the publisher builds payloads from, and none of them name a platform. That is what makes a new network cost nothing here — it arrives with the descriptor entry it cannot be added without, and every rule already applies to it. Instagram and Facebook were the proof: both are covered by rules written before either existed.

The guard runs locally, deterministically, in a fraction of a millisecond. There is no model behind it and no service to call, which is also why the same checker can run as a free tool on this website with nothing to sign up for.

Common questions

Can I try Publish Guard without an account?
Yes. The same checker runs as a free tool on this site — paste a post, pick the networks, and see exactly what postfast’s composer would say.
Does Publish Guard stop me from posting something?
Only when it can prove the network will reject it. Everything uncertain — character counts near a limit, above all — is a warning you can schedule straight past.
Does adding a new network mean new rules?
No. The rules are written against a capability table rather than against platform names, so a network arrives already covered by every rule that applies to it.

Built, running, and not yet open

postfast is pre-launch. Join the waitlist and you will hear from us when early access opens.