Guides

Every checker on CharLimit.net does one thing: it counts a draft against a limit and shows what is left. The counting is easy to state and harder to trust, because a platform's composer can show a different number for reasons that are not arithmetic — X prices a link at a fixed length, an SMS message changes alphabet on a single character, Instagram folds a caption long before its cap. The checkers count; these guides explain what is counted, which platform behaviors the checker only describes, and why every cap here carries a date.

The framing is the methodology page's. Code-point counting and GSM 03.38 segmentation run in the engine and are stated without hedging. Platform caps are product decisions, stated as of mid-2026 and updated when a platform changes one. Quirks that would require guessing at server-side behavior are described, not modeled, with the direction they skew. Every count, remaining figure and segment figure below is computed at build time by the checkers' own engine on short original strings; the caps are the licensed figures stated as of mid-2026.

Counting

Counting characters in code points

The unit is the Unicode code point: a precomposed é is one, a CJK character is one, and an emoji like 🎉 is one even though JavaScript stores it in 2 UTF-16 units. The limit checker reports 1 code point for it; the SMS engine, which counts UTF-16 units once a message is in UCS-2, reports 2. Joined sequences are the known wrinkle: the family emoji 👨‍👩‍👧 is one visible glyph that the checker reports as 5 code points, because the invisible joiners are code points too. The guide covers precomposed versus combining accents, modifiers and joiners, and the engine's input ceiling.

SMS segments and GSM-7, explained

SMS is not a cap but an alphabet walk. The engine checks every character against GSM 03.38: basic-set characters cost one septet, the extended set (€ [ ] { } ~ ^ \ |) costs two, and the first character outside both sets flips the whole message to UCS-2, counted in UTF-16 units. "Running late. I'll take the usual." is GSM-7: 34 septets, 1 segment, 126 to spare in a 160-unit budget. Swap the straight apostrophe for the curly one pasted from a word processor — "Running late. I’ll take the usual." — and the engine reports UCS-2: 34 units against a budget of 70, with 36 to spare. Same message, less than half the room, nothing visible changed. The guide works the full arithmetic on original messages — 160 and 153, 70 and 67, the single-segment boundary, the cost of one emoji — and names what is not modeled: national-language shift tables and carrier-side transcoding.

Platforms

X's weighted counting, explained

The X checker counts code points against 280 — the standard limit as of mid-2026, doubled from 140 in 2017, with paying subscribers able to post far longer. X's own meter weighs differently: per X's developer documentation as of mid-2026, every URL is fixed at 23, and emoji and CJK characters are weighted 2. That weighting is described here, not modeled. The guide explains how to read the checker's count in each direction: the link https://charlimit.net/guides/x-weighted-counting-explained/ costs 59 code points here but a flat 23 on X, so the checker reads pessimistic on drafts whose links run longer than 23 code points, optimistic on drafts whose links run shorter, and optimistic on emoji-heavy drafts. It also says where the composer should take over, and why no paid-tier figure is stated.

Platform limits as of mid-2026

One table of every cap the site checks — 280 for an X post, 2,200 for an Instagram caption, 100 for a YouTube title and ~160 for a meta description, each stated as of mid-2026, because platform caps are product decisions, not standards — alongside the SMS budgets of 160/153 septets or 70/67 UTF-16 units, which follow the GSM 03.38 standard and carry no date. GSM 03.38 is stable; the others move, and when a platform changes a limit the page copy and the preset are updated. The guide maps each preset to its checker page, explains the tilde on ~160, and lists what the site refuses to guess: no other platforms, no figure it cannot stand behind on a date.

Truncation and folds: what the checker cannot see

A limit is where a platform stops accepting text; a fold is where it stops showing it. Instagram's ~125-character feed fold (as of mid-2026), YouTube's device-dependent title truncation and Google's pixel-width snippet cut are described as the methodology page describes them, never simulated, because each depends on rendering the site cannot observe. All three skew the same way: a draft can pass its cap and still lose its ending. The guide states which way each one pulls, and why the checker's count is only a bound in a known direction, not a measure of what stays visible.

Doctrine

Modeled versus described

The line between the two runs through everything above. Modeled: code-point counts against each platform's published cap, and the full GSM-7/UCS-2 segmentation. Described, not modeled: X's weighting, Instagram's fold, YouTube's truncation and Google's snippet cut — each stated with the direction it skews and never simulated, because that would mean guessing at server-side behavior nobody outside can verify. The guide sets out how to read a borderline draft under that doctrine: when the count here is the answer, when it is a bound in a known direction, and when only the platform's own composer can settle it. Read it first when a number here and a number there disagree.

From the guides to the checkers

Each checker links to the guide behind its number: the limit checker, the X/Twitter counter, the Instagram caption counter, the SMS counter, the YouTube title counter and the meta description checker. The methodology page states every rule in one place, including the pinned test cases every build must pass; the about page explains why the site is built around limits rather than totals, and who it is for.

Every count, remaining figure and segment figure on this page is computed at build time by the same engine the checkers run; the platform caps are the licensed figures, stated as of mid-2026 and updated when a platform changes one. Nothing you type is transmitted or stored. See the methodology page.