Skip to content
Shaflex

Hashtag checker for Threads, X, Bluesky, Mastodon and LinkedIn

Paste a post and see which #words turn into tag links on each network, which stay plain text, and why. Each network's reading comes from its own code or docs, so you can fix a tag before it goes out.

Runs in your browser. Your text and images never leave it.

Updated

Checked for each network as you type. Nothing you type leaves your browser.

Tags on each network

Nothing to check yet

Type a post with a #tag, or try the example, and each network's reading shows up here.

Which #words become links on each network

A # in front of a word doesn't make a tag everywhere. Each network has its own idea of where a tag starts and ends.

Which #words become tag links
NetworkA tag startsIt takesLeft as textRead from
ThreadsAfter a space, a bracket or a quote. Meta doesn't say, so that's our reading.Everything up to a space or one of . & @ ! ? , ; :Every tag after the first, and whole numbers like #1. A topic runs up to 50 characters.Meta's Threads API docs
XAfter anything but a letter, a digit or &Letters, digits, _ and a few marks some scripts use inside words, with at least one letterA tag inside a link, and a tag that runs straight into another # or ://twitter-text, X's open-source text library
BlueskyAt the start of a line, or after a spaceEverything up to a space, with at least one character that isn't a digit or punctuation. Punctuation at the end comes off.Tags over 64 charactersThe Bluesky app's code (@atproto/api)
MastodonAt the start of a line, or after a space, on 4.6 and newer. Servers on 4.5 or older also take one after punctuation.Letters, digits and _, with at least one letter. A middle dot (·, ・) can join words inside a tag.Numbers alone, and a middle dot at either endMastodon's source code
LinkedInAfter a space, as we read itOne word of letters and digits, as we read itLinkedIn doesn't sayLinkedIn's API docs, which leave “single word” undefined

X, Bluesky and Mastodon publish the code that finds tags, so the checker runs the same patterns. Threads describes its rule in its API docs. LinkedIn's docs say a tag is a # and a “single word” without defining one, so that row is our reading and the checker says so.

Threads uses one tag, and makes it the topic

If your Threads hashtags aren't working, this is usually why.

Meta's docs allow one topic tag per post, and the first valid tag in the text is the one used. Every #word after it stays plain text. A tag ends just before a space or any of . & @ ! ? , ; :, so #remote.work makes the topic “remote”. A # followed by a whole number, like #1, isn't a tag at all.

Topic tags run up to 50characters. A closing bracket isn't on Meta's list of characters that end a tag, so leave a space between a tag and a bracket after it. Apps that post through the API can also send the topic on its own, and Meta calls the tag in the text the older way, kept so existing posts still work.

Why a tag works on one network and not another

Most tags link everywhere. These are the ones that don't, and the fix for each.

  • Apostrophes, hyphens and dots. X, Mastodon and LinkedIn end a tag at any of them, so #don't links as #don and #self-hosted as #self. Bluesky keeps going to the next space, and Threads stops only at a dot. Write #SelfHosted instead.
  • Brackets and punctuation before the #. X links (#tag). Bluesky, LinkedIn and Mastodon 4.6 and newer need a space or a line break before the #, so there it stays plain text. Servers still on Mastodon 4.5 or older link it too, so on Mastodon it depends on the server.
  • Numbers alone. #2026isn't a tag on X, Bluesky, Mastodon or Threads. Add a word: #100DaysOfCode links everywhere.
  • Two tags with no space between. #launch#day is one tag on Bluesky and Threads, links as #launchon Mastodon and isn't a tag on X at all. Put a space between them.
  • A # inside a link. The part after # in example.com/#notesbelongs to the link, so it isn't a tag anywhere.

Write tags people and screen readers can read

A tag that links is only half of it. It also has to make sense when someone reads it or hears it.

  • Use camel case. Capitalise the first letter of each word, as in #SocialMediaTips. Accessibility guides advise it so a screen reader says each word instead of running them together. It doesn't split the tag: Mastodon files #SocialMediaTips and #socialmediatips under the same tag, because it lowercases tag names.
  • Put a space before every tag. Bluesky, Mastodon and LinkedIn need one, and every network takes a tag that has one.
  • On Threads, lead with the tag you want as the topic. Only the first valid tag counts, so put it first.
  • Keep tags out of alt text.They don't link there, and a screen reader reads them out as part of the description. The alt text counter flags them.

Does Shaflex set the Threads topic for me?

Yes. In Shaflex the first #tag in your draft becomes the Threads topic, marked Auto, and you can pick a different topic before the post goes out. The same draft goes to Threads, X, Bluesky, Mastodon and LinkedIn, each copy fitted to its limit.

Questions

Why aren't my hashtags working on Threads?

Threads uses one tag per post, the first valid one, and makes it the post's topic. The other #words stay plain text. A tag ends before a space or any of . & @ ! ? , ; : and runs up to 50 characters, and a whole number like #1 isn't a tag.

Why isn't my hashtag working on Bluesky?

Bluesky only starts a tag at the start of a line or after a space, so (#tag) or word#tag stays text. The tag needs at least one character that isn't a digit or punctuation, punctuation at its end is dropped, and tags over 64 characters aren't linked.

Can I use more than one hashtag on Mastodon?

Yes, as many as you like, and each one links. Since Mastodon 4.6 a tag needs a space or a line break before the #. Mastodon lowercases tag names, so #BuildInPublic and #buildinpublic are the same tag and camel case costs you nothing.

How many hashtags can I use on X?

X's own text library links every valid tag, with no cap on how many. Each one counts toward the 280 characters like the rest of the post.

Should I write hashtags in camel case?

Yes, for tags of more than one word. #SocialMediaTips lets a screen reader say each word, where #socialmediatips runs them together. Mastodon files both under the same tag, so you lose nothing there.

Do hashtags work on LinkedIn?

Yes. Type # and a word, and LinkedIn makes it a hashtag. LinkedIn doesn't publish exactly where a tag ends: its docs call it a single word, so this checker reads it as letters and digits after a space, and says so.

Is my text saved or sent anywhere?

No. It's checked in your browser, and your post isn't stored or sent.

Write the post once. Post it everywhere.

In Shaflex your first #tag becomes the Threads topic, and one draft goes out to every network you've connected, on the schedule you set.

Free plan, no card needed.