What's Coming in Bluebird 1.0 Beta 2

Matt Patenaude

We've been hard at work here at {13bold} since the release of Bluebird 1.0 Beta 1.1, and all that hard work is finally starting to pay off. We're still a decent distance away from releasing beta 2 of Bluebird, but we've been working on some crazy awesome improvements that we'd love to share with you.

The New Look

Bluebird's got a new look, and it's better than ever. We surveyed a handful of users, and looked deep inside ourselves in introspection to decide what we felt were the least commonly used features, and more importantly, what features would be better served elsewhere in the app.

The new look of Bluebird.

In the end, we opted to get rid of the filter bar — the "Replies" functionality is now available in the toolbar, and the other filter brackets of the filter bar have been moved into the Profile Inspector (which I'll talk about in a moment).

We also decided that, while the filter search was useful, it wasn't particularly clear whether it searched tweets presently visible, or searched the Twitter API (which it didn't). So we got rid of it. In its place, we're working on implementing Safari "Find"-style search (with the little yellow highlight boxes) to search within the tweets currently visible. In addition to that, however, we're building in a full Twitter API search interface — the most powerful search interface to hit a desktop Twitter client yet. We can't show it to you just now, but don't worry, it's going to be amazing.

Since clicking gets oh so tiresome, we added a handful of keyboard shortcuts to switch between views (Command-1 through -4, like in the Finder to switch views). With that, the minimalist should be able to hide the toolbar without any drastic detriment to his or her workflow's efficiency, and Bluebird can be distilled to something as beautiful as this:

A minimalist approach to Bluebird.

Enough people decided to turn on remaining API requests that we thought it would make sense to make it a UI fixture. We replaced the remaining character count with the number of remaining API requests, including the reset time right in the bottom bar, so you can always see at a glance how many requests are left.

We also filled out the resizable separator in the style of the "Reply to" bar, and it now automatically adapts to what you type in the tweet box (if you start an @reply, a direct message, etc.). The contextual divider is also the new home of the remaining character count — it turns red when you near the maximum length, and blue when it's automatically accounting for URL shortening (Bluebird is smart enough to know the length of shortened URLs, so it automatically subtracts the number of characters that will be chopped off).

The Profile Inspector

One of the common feature requests was the ability to view user's profiles from within the app itself. For that, we created the Profile Inspector.

The new Profile Inspector.

Along with giving you a nice, brief overview of a particular user's profile, the Profile Inspector gives you easy access to a short tweet history, @reply conversation history, and the user's favorited tweets. Bluebird's action menu in the toolbar also provides shortcuts to your own profile, history, and favorites, replacing the actions once relegated to the filter bar (shortcuts are also in the View menu). The Profile inspector also makes it possible to follow and unfollow people with a single click.

New Features for Themers

Themers get a handful of new features with the new beta. Among access to a few new author properties, it's now possible to initiate a new tweet (with pre-filled text) from a theme, append or prepend to the tweet box, and favorite and unfavorite tweets.

More importantly though are more changes to the theme format. These will be the last changes until Bluebird 2 goes into production — the version of the theme format in beta 2 will be the same one that ships with the 1.0 release. They're simple, straightforward, and help to make Bluebird as blazing fast as humanly possible. And there's only two of them.

IDs Mapped to Tweet IDs, Classes Contain BBTweet

The first change involves IDs and classes. Starting with beta 2, Bluebird will require that the ID of the top-level tweet element (ie, the element that you put in your tweet.html file) be equal to the ID of the tweet, and that the class contain BBTweet as one of its classes (you can, of course, give any HTML element multiple classes by separating them with a space). An example should look like this:

<div id="{{tweet.tweetID}}" class="BBTweet themeSpecificClass otherClass">
	<!-- Tweet stuff goes here -->

Doing this means that Bluebird doesn't need to keep an internal DOM reference to every tweet element, which speeds up loading and at least slightly decreases memory usage. This change is also fully backwards compatible — it doesn't add any functionality in Bluebird builds before beta 2, but it doesn't harm anything either. That means you can make this change now and release your updated themes, and your themes will be ready to roll when the new beta comes out.

Button to "Load Earlier Tweets"

The second change is technically optional, but strongly recommended. Taking a cue from a certain piece of NDA'd unreleased software that will likely be making its debut in June, Bluebird is going to restrict the number of tweets in the window at any given time to 50 (changeable via a hidden preference). This will make loading faster, scrolling smoother, and memory usage lower. It also allows us to use a new system of memory management we've developed called "tweet paging," which caches each "page" of 50 tweets in files on disk, meaning they can easily be loaded and unloaded at will. It should make using Bluebird thoroughly more enjoyable.

This will require, however, that themes implement a button to "Load Earlier Tweets." There will be an additional bluebird: URL to load the next page of tweets provided, and an additional JavaScript function to indicate whether more tweets are available (ie, so you can enable/disable or show/hide your button). More details on specific implementation will be available within a week or so.

Anything Else?

Of course we've fixed a slew of bugs, and are working on a handful of features, including things related to URL shortening and a "QuickTweet" feature. We'll tell you more about those as the features progress.


Honestly, I don't know when we're going to end up releasing beta 2, but hopefully within a few weeks to a month. The original plan was to have a beta out by this past Monday so that we could enter it into the Apple Design Awards, but looking over our feature goals and ideas, we ultimately decided to hold off and deliver a phenomenal end product. Sorry we haven't gotten it to you yet, but trust me, the wait will be worth it!