Logo

MonoCalc

/

Hashtag CamelCase Formatter

Social Media
Why capitalise a hashtag at all
Tag matching is case-insensitive, so #onebigstring and #OneBigString reach the same feed. The difference is that a screen reader can find the words in one of them. That is the reason to do this; no effect on reach, impressions or ranking is claimed anywhere here.
Type the words with spaces between them — the spaces are how the tool knows where each word starts. Hyphens, slashes and punctuation work as boundaries too.

Type a phrase to build a tag

Every word gets a capital, the separators are removed, and you see the finished tag with the word boundaries a screen reader can work with. Nothing you type leaves your browser.

Settings

Both are fine — this is a style preference, not a rule. #OneBigString
Standard Latin casing. i becomes I.

Off by default, because an acronym you type in capitals is preserved either way: NASA images gives #NASAImages with this switch off. Turn it on to have nasa images capitalised too. Entries match whole words only, and each one is removable.

About This Tool

Hashtag CamelCase Formatter – Capitalise the Words So They Can Be Heard

#onebigunbrokenstring and #OneBigUnbrokenString are the same hashtag to every platform: tag matching is case-insensitive, so both open the same feed and both count as the same tag. They are not the same to a screen reader. An unsegmented lowercase run carries no word boundaries, so a reader announces it as one unintelligible token — or spells it out character by character, depending on the reader and its built-in dictionary. The capitalised form hands the reader the boundaries it needs. That is the entire reason this hashtag camelcase formatter exists, and it is enough on its own: capitalising the words of a hashtag is an accessibility fix, not a growth tactic. Nothing here claims an effect on reach, impressions or ranking.

You type the words — the tool never guesses where they are

Type social media marketing and you get #SocialMediaMarketing, or #socialMediaMarketing if you prefer camelCase. The spaces are how the tool knows where each word starts, and that is deliberate: splitting an already-joined run back into words requires a dictionary, and no heuristic does it safely. expertsexchange, therapistfinder and nowhere are the standard demonstrations of what a guessing splitter produces. So rather than ship a feature that is confidently wrong some of the time, this tool asks you for the words.

The boundary strip fixes a pasted tag without retyping it

If you already have #Instagramreels sitting in a caption, paste it in and use the boundary strip: the joined tag is drawn one character per cell with a clickable gutter between every pair, and clicking a gutter inserts or removes a word boundary. The tag re-cases instantly. Boundaries are stored as grapheme indices rather than character offsets, which is what keeps an emoji, a flag or an accented letter whole no matter where you click.

See the difference you are actually making

The announcement comparison stacks two rows: the lowercase tag as one unbroken block, and the same tag with each word in its own chip. It illustrates the word segmentation a reader has to work with — it is not a recording of any particular screen reader, and behaviour differs between readers, versions and their dictionaries.

Acronyms, digits and the characters that get dropped

An acronym you type in capitals is preserved verbatim, so NASA images gives #NASAImages while nasa images gives #NasaImages. An optional word list can uppercase acronyms typed in lowercase; it is off by default and every entry is a chip you can remove. A digit run has no case and is left alone — top10 stays one word, top 10 is two. Apostrophes are removed without breaking a word apart, so don't becomes Dont. An ampersand is dropped rather than expanded, because turning & into and would be putting a word in your mouth — you are told it happened. Emoji are dropped whole, since a tag terminates at the first one.

Unicode is handled properly, not approximately
Case conversion is locale-aware and pinned to the language you choose, so Turkish istanbul becomes İstanbul rather than Istanbul. Scripts with no letter case — Japanese, Chinese, Korean, Arabic, Hebrew, Devanagari, Thai — are joined unchanged, and the tool says so on screen instead of silently doing nothing.

What this tool will not do

It does not pull tags out of a pasted post; that is the Hashtag Extractor, and you get a pointer to it if what you paste looks like a whole caption. It leaves @handles alone. It shows no trending or volume data, because there is no source for it that could be read without guessing, and it publishes no maximum tag length or per-post tag cap, because none could be sourced — the one length warning is this tool's own readability threshold and says so. Batch mode takes one phrase per line and exports to CSV with spreadsheet formula characters neutralised. No text you type ever leaves your browser.

Frequently Asked Questions

Is the Hashtag CamelCase Formatter free?

Yes, Hashtag CamelCase Formatter is totally free :)

Can I use the Hashtag CamelCase Formatter offline?

Yes, you can install the webapp as PWA.

Is it safe to use Hashtag CamelCase Formatter?

Yes, any data related to Hashtag CamelCase Formatter only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does this hashtag formatter work?

You type the words of the tag separated by spaces and the tool joins them with each word capitalised. Under the hood the phrase is cut into grapheme clusters with Intl.Segmenter, so an emoji, a flag or an accented letter is never split down the middle; separators such as spaces, hyphens, slashes and punctuation are removed and remembered as word boundaries; then each word is cased with a locale-aware conversion pinned to the language you pick. Which characters may sit in the finished tag comes from the same grammar the Hashtag Extractor uses, so the two tools always agree on what a tag is. Everything happens in your browser and the page makes no network request of any kind.

Does capitalising a hashtag get me more reach?

No claim of that sort is made here, because there is no authoritative source for one. Hashtag matching is case-insensitive on every major platform, so #onebigstring and #OneBigString are the same tag and land on the same feed. The reason to capitalise is accessibility: an unbroken lowercase run gives a screen reader no word boundaries, so it is announced as a single unintelligible token or spelled out character by character, while the capitalised form lets the reader announce the words. That is a real difference for real readers, and it is reason enough on its own.

Why do I have to type spaces between the words?

Because recovering word boundaries from an already-joined run needs a dictionary, and this tool ships without one. No heuristic can split socialmediamarketing reliably — expertsexchange, therapistfinder and nowhere are the standard demonstrations of what goes wrong — so rather than guess and be confidently wrong, the tool asks you where the words are. If you have already pasted a joined tag you do not need to retype it: the boundary strip under the input has a clickable gutter between every character, so you can place the boundaries by hand and watch the tag re-case as you go.

Should I use PascalCase or camelCase?

Either. PascalCase capitalises every word (#OneBigString) and camelCase leaves the first word lowercase (#oneBigString); both give a reader exactly the same word boundaries, so this is a style preference rather than a rule. PascalCase is the more common convention, which is why it is the default, and your choice is remembered in your browser. One thing worth seeing rather than being surprised by: under camelCase a leading acronym is lowercased whole, so API design becomes #apiDesign.

How are acronyms like NASA or API handled?

An acronym you type in capitals is always preserved exactly as typed, with no list involved: NASA images gives #NASAImages, while nasa images gives #NasaImages. A small optional word list (NASA, NFL, NBA, API, UI, UX, AI, CEO, DIY, ASMR, USA, UK, EU) can also uppercase acronyms you typed in lowercase — it is off by default, it matches whole words only, and each entry shows as a chip you can remove when it catches a word you meant literally.

Why is my Japanese, Arabic or Hindi tag left unchanged?

Because those scripts have no upper and lower case at all, so there is nothing to camel-case. Applying a case conversion to them would either do nothing or mangle the text, so the tool detects the script, joins the words exactly as you typed them, and tells you why on screen instead of silently doing nothing. Mixed input is handled the same way per word: Latin, Greek and Cyrillic words are cased and the caseless ones are left alone. The locale you pick matters too — in Turkish and Azerbaijani, i uppercases to İ rather than I, which is why the language selector exists.