The pipeline
From a single prompt to native cuts for every feed—gated by a human.
You give PrintAIr a one-line prompt. It produces a brief, a master image, platform-native rewrites for every connected channel, and parks them in your approval queue. You ship, revise, or decline. That's the whole flow — but every step has decisions baked in.
How it works
From a single prompt to native cuts for every feed—gated by a human.
Prompt
One line about what you want to say. Add brand-voice context once and PrintAIr remembers.
Variants
AI drafts a brief, generates a master image, and rewrites the post for every connected platform in parallel.
Approve & ship
Approve from the web or your Telegram DMs. Every approved variant publishes to its native API.
01 · The brief
The LLM extracts the structured intent before it writes a word.
When you submit a prompt, the brief generator (running on your selected LLM via Wiro AI) extracts a structured object: title, angle, voice, cta, and a hand-tuned imagePrompt. Your brand kit (color, voice anchors, mascot) is threaded into the prompt so the brief inherits your tone without you re-typing it. Briefs are reused across generations on the same post — refinements rewrite single variants without losing the shared anchor.
02 · Per-platform rewriting
Each platform gets its own rewrite — same brief, different shape.
X gets 280 characters. Bluesky gets 300. LinkedIn gets a longer paragraph with a thoughtful hook. Discord and Slack get webhook-friendly markdown. The rewriter runs in parallel — one Wiro task per platform — so a thirteen-platform post finishes in roughly the time of the slowest single rewrite. Each variant carries the platform's character limit, voice conventions, and emoji norms. You can refine any variant individually after generation: tell the rewriter "shorter" or "less corporate" and only that one updates.
03 · Master image, native cuts
One image is generated, then cropped to each platform's aspect ratio.
Bluesky and X want 16:9. Instagram Feed wants 1:1. Reels, Stories, and TikTok want 9:16. LinkedIn wants 1.91:1. PrintAIr generates one master image (via your selected image model) and the variant builder maps it to each platform's expected aspect ratio. If you have an active mascot, its character description is prepended to the image prompt so every post carries your visual identity automatically. Video is the same story — one master clip, native trims for the surfaces that accept video.
04 · Two approval surfaces
Approve from the dashboard or your Telegram DMs — same source of truth.
Once variants are ready, the post enters awaiting_approval. The dashboard shows pixel-perfect previews of each variant — the exact post your audience will see. Hit Approve, Revise, or Decline. Or, if you've linked Telegram, the bot DMs you the same options. Whichever surface you use, the underlying state flips in Postgres, the worker fans out to every connected publisher, and the post ships.
Approval queue
One queue. Two surfaces.
Approve from the dashboard if you're at your desk. Approve from Telegram if you're on the move. Either way, the post ships from the same source of truth.
Announce our spring drop — confident but not corporate.
web · /posts/[id]
🆕 Draft ready
Announce our spring drop — confident but not corporate.
telegram · long-poll
05 · Failure modes
A failed variant doesn't fail the post — partial publishes are okay.
If LinkedIn's API rate-limits you, that variant fails — but Bluesky, Mastodon, Telegram, and the rest still publish. Failed variants get their own status, error message, and a retry button on the post detail page. The post itself is marked failed only when every variant failed. Retries re-enqueue a publish job for just the failed ones, no re-generation needed.
06 · Workflows
Schedule a tick. Watch a competitor. Auto-draft. You still approve.
Workflows automate the prompt step. Set up Rival Pulse to watch competitor handles and draft a counter-post when they publish; or write a custom prompt template that fires every Monday at 9am. The output always lands in the same approval queue — automation drafts, humans decide. See Automations for the full template list.