Media Handling
Every platform wants something slightly different, and none of them tell you until they reject your post. We check your media against each platform's rules when you schedule, and convert what we can so you don't have to think about it.
Checked before scheduling, not at publish
This is the part that matters. Most tools accept whatever you give them and discover the problem when the post fires — usually overnight, usually silently. We validate at the moment you schedule: file type, dimensions, aspect ratio, duration, and byte size, against every platform the post is going to.
If something can't be published, you hear about it while you're still looking at the post, with a message that says which file and which platform.
What we convert for you
- Formats a platform won't take. TikTok rejects PNG, so PNGs become JPEG. Photos from an iPhone arrive as HEIC, which nothing accepts — we decode those too. SVGs are rasterized.
- Images that are too large. We resize toward each platform's preferred dimensions rather than rejecting an oversized source.
- Video in the wrong container. Most platforms want MP4; we transcode toward it.
One post going to several platforms can need different versions of the same file. We produce each one — you upload once.
What we can't rescue
Conversion can change a file's format and size. It cannot invent detail that isn't there, and it won't crop your image to fit an aspect ratio — that's an editorial decision, not a technical one. An image below a platform's minimum dimensions, or a video longer than it allows, is reported rather than silently mangled.
Each platform's exact limits are on its own page, generated from the same rules the checks use — so what's published there is what's enforced.
| Platform | Post types | Text limit | Images | Hashtags | Link | Privacy | Archiving | Posts to a |
|---|---|---|---|---|---|---|---|---|
| TikTok | Video, Image | 2,200 characters | 35 | Inline #hashtags | Not supported | ✅ | ✅ | — |
| Image, Video, Story | 2,200 characters | 10 | Inline #hashtags | Not supported | ✅ | ✅ | — | |
| YouTube | Video | 5,000 characters | — | Native tag field | Not supported | ✅ | ✅ | — |
| Text, Image, Video | 10,000 characters | 10 | Inline #hashtags | Varies by post type | ✅ | ✅ | Page | |
| Text, Image, Video, Article, Document, Poll | 3,000 characters | 9 | Inline #hashtags | Added to text | ✅ | — | — | |
| Image, Video | 500 characters | 1 | Inline #hashtags | Native field | — | ✅ | Board | |
| X | Text, Image, Video | no hard limit — long posts thread automatically | 4 | Inline #hashtags | Added to text | — | — | — |
| Bluesky | Text, Image, Video | no hard limit — long posts thread automatically | 4 | Inline #hashtags | Not supported | — | ✅ | — |
| Google Business | Text, Image | 1,500 characters | 10 | Not supported | Native field | — | — | Location |
Follow a platform for its full media specs: formats, dimensions, size caps, and video length.
Where your media is stored
Media is downloaded into our storage when you create the post, not when it publishes. If you paste a link to a file, that link only has to work at that moment — an expiring URL won't break a post scheduled for next month.
Where it works
The same checks and conversions run wherever a post is created — the app, the API, or an AI assistant over MCP. Uploading by URL accepts files up to 7 GB; uploading the bytes directly is capped at 100 MB, so a URL is worth preferring when you have one.