Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


BirdWatch is a reactive web application for visualizing a stream of live tweets. It started out as a playground for trying out different ways of solving the same problem. There is a server-side application which subscribes to the Twitter Streaming API and then allows a client-side single-page application to perform a live search, meaning that a search on historical tweets up until now will be performed and then updated as new tweets matching the same search are retrieved.


On the server side, there are currently two different implementations:

  1. Play Framework (Scala) application with communication over Server-Sent Events and multiple clients: AngularJS, ReactJS and ClojureScript/Om. Note that the ClojureScript/Om client is not actively maintained as the Clojure development has moved to the application below. Read more

  2. Clojure application communicating with the client over Websockets. This application makes use of my systems-toolbox library, which it uses extensively on both the server and the ClojureScript client. Read more


Installation instructions live with the respective implementations.

Further Reading

There are a couple of blog posts covering this application. The best starting point for the Play application is the BirdWatch Explained article covering both the server side and the initial client using AngularJS. The BirdWatch: AngularJS vs. ReactJS article covers the ReactJS client. This article builds on the previous one. Then there is the BirdWatch with ClojureScript and Om explained article. This one may still be useful as it covers how to build a ClojureScript client using Server-Sent Events. Then, there's a book being written about the systems-toolbox library, using this application as the main example application.

Check out and subscribe to the newsletter if you want to stay up to date.

YourKit Logo

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.


Copyright © 2014-2017 Matthias Nehlsen. Distributed under the GNU GENERAL PUBLIC LICENSE, Version 3. See separate LICENSE file.


Tweet stream analysis and visualization with real-time updates.







No packages published