I mentioned recently, buried in a post about UI changes, that Twitter’s latest earnings report included this bombshell:

We are going to fix the broken windows and confusing parts, like the .@name syntax and @reply rules, that we know inhibit usage and drive people away

There’s an interesting problem here. UI is hard. You can’t just slap a button on the screen for every feature that could conceivably be used at any given time. Some features are only of interest to so-called “power users”, so they’re left subtle, spread by word-of-mouth. Some features you try to make invisible and heuristic. Some features are added just to solve one influential user’s problem. Some features are, ah, accidental.

A sufficiently mature, popular, and interesting product thus tends to accumulate a small pile of hidden features, sometimes not documented or even officially acknowledged. I’d say this is actually a good thing! Using something for a while should absolutely reward you with a new trick every so often — that below-the-surface knowledge makes you feel involved with the thing you’re using and makes it feel deeper overall.

The hard part is striking a balance. On one end of the spectrum you have tools like Notepad, where the only easter egg is that pressing F5 inserts the current time. On the other end you have tools like vim, which consist exclusively of easter eggs.

One of Twitter’s problems is that it’s tilted a little too far towards the vim end of the scale. It looks like a dead-simple service, but those humble 140 characters have been crammed full of features over the years, and the ways they interact aren’t always obvious. There are rules, and the rules generally make sense once you know them, but it’s also really easy to overlook them.

Here, then, is a list of all the non-obvious things about Twitter that I know. Consider it both a reference for people who aren’t up to their eyeballs in Twitter, and an example of how these hidden features can pile up. I’m also throwing in a couple notes on etiquette, because I think that’s strongly informed by the shape of the platform.

You cannot use astral plane characters (which includes most emoji) in your display name or bio; they will be silently stripped. However, you can use anything from the Miscellaneous Symbols or Dingbats blocks, and many of these characters are rendered with color glyphs on Web Twitter. Results may vary on phones and in other clients.

Accounts managed by multiple people, such as support accounts or politicians’ accounts, sometimes sign tweets with a ^ followed by the author’s initials. This has no special significance to Twitter.

For the sake of its SMS-based roots, Twitter supports performing several commands by typing them in a tweet. In particular, if you start a tweet with the word d or m or dm , the second word will be treated as a username, and the rest of the tweet will be DM’d to that user. Tweeting “dm me if you…” will instead DM if you... to user @me .

In official clients, links are shown unmangled, but without the protocol and truncated to about 20 characters. The link to this article, for example, shows as eev.ee/blog/2016/02/2… . However, at least on Web Twitter, copy-pasting preserves the link in full, including protocol.

Anything remotely resembling a link will be mangled into some http://t.co/asdf link-shortened garbage. In some cases, such as when talking about a domain name, this can make the tweet longer. You can defeat this by sticking an invisible character, such as U+200D ZERO WIDTH JOINER, around the final dot so it no longer looks like a domain name.

In the middle of a tweet, strings of whitespace (e.g. multiple spaces) are preserved. However, more than two consecutive newlines will be reduced to only two.

Tweets may contain newlines, and there doesn’t seem to be any limit to how many.

A tweet can “mention” other users, which just means including their @handle somewhere in the tweet. This will notify every mentioned user of the tweet.

You can reply to tweets, which threads them together. A tweet can only have one parent (or no parent), but any number of replies. Everything on Twitter is thus arranged into a number of trees, where the root of the tree is a new tweet not responding to anything, and replies branch out from there.

A tweet that begins with a mention — that is, the very first character is @ and it’s immediately followed by an extant username — won’t appear on your profile on Web Twitter. It’ll still appear on the “with replies” page. It’ll also appear on your profile on Android Twitter, which doesn’t separate replies from not.

A “mention” can only be an existing username. If “foo” is not the name of a user, then @foo is not a mention, and none of the rules for mentions apply.

A tweet that begins with a mention won’t appear on the timelines of anyone who follows you, unless they also follow the first person you mention. That is, if you tweet @foo @bar heya , it’ll only appear on the timelines of people who follow both you and @foo .

If you put some other character before the first @ , the previous rule no longer applies, and your tweet will appear to all your followers. So .@foo @bar heya will be visible to everyone (and show on your Web profile). This is called “dot-replying”. The dot isn’t actually special; it’s just an easy-to-type and unobtrusive character. I like to use → or \ . Some people prefer to put the mentions at the end instead, producing heya @foo @bar . Dot-replying in the middle of a tweet is not strictly necessary, but sometimes it’s useful for disambiguation. If you’re replying to @foo , and want to say something about @bar , it would come out as @foo @bar is pretty great , which is a little difficult to read. Adding a dot to make @foo .@bar doesn’t do anything as far as Twitter is concerned, but can make it clear that @bar is the subject of a sentence rather than a person being talked to.

One last visibility wrinkle: if a tweet appears in your timeline because it begins with a mention of someone you follow, the tweet it replies to will also appear, even if it wouldn’t have on its own. Consider three users: A, B, and C. You follow B and C, but not A. User A makes a tweet, and B replies to it ( @A cool! ). Neither tweet will appear on your timeline — A’s won’t because you don’t follow A, and B’s won’t because it begins with a mention of someone you don’t follow. Then C replies to B’s tweet, which puts the mention of B first (see below). Both B’s and C’s tweets will now appear on your timeline — C’s appears because it begins with a mention of someone you do follow, and B’s appears for context. In other words, even if a tweet doesn’t appear on your timeline initially, it may show up later due to the actions of a third party.

A reply must, somewhere, mention the author of the tweet it’s replying to. If you reply to a tweet and delete the author’s @handle , it’ll become a new top-level tweet rather than a reply. You can see this in some clients, like Android Twitter: there’s “replying to (display name)” text indicating it’s a reply, and that text disappears if you delete the @handle .

There is one exception to the previous rule: if you’re replying to yourself, you don’t have to include your own @handle , even though clients include it by default. (If you’re replying to a tweet of your own that already begins with some mentions, those will be prepopulated, rather than your own @handle .) So if you want to say something that spans multiple tweets, you can just keep replying to yourself and deleting the @handle . (This is sometimes called a “tweetstorm”.) It’s a really good idea to do this whenever you’re making multiple tweets about something. Otherwise, someone who stumbles upon one of the tweets later will have no idea what the context was, and won’t be able to find it without scrolling back however long on your profile. If you reply to yourself but leave your @handle at the beginning, the first tweet will appear on your profile, but the others won’t, because they start with a mention. On the other hand, letting the entire tweetstorm appear on your profile can be slightly confusing — the individual tweets will appear in reverse order, because tweets don’t appear threaded on profiles. On Web Twitter, at least, the followups will have a “view conversation” link that hints that they’re replies. Either way, the replies will still appear on your followers’ timelines. Even if the replies begin with your @handle , they still begin with a mention of someone your followers all follow: you! I’m told that many third-party clients don’t support replying to yourself without your handle included, and the API documentation doesn’t mention that it’s a feature. But I’m also told that only first-party clients require you to mention someone in a reply in order to thread, and that third-party clients will merrily thread anything to anything. (I remember when Web Twitter allowed that, so I totally believe the API still does.) If you don’t use the official clients, I guess give it a whirl and see what happens.

The previous rule also applies when making longer replies to someone else. Reply to them once, then reply to yourself with the next tweet (and remove your own @handle ). You’ll end up with three tweets all threaded together. This is even more important, because Twitter shows the replies to a single tweet in a somewhat arbitrary order, bubbling “important” ones to the top. If you write a very long response and break it across three tweets, all replying to the same original tweet, they’ll probably show as an incoherent jumble to anyone reading the thread. If you make each tweet a reply to the previous one, they’re guaranteed to stay in order.

Replying to a tweet will also prefill the @handle of anyone mentioned in the tweet. Replying to a retweet will additionally prefill the @handle of the person who retweeted it. The original author’s @handle always appears first. In some cases, it’s polite to remove some of these; you only need the original author’s @handle to make a reply. (It’s not uncommon to accumulate multiple mentions, then end up in an extended conversation with only one other person, while constantly notifying several third parties. Or you may want to remove the @handle of a locked account that retweeted a public account, to protect their privacy.)

Prefilling @handle s is done client-side, so some clients have slightly different behavior. In particular, I’ve seen a few people who reply to their own reply to someone else (in order to thread a longer thought), and end up with their own @handle at the beginning of the second reply! You probably don’t want that, because now the second reply begins with a mention of someone all of your followers follow — yourself! — and so both tweets will appear on your followers’ timelines.

In official clients (Web and Android, at least), long threads of tweets are collapsed on your timeline. Only the first tweet and the last two tweets are visible. If you have a lot to say about something, it’s a good idea to put the important bits in one of those three tweets where your followers will actually see them. This is another reason it’s polite to thread your tweets together — it saves people from having their timelines flooded by your tweetstorm. Sometimes, it’s possible to see multiple “branches” of the same conversation on your timeline. For example, if A makes a few tweets, and B and C both reply, and you follow all three of them, then you’ll see B’s replies and C’s replies separately. Clients don’t handle this particularly well and it can become a bit of a clusterfuck, with the same root tweet appearing multiple times.

Because official clients treat a thread as a single unit, you can effectively “bump” your own tweet by replying to it. Your reply is new, so it’ll appear on your followers’ timelines; but the client will also include the first tweet in the thread as context, regardless of its age.

When viewing a single tweet, official clients may not show the replies in chronological order. Usually the “best” replies are bumped to the top. “Best” is entirely determined by Twitter, but it seems to work fairly well. If you reply to yourself, your own replies will generally appear first, but this is not guaranteed. If you want to link to someone else’s long chain of tweets, it’s safest to link to the last tweet in the thread, since there can only be one unambiguous trail of parent tweets leading back to the beginning. This also saves readers from digging through terrible replies by third parties.

If reply to a tweet with @foo heya , and @foo later renames their account to @quux , the tweet will retain its threading even though it no longer mentions the author of the parent tweet. However, your reply will now appear on your profile, because it doesn’t begin with the handle of an existing user. Note that this means it’s fairly easy for a non-follower to figure out what you renamed your account to, by searching for replies to your old name.

Threads are preserved even if some of the tweets are hidden (either because you’ve blocked some participants, or because they have their accounts set to private). Those tweets won’t appear for you, but any visible replies to them will.

If a tweet in the middle of a thread is deleted (or the author’s account is deleted), the thread will break at that point. Replies to the deleted tweet won’t be visible when looking at the parent, and the parent won’t be visible when looking at the replies.

You can quote tweets by including a link to them in your tweet, which will cause the quoted tweet to appear in a small box below yours. This is what the retweet button does when you add a comment: it tweets what you typed as normal, but with the first tweet’s URL added to the end. This does not create a reply and will not be part of the quoted tweet’s thread. If you want to do that, you can’t use the retweet/quote button. You have to reply to the tweet, manually include a link to it, and be sure to mention the author.

When you quote a tweet, the author is notified; however, unlike a retweet, they won’t be notified when people like or retweet your quote (unless you also mention them). If you don’t want to notify the author, you can take a screenshot (though this doesn’t let them delete the tweet) or use a URL shortener (though this doesn’t let them obviously disable a quote by blocking you).

Liking or retweeting someone else’s retweet will generally notify the retweeter. Replying to a retweet will prefill the @handle of the retweeter as well as the original author. However, if you click on the tweet on Web Twitter, the retweeter is “forgotten” and neither rule applies. This isn’t the case on Android Twitter, though! You can tell what will happen by looking at the top of the tweet: if there’s small “Retweeted by …” text, it’s treated as a retweet, and the named retweeter will be notified or included.

Due to the nature of Twitter, it’s common for a tweet to end up on many people’s timelines simultaneously and attract many similar replies within a short span of time. It’s polite to check the existing replies to a popular tweet, or a tweet from a popular person, before giving your two cents.

It’s generally considered rude to barge into the middle of a conversation between two other people, especially if they seem to know each other much better than you know them, and especially if you’re being antagonistic. There are myriad cases where this may be more or less appropriate, and no hard and fast rules. You’re a passerby overhearing two people talking on the street; act accordingly.

Someone unrecognized who replies to you — especially someone who doesn’t follow you, or who is replying to the middle of a conversation, or who is notably arrogant or obnoxious — is often referred to as a “rando”.