Elm Street, you are getting a bakery. Our second shop opens this Saturday at 8 am. Sourdough and rye, nothing else, and no croissants yet. Which loaf are you buying first?
173 of 2,200, counted in Unicode code points
A caption generator drafts the words that go under your photo, video or link. This one writes two versions for each network you pick, in your voice if you give it your website, and counts every draft against that network’s limit.
By Tayyab, Founder
Updated . Limits and counting rules are read from the code our publisher checks every post against.
Two drafts for each network appear here
Each is editable, counted the way its network counts, and flagged in red if it is over the limit.
Elm Street, you are getting a bakery. Our second shop opens this Saturday at 8 am. Sourdough and rye, nothing else, and no croissants yet. Which loaf are you buying first?
173 of 2,2002,027 leftcounted in Unicode code points
Type the facts: what, when, where, and a number if you have one. The writer uses only what you give it and writes around anything missing.
Paste your website address and the writer reads that one page and sums up your tone in a line you can edit. Or type your own line. Nothing is stored.
Each draft is shaped for its network and counted the way that network counts, so X links and emoji, Threads bytes and Bluesky graphemes are all handled.
Every draft is editable and the meter follows your changes. Red means over the limit and says by how much. Copy the one you want.
These are the limits Content Drifter's publisher refuses to exceed, counted the way each network counts, so the number under a draft is the number the app enforces. The limit is not where your caption is cut off: Instagram and LinkedIn hide the rest behind “more”, so the first line has to carry the point. We measured those two cut-offs in the live apps on 7 August 2026. The last column is the length the writer aims for, which stays well inside the limit. The character counter explains each way of counting.
| Network | Limit | Counted as | Shown before “more” | We aim for |
|---|---|---|---|---|
| 2,200 | Unicode code points | 125 characters | 140 to 320 characters | |
| 3,000 | Unicode code points | 140 on a phone, 210 on desktop | 500 to 1,100 characters | |
| X | 280 | X weighting | Not measured | up to 250 characters |
| TikTok | 2,200 | Unicode code points | Not measured | 60 to 150 characters |
| 63,206 | Unicode code points | Not measured | 80 to 250 characters | |
| Threads | 500 | UTF-8 bytes | Not measured | 100 to 300 characters |
| YouTube | 5,000 | Unicode code points | Not measured | 150 to 500 characters |
| 800 | Unicode code points | Not measured | 100 to 230 characters | |
| Bluesky | 300 | Graphemes | Not measured | 100 to 260 characters |
These examples are written by us for this page. They are not output from the tool and the bakery is invented. They show the shape the tool aims for: the same facts, a different post for each network, and nothing in a draft that was not in the box.
Our neighbourhood bakery opens a second shop on Elm Street this Saturday at 8 am. We bake sourdough and rye only. No croissants yet.
Elm Street, you are getting a bakery. Our second shop opens this Saturday at 8 am. Sourdough and rye, nothing else, and no croissants yet. Which loaf are you buying first?
173 of 2,200, counted in Unicode code points
Our neighbourhood bakery opens a second shop on Elm Street this Saturday at 8 am. We still bake sourdough and rye only. No croissants yet. If you are nearby on Saturday, come and say hello. What would you want from a bakery that only does bread?
247 of 3,000, counted in Unicode code points
Our second shop opens on Elm Street this Saturday at 8 am. Sourdough and rye only. No croissants yet.
101 of 280, counted by X’s weighting
Give the writer your website and it sums up your tone in one line you can edit. The line is what steers the draft, so changing it changes the post. Here are the Instagram facts above in two voices.
Voice
ExampleDry and specific. Short sentences. Never an exclamation mark.
Second shop opens Saturday. Elm Street, 8 am. Same sourdough. Same rye. No croissants yet.
Voice
ExampleWarm and chatty, like a message to a friend.
We have a second home! This Saturday at 8 am the Elm Street shop opens its doors. Sourdough and rye, as always, and no croissants yet. Come and say hello.
These are rules the writer is given and the page checks again after it answers.
If you add a website address, the writer reads that one page: its title, its description and the start of its visible text. It sums up how the page sounds in one line, for example “dry and specific, short sentences”, and writes in that voice. You can edit the line and write again, and a rewrite reads nothing at all.
The page is fetched through the same guarded reader our other tools use. It checks where the address really points, refuses private addresses, follows only a few redirects and stops after a few seconds. The address and the text it reads are used for that one request and are neither stored nor logged. If the page cannot be read, you are told, and the drafts use a plain voice.
Each of these writes for one network, with that network’s habits in mind. They hand off to this page, which holds the limits for all nine.
Every limit above comes from our own code. These are the outside sources behind the rest.
Type what the post is about, pick up to four networks and press Write captions. You get two drafts for each network, edit them in place and copy the one you like. Add your website address and the writer reads one page to pick up your tone.
Yes, it is free and needs no account. Because every run calls a language model, each visitor gets 8 runs a day. Sign up free to the workspace if you want more, or a voice and a Brand Kit it remembers.
Instagram and TikTok take 2,200 characters, LinkedIn 3,000, X 280, Facebook 63,206, Threads 500, YouTube 5,000, Pinterest 800 and Bluesky 300. Each network counts differently: X weights links and emoji, Threads counts bytes and Bluesky counts graphemes, so every draft is counted the way its own network counts it, and flagged in red if it is over.
Instagram’s feed shows about 125 characters before “more”, so the first line has to work on its own. LinkedIn cuts a post at about 140 characters on a phone and 210 on desktop. We measured both in the live apps, and the writer aims its first line at that cut.
It is told to use only what you type and what your website says, and to write around anything missing. It can still slip, so read every line before you post. The facts in a draft are yours to check, and a thin brief gets a short draft rather than an invented one.
It reads that one page once, takes the title, the description and the visible text, and sums up your tone in one line you can edit. We do not store the address or the text, and a rewrite with your edited line reads nothing at all.
Only if you want them, and few: Instagram says a caption takes up to 5. Tick “Add a few hashtags” to get them at the end of each draft, or use the hashtag generator for a full set for each network.
This page writes drafts for one post at a time and keeps nothing. Post Studio in the workspace writes from your saved Brand Kit and voice, keeps every draft, plans a month and publishes to the networks you connect.
Post Studio in the workspace writes from your saved Brand Kit and voice, keeps every draft, and publishes to the networks you connect. The free plan needs no card.
Start for $0Free forever plan, no credit card. Every network is included.