Snowfinch is an open source realtime web analytics application built with Ruby on Rails and MongoDB. The project was developed as a part of my thesis, and has then been released under the MIT license.
The dashboard view for a tracked site is very simple. It shows three counters (active visitors, pageviews today, and unique visitors today) and a chart containing both the number of pageviews for the current day as well as the previous day. Both the chart and the counters are updated every second.
There is also a text input where a URI can be pasted, and a similar dashboard is displayed for a single page of the site. This seems like a much better solution than a large list of every single page that has been tracked.
In addition to the dashboard, Snowfinch provides a very neat monitoring tool. Monitoring is done via sensors. At the moment two types of sensors exist, but more can be developed.
The first sensor type is the query based sensor. This sensor is triggered when a page URI contains a given query key and value. It can be used, for example, to monitor campaigns.
The other sensor is the referrer based sensor. This allows tracking of how many entries to the site there are from any given number of referrer hosts. An example use case is adding twitter.com and facebook.com as referrer hosts to see how much traffic you are getting from social media sites.
For each sensor, a chart displaying the number of entries is shown.
It doesn’t have all the features in the world at this stage, but if you’re interested in hosting your own web analytics application, this is a project you’ll want to keep an eye on.
I already have a small roadmap shown below. If you have any further suggestions, I’d love to hear them.
- Display data for any given period of time (currently the past 2 days).
- Collect and display referrer information.
- Custom visitor tagging.
- Geographic location of visitors.
- Filter by custom page metadata (e.g. for A/B testing).
- Asynchronous data collector.
If you’re looking to contribute, go ahead and start coding. I’m taking a small break from developing it, while I readjust myself to working full time, but development will continue.
// joaoPosted 2 years ago