Groups for Twitter; or A Proposal for Twitter Tag Channels

Twitter / Mr Messina: how do you feel about using # (pound) for groups. As in #barcamp [msg]?

This is the post that I alluded to in my last one about Whispering Tweets. I’ll make a disclaimer right now that the title of this post is misleading and actually not about Groups for Twitter. In fact, I’m not at all convinced that groups (at least as they are commonly understood on sites like Flickr) are ultimately a good idea or a good fit for Twitter. But, I do think that there is certainly some merit to improving contextualization, content filtering and exploratory serendipity within Twitter. This is a rather messy proposal to that effect.

First, to borrow from Stephanie Booth and Brian Oberkirch, we should get our vocabulary straight.

From Stephanie:

  • “groups” or “shared-interest groups” (“Flickr-groups”)
  • “groupings” (“ad hoc assemblages of people with similar interests” — Stowe Boyd)
  • “contact groups” (organising my contacts)

And from Brian:

Okay, so we are talking about 3 kinds of groups: public groups you ‘join’ a la FB groups. Ad hoc groups users control whether via grouping management (Pownce) or tagging. And then we have context specific groups based on location (@ South Park, anyone want to walk to Philz?).

Those three types of groups essentially cover the use cases presented on the Twitter Fan Wiki, to varying degrees.

The type that I’m most interested in, and am prepared to offer a concrete proposal on, is actually of a fourth kind, most closely related to Stowe’s “groupings”, but with a slightly different lean, primarily in the model of how the grouping is established. In the cases presented above, there are very explicit approaches taken, since it’s somewhat taken for granted that groups imply a kind of management. Whether you’re dealing with public groups that you create, join and then promote or contact groups that you ultimately must manage like any kind of mailing list, they imply an order of magnitude of work that would ultimately work against the adoption of the whole grouping premise and thereby minimize any benefits to a select group of hyper-dedicated process-followers.

I’m more interested in simply having a better eavesdropping experience on Twitter.

To that end, I focused my thinking on contextualization, content filtering and exploratory serendipity within the Twittosphere.

It occurred to me that IRC presents a proven model for these needs with its foundation on channels, and so that’s what I’m generally going to call them.

Now, in thinking about implementing channels, it was imperative that I not introduce any significant changes into the way that I currently use Twitter any more than I have for other features that have been added to Twitter (for example, @replies or direct messages). Channels would need to be a addition, and one that would require absolutely zero web-based management to make the most of it (to draw a distinction, Pownce fails this test with its Friend Sets, since it requires use of their website to take advantage of this feature).

Jaiku comes closest with their channels implementation, making it extremely easy to create new channels (simply post a message that begins with a hash (#) and your intended channel name — and if the channel doesn’t exist, it’ll be created for you):

Jaiku | Create a Channel

This is how it works in IRC, and how it needed to work in Twitter. Where Jaiku’s implementation overextends, however, is in its concept of a channel. Rather than serving merely as an ad hoc verbal guidepost, channels act more like aggregation buckets in Jaiku, allowing you to pull in all manner of content via feeds and the like. It’s a great example of a bridging app for sure, but far beyond the straightforward functionality that I’m looking for from Twitter channels. In fact, Twitter channels could and probably should feed into Jaiku channels, but the inverse should not be true.

So, let’s get a bit more specific about what I am — and what I’m not — looking for from Twitter channels. A lot of people have made various suggestions towards implementing groups one way or another, but in order to be clear, I want to make certain functionality explicitly outside the scope of what I’m suggesting. Before I do that, I want to make a slight modification of the idea of a Twitter Channel.

Channel Tags

Twitter / les orchard: Using # for groups seems like a not-bad idea. I'd still like to see more tag-like contexts too

I spent some time talking to l.m.orchard at BarCampBlock and (I think) he mentioned tagging in Twitter (he works at; that tagging is a priority of his should be obvious). He’s been talking about this recently and offered a pretty neat suggestion on this topic.

Combining his proposal with Thomas Vander Wal’s concept of the folksonomic “Come to Me Web”, a fuller picture of these “channels” began to form. Soliciting opinions from the Twittosphere on the format helped, as did a conversation with Britt from Twitter on this idea.

What I’ve realized is that this “channel” concept meets many of the aggregate desires expressed in various “Groups for Twitter” discussions while not inheriting a lot of the unnecessary management that most group systems seem to suffer from, it is easily accessible adapting current and convention, it’s easy to learn and lightweight, it’s very flexible and entirely and works with people’s current behaviors, rather than forcing anyone to learn anything radically new. It also keeps the interface aspects to a minimum (as I’ll soon explain), invents little by borrowing from age old IRC conventions also adopted by an existing web application and, from what Britt said so far, actually works consistently on cell phones (whereas, for example, the star key does not).

What’s really interesting, however, it how these channels can be used as tags within Twitter to open up entirely new possibilities.

Every time someone uses a channel tag to mark a status, not only do we know something specific about that status, but others can eavesdrop on the context of it and then join in the channel and contribute as well. Rather than trying to ping-pong discussion between one or more individuals with daisy-chained @replies, using a simple #reply means that people not in the @reply queue will be able to follow along, as people do with Flickr or Delicious tags. Furthermore, topics that enter into existing channels will become visible to those who have previously joined in the discussion. And, perhaps best of all, anyone can choose to leave or remove topics that don’t interest them.

I also like that the folksonomic approach (as in, there are no “pre-established groups”) allows for a great deal of expression, of negotiation (I imagine that #barcamp will be a common tag between events, but that’s fine, since if there is a collision, say between two separate BarCamps on the same day, they’ll just have to socially engineer a solution and probably pick a new tag, like #barcampblock) and of decay (that is, over time, as tags are used less frequently, other people can reuse them — no domain squatting!). It also enforces actual use in the wild of tags, since no evidence of a tag will exist without it first being used in conversation. This means that representing channels in tagclouds across the site that grow and fade over time, and are contextual to all of Twitter or to a single user, is the ideal interface for displaying this information.

Oh, and from a language/design perspective, you can actually turn regular words in a sentence into channels, just as many people do with @replies. For example: I’m coming to #barcamp later today.


So I think I’ve provided at least a vague overview of this notion of “Tag Channels” and that they’re simply used by prefixing one or more words with the hash (#) character. Contrary to my usually general ideation, I want to go a little further and get more specific (probably inspired by my work lately on OAuth).

Let’s see how specific I can get…


  • follow #tag: subscribe to all updates tagged with #tag
  • follow username#tag: subscribe to all updates tagged with #tag from a specific user
  • leave #tag: unsubscribe to a tag; you will still get updates with this tag from your friends
  • leave username#tag: unsubscribe to a specific from a specific user
  • remove #tag: completely remove all incoming posts tagged with #tag, even from your friends
  • #tag message: creates a status in the #tag channel
  • #tag !message: creates a status that is only visible to people subscribed to channel tag #tag

Other notes:

  • In this first version, channels shall not be made public or private; using a channel tags in a status does not affect its privacy. Whoever could see a status without the channel tag can see the status with the channel tag.
  • No one owns or administers a tag channel.
  • A channel is created the first time someone posts a status with a channel tag.
  • Channels cannot be deleted; the only way to remove a channel is delete all statuses with a particular tag (this is consistent with sites like Delicous or Flickr).
  • The channel URL format on Twitter should be This differs from Jaiku’s convention ( but follows the IRC standard.
  • Channel names and usernames can overlap. Therefore, is not the same as but both can safely exist.
  • To join a channel, simply add a tag hash (#) like this: #barcamp The grid is open!.
  • You can use any number of channels in an individual post, up to 140 characters, for example: #barcamp #barcampblock The grid is open!.
  • Unresolved: You should be able to whisper to a channel (the status will show up in your public timeline but will not be sent to your friends who are have not joined the channel) by prefixing your message with a bang (!).
  • You can subscribe to as few or as many channels as you like.
  • You can leave a channel at any time.
  • Via the API, using a new “roster” command (taken from Jabber) you should be able to get the recent list of people who have posted to a channel.


I’ve created a few mockups for this concept. They need a bit of work, but get things started. Here’s the homepage with most recent active channel tags:

Twitter with Channel tags

Test case

Twitter got a huge boost at last year’s SXSW conference. I’m thinking this year, rather than prefixing SXSW-specific messages with ‘sxsw’… tag channels could replace that hack with allowing people to simply insert #sxsw any where in their updates. This works for both the broader conference (organizers can post schedule updates using #sxsw) and for coordinating during the main event (the Interactive portion might use #sxswi and small groups of friends might pick random tags like #sxswbanc to plan around).

On top of that, it’s super easy to filter out statuses that use a specific tag (answering a complaint from folks not attending SXSW last year and overrun with SXSW tweets)… and, if you only want to subscribe to #sxsw statuses from certain people at SXSW, you can do that as well.

While this proposal is not at all finished, I think it presents a fairly simple and clear (at least in my head) plan for implementation of “group-like functionality” without violating the original premise of Twitter. The simple addition of tag channels means that people can track content and updates more relevant and interesting to them without exerting a great deal of extra effort or learning any kind of extraneous of syntax. While the interface on the website still needs to be resolved, the beginning steps look somewhat promising and workable.

So I guess that’s it. I’m eager to get feedback and to refine this proposal.

For now, we can discuss on Twitter using #channels as the tag; we can refine this proposal on the Fan Wiki under .


One other aspect that I like about the emergent folksonomic approach to “grouping behaviors” on Twitter is that it doesn’t rely on special Twitter accounts to be created that do the auto-friending thing (which requires action by a Twitter employee). Instead all tag channels automatically “add back” everyone who uses the tag, as well as those who simply “join”. In terms of accelerating serendipity, this is a huge win for conferences and individuals, not to mention Twitter employees!

Author: Chris Messina

Head of West Coast Business Development at Republic. Ever-curious product designer and technologist. Hashtag inventor. Previously: (YC W18), Uber, Google.

95 thoughts on “Groups for Twitter; or A Proposal for Twitter Tag Channels”

  1. Hello Factoryjoe! I agree with your concept of tags! I am already using this concept on twitter. You are my tag. You are my group. Great thing is, it has many things you have mentioned. You are a group ‘owner'(Google group), but you are not even aware about it. You do not have to manage or run it. Even you have not joined your own group. You came to know about it only because i told you. We have 3/4 million ‘human tags’! After all, we all are human beings (thought we twitter!) we can enjoy our freedom at Madagascar. We can survive and prosper without cages!

  2. I think you’ve addressed pretty much everything on my wishlist for twitter with the exception of selected privacy, ie being able to denote certain tweets are for friends-only and not the general twitter stream.

    Excellent proposal, Chris! Here’s hoping we’ll see something like this happen soon!

  3. I would use it … but does it promote answering twitter’s “What are you doing?”? I’d hate to see twitter turn into a rampant IRC chat room. Like you wrote about, some people already abuse the @username feature to conduct their IM conversations (I know I’m guilty).
    Channels would fill a need for easier discussion, and I would like to see this happen. However, twitter does not promote chatting as they stand right now; so, if twitter were to adopt something like channels they may have to change what they are asking of users.

  4. How about the idea of sticky channels or tags? For event-based channels, saying ‘#etech’ or ‘#sxsw’ in every tweet adds a lots of overhead. If you join a channel in irc, clients keep you in it until you leave.

  5. @Amie: That’s kind of why I proposed the whispering functionality — it gives you that ability with ONE small group of friends — and doesn’t devolve into more stuff to manage. The point of Twitter is to answer “What are you doing”… whispers provide a way of doing that to a small group of folks… with the intention of encouraging more folks to remain pubic with the majority of their status updates.

    @Taylor: Great point. As I just said, I do want to retain the “what are you doing” aspect that makes Twitter so interesting and focused. At the same time, you also have to look at how people are currently using Twitter — and what their conversations look like.

    Scott Beale posted about Twitter at Burning Man 2007 and talked about how Burners have set up their own Twitter group, using the ‘burners‘ as an auto-friending account with the prefix ‘burn’ to get status updates to show up in the account. Again, this is relying on a hack that works well for people who are friends of Twitter, but simply doesn’t scale — nor does it provide for discoverability.

    I actually think that the Tag Channel are a way to make Twitter more about what you’re doing, but with greater relevant context. So instead of getting a partial sense for what’s going on, you can now listen in on channels that offer a fuller view of the conversation — or, again — allow you to filter it out.

    I think Lane really provides an excellent use case in his desire for conference keywords. He’s totally right at looking at both existing behavior and a narrow need… But to my thinking, it’s so specific that few people would remember the command let alone use it. Additionally, when you syphon off status updates via direct messaging commands (like the proposed ‘g’ for groups or ‘c’ for conference) people actually lose context… If you don’t change anything but instead give observers the tools to filter out stuff that they’re not interested in, I think it maintains the utility and purpose of Twitter without a great deal of overhead while also increasing the value and ability to get out of Twitter what one is looking for.

  6. Chris, I found this post via your link on twitter and had totally missed seeing your earlier whisper post, hence the “duh” factor of my original comment, lol. I really like your proposed method of handling the occassional need for privacy without otherwise having to go all-out private. Too many times I’ve wanted to tweet to my friends but didn’t because what I had to say wasn’t for general consumption. Adding this feature would make twitter so much more useful to me.

  7. Chris, you win my vote! Taking this lightweight, folksonomic approach really floats my boat. And, if I know Thomas (VdW), he’ll like it a lot also. It really appeals to the information architect aspect of me and you seem to have covered all the important bases.

  8. Twitter is the nearest thing coming to what irc was so good about – public communication. writing @name in irc setting was never meant to be just for name – otherwise it would be a message to that person, but meant for the public to chime in.

    As such I am all for having a tool – not really caring about what it is called as long as it is open and accessible – to have the channel feature back.

    Not everybody wants to read a channel or a topic – this is why you can join different ones and only read the ones you are interested in; and irc has been strong in tools about ignoring and highlighting.

    I like your proposal but the one thing I am missing in there is the reason why some of us are so keen on ‘groups’. Because I already know which part of my twittering will be uninteresting to you: Everything I post in German.

    Now, your take on that allowing for somebody I do not know that about to drop in is a good one, but the problem is that you defenetly NEED an ignore tag for lang:de from the start.

    The “do not include” somehow is the strongest tool but often neglected. I would happily post much more if I would be sure my readers would know how to ignore the stuff they are not interested in. For example ignore everything that is in barcamp, or does talk about xyz.

    And while I like the idea of managing this experience, I would rather see this happening on a bigger than jsut on twitter alone.

    To test this in micro form how this can be applied to the big level, yes. But please keep in mind how to adapt this and make sure it can be applied to a general stream of information.

    To sum it up: How do you make sure that from the beginning you only see languages you are interested in without having ‘see’ #lang:en in all tweets? 🙂

  9. Pingback: Twitter Groups
  10. nice stuff … one minor nit though is that won’t work … that form of URL would be read by the browser as meaning “jump to the #channelname anchor on the page” (ie. the home page)

    a curly question: how would the #channel !whisper thing work if you have multiple #channels in your message, and also if the #channel_name is mentioned in-line?

    a syntax style opinion: might “remove #channel” be better as “ignore #channel”, since it doesn’t (a) remove you from the channel, nor (b) remove past channel msgs from your stream. The intent is to ignore msgs on that channel, right?

  11. @Eric: great points!

    For the first, I believe that Twitter can set up it’s server to intercept requests for hashed content as URLs… this is the way it works on IRC servers… i.e. irc://

    I have suggested elsewhere that we could simply follow the Jaiku convention and do something like or even Either would be fine for me.

    You’re right about the whisper command not being very specific. Perhaps that’s the weakest aspect of this idea. Still, it’s similar to the “g” convention being considered within Twitter now… as in “g barcamp Here I come to BarCamp!”

    And I think your suggestion to use “ignore” rather than “remove” makes good sense. I used REMOVE because I thought it was part of the Twitter syntax… but maybe they’ve switched it to OFF. I wonder if OFF would be worth considering? Ugh, nevermind. I like IGNORE. Great suggestion! 😉

  12. @chris – thanks!

    Sure, a web server could look for /something/#whatever in a request, but unfortunately most web browsers would never send such a request — they know the #name part of an “http” url refers to an anchor within the returned resource, and thus don’t send it in the actual request. This isn’t necessarily the case with other protocols (eg. irc://)

    I do like however. Simple, straightforward.

  13. Looking at how folk use Twitter got me remembering group dynamics in PowWow. (You had to be there; systems in-form transaction, yes? This system truly enabled friendly fun camp-fire style exchanges.)

    I’ve been chewing on this for a few days … reading posts that link to this one hear … letting it simmer a while.

    I think I’ve got a model that would work. It doesn’t use tags, it would be by subscription. Sort of. It’s so simple it’s sort of embarrasing.

    You know how many different view we have now. “Recent” ( of course shows yours and everyone you’re following. Then “Archive”, your past tweets … again self-evident. And “Replies”, which is aweful nice … most everyone misses @ traffic now and again. Then there’s “Direct Messages” … gotta luv systems that have simple PM Function.

    And, equally obvious, you can go to anyone else’ page to see their past tweets. Not their “Direct” of course, nor their “Replies” … common decency.
    Put here’s the curve: “With Others” … ok, I can see my buddies’ view of his transaction … not so interesting.


    Ok, I’m gonna stop here and give it a spin.

    –bentrem also ITGeek (group feed?)

  14. I really like this, as much as I can understand it. What I need is an explanation system which is simple and which is based on my intent, the functions I need, not on what something does. So if each line could be like:
    I want to.. Set up an open group which explores the idea of a rule based idea offer service, so I set up #Ridea with some rules posted on

    I am working on the idea of Multiplicity, that we all have many minds, and hope to get research funding for this, and my interest in your Tag/Group concept is that it matches what I think is how some of the brain works, as a consent to listen kind of operation. Edelman talks of Renentrant functionality (book Second Nature) and this leads to some kind of emergent properties which seem to be what ‘intelligence’ is all about, and maybe consciousness too!

    Not sure if any of what I am saying makes sense, it intuitively feels like it does. As a psychologist of 30+ years it is exciting to think we may at last be getting somewhere!


  15. this is a fantastic summary. it sounds like the author read our business plan. is on its way to most of the items mentioned. Any additional insight or development request is highly valued.

  16. @Chris: Do you happen to remember the “g” convention Twitter was considering in 2007 that you mention here? Out of curiosity–how was that to be used?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: