Simple microblogging network based on the ostatus protocol.
Pull request Compare This branch is 306 commits behind hotsh:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

               .            .
 .___    ____ _/_     ___  _/_     ,   .   ____
 /   \  (      |     /   `  |      |   |  (
 |   '  `--.   |    |    |  |      |   |  `--.
 /     \___.'  \__/ `.__/|  \__/ / `._/| \___.' is a microblogging site built on top of the ostatus protocol.

The differences between and other microblogging networks are simplicity and openness.

Simplicity is a core 'feature' of We pride ourselves on saying 'no' to lots of features. Our interface is clean, and easy to understand. We give you just enough features to be interesting, but not enough to be complicated and confusing.

Openness means the programming code that makes up is available for anyone to download, free of charge. Programmers can use that code to run their own websites just like, and you can subscribe to your friends on any site that supports the OStatus protocol, like This also means that you can own your data; we'll never stop you from having full access to everything you've put into

Build Status

Quick facts and links

How to get help

  • If you think you've found a bug, please file a new issue and include:
    • What happened
    • What you expected to happen
    • Steps to reproduce what happened
  • You can send questions, problems, or suggestions to the mailing list
  • Chat with us on IRC in #rstatus on freenode

Helping out with

If you'd like to contribute, we'd love to have you! Your first order of business is setting up a development environment and making sure all the tests pass on your system. is a Ruby on Rails 3.2 application, so it's assumed you already have Ruby (1.9.2 or 1.9.3 preferred, 1.8.7 compatibility is not guaranteed), rubygems (comes with Ruby as of 1.9.2), and bundler on your machine. If not, each of those links has instructions, and we're willing to help via one of the contact methods above if you have issues.

If you have any problems with the following specific steps, it is a bug. For example, this is an issue with running a development environment on windows that we need to fix. Please report any issues you have.

Getting a local version running

First off: you will need MongoDB ( They have a quickstart guide for getting it installed and running.

Fork the project in github so that you have your own version.

Then do:

$ cd

Then update your gemset:

$ gem install bundler && bundle install

And start the server:

$ rails server

Bam! Visit http://localhost:3000/ in your browser, and you'll be good.

Local Twitter configuration allows you to sign in using a Twitter account or link a Twitter account to your account. If you'd like to enable that functionality in your dev environment, you'll need to obtain a consumer key and consumer secret from Twitter. Here are the steps to do that:

  • Go to
  • Sign in using a valid Twitter account
  • Hover over your username in the top right and select "My applications"
  • Select "Create a new application"
  • Fill in all the required fields (you can use made up information if you'd like) and be sure to add a "Callback URL" - e.g.
  • Go to the settings tab and select "Read and Write" for the application's access type
  • If you haven't already, create a personal config/config.yml by copying config/config.yml.sample
  • Copy the consumer key and consumer secret (found on the details tab) and put them in config/config.yml in the development section
  • Restart your rails server

Now you should be able to sign in to your development version with Twitter!

Running the tests

To run the tests you may want to make use of bundle exec so you don't get mixed up with different versions of gems that might or might not work with the current branch.

Run all the tests:

$ bundle exec rake test

You can run convenient subsets of the tests during development; run bundle exec rake -T to see all the options. You can also run one test file (for example, test/models/author_test.rb) by specifying the filepath in the TEST environment variable:

$ bundle exec rake test TEST=test/models/author_test.rb

Picking something to work on

Once you've got a development environment set up with the current tests all passing, you're ready to start working on the code!

Please see the Issues; anything without an assignee is up for grabs! Fairly well-defined and small issues are tagged with Pick me!!!!!!; these would be ideal if you want to help out but aren't sure where to start. Don't hesitate to ask for help or clarification either on an issue itself or through one of the contact methods listed above.

Development Roadmap

In the second half of 2012, we plan to focus on:

We'd love to get working with desktop and mobile clients, either through a twitter-compatible API in a client that allows you to change the endpoint URL or working with an app developer to make an app. If you work on or would like to work on a client, please let us know! We'd love to get feedback from you.

Contribution steps

We follow GitHub flow, as a workflow. Basically:

  • Create a feature branch in your fork
  • Make your change, including tests and documentation as appropriate
  • Please run all the tests before submitting a pull request!
  • Submit a pull request from your branch
  • Someone with commit access will let you know they are looking at it as soon as they are able. They will review the code and let run the tests before merging. This applies even if you also have commit access.

Becoming a committer

Following rubinius' lead, once you have one pull request accepted into, we will add you to a team that has push+pull access. Basically you will get a big green merge button on other people's pull requests, and you will be able to commit those pull requests to the hotsh/ master branch.

This also means that you could push your commits directly to hotsh/ without going through a pull request. We ask that you not do this, however, so that any code on master has been seen by 2 sets of eyes (tests don't always catch everything!) This does not apply to branches other than master; if there is long-term collaboration happening, create a feature branch and feel free to push directly to that (but have commits reviewed before merging that branch into master).

We reserve the right to take away this permission, but in general we trust you to give it to you. ❤️ ❤️

Source code documentation

We have documentation that explains our source code using rocco. You can view it here.

Running your own node

We're working on making this super easy, but right now, we're not quite there.

If you do run your own node, please keep current with upstream.