
Dashing - A dashboard framework - thehodge
http://shopify.github.com/dashing/
======
pushmatrix
Hey everyone! Dashing creator here. Thanks for the frontpage :)

I have good news for you all. Dashing will be evolving soon to support
multiple backends. Already there are ports being written for python, perl,
.net, and also better rails integration. Stay tuned!

P.S: Sorry for the downtime. Was not expecting frontpage. While I work on
getting it stable, enjoy this screenshot: <http://cl.ly/image/321Y2V361X1r>

~~~
ollysb
It looks really good. We're just about to start building a dashboard so this
could be really useful. We're using emberjs though, is it possible to use just
the views and the layout code? I'm thinking along the lines of a dashboard
bootstrap.

~~~
sync
I think you want gridster then: <http://gridster.net/>

~~~
ollysb
Thanks, that looks perfect!

------
taude
Everyone complaining about the Flat UI. Isn't the use case for something like
this to be displayed on a TV or large monitor around the office anyway? Seems
like one place where the flat UI would be OK.

I'm not a Win 8 fan by any means, but I think this dashboard looks good. The
bright/contrasty colors are exactly what are needed to broadcast metrics
across the office.

~~~
pestaa
Bright colors are exactly what are needed when something needs attention. This
just yells "look, your most important metric just went up by 0.007%!"

------
DoubleCluster
Exceptionally handsome if you like Windows 8 perhaps. I don't like the big
rectangles with bright colors. A good dashboard should be almost invisible
until something important happens.

~~~
davefp
Dashing contributor here: That's great, the default style isn't supposed to be
a one-size-fits-all solution, and it's definitely not trying to dictate design
decisions.

The real meat of the project is the underlying messaging that passes your data
from the server to multiple clients.

You write a job that calls send_data, and Dashing takes care of the rest.
There's room for as much customization as you like on the front end.

~~~
SEJeff
Are there any plans to have native graphite input widgets? This is super cool:
[http://thomasvm.github.com/blog/2012/11/19/bling-
dashboards-...](http://thomasvm.github.com/blog/2012/11/19/bling-dashboards-
using-graphite-and-dashing/)

But I don't understand why native graphite widgets aren't in dashing. These
two projects (graphite + dashing) are literally made for eachother.

~~~
davefp
Dashing was built to run the internal dashboards here at Shopify. As such it's
biased towards our existing technology stack. Seeing as we don't use graphite,
we had no need to include widgets that support it.

That's why we want people to submit third-party widgets and jobs. We can't
cater to all environments ourselves, but others can help out and share their
own.

------
8ig8
This popped up a few months ago. Unfortunately, not much discussion:

<https://news.ycombinator.com/item?id=4718311>

~~~
antileet
Well, maybe you can take a look at another dashboard framework I wrote. It
uses PHP, pulls data directly from MySQL and works seamlessly on mobile
browsers, tablets. :)

<http://razorflow.com>

Adding support for Google Analytics and Excel in the next two weeks!

~~~
pushmatrix
I like it! I think Dashing and Razorflow serve 2 different purposes though.
Yours is more of a hands-on & drilldown type dashboard, whereas Dashing is
much more optimized for being readonly on a large TV.

~~~
antileet
Actually, we are working on adding support for TV/Kiosk mode where the
components update the data regularly, and you aren't limited to showing only
one set of components. The dashboard will slowly and automatically cycle
through all different components so even if you have more widgets than your
screen can handle, it'll still work better than not being able to work at all.

The main difference is that Dashing is focusing more on current KPIs and
Metrics. While we believe that those are crucially important, sometimes they
just aren't enough for people who have data that's too much to get condensed
down to a single indicator.

------
benaston
Looks great. Wish it used JavaScript instead of CoffeeScript to lower the
barrier to entry though.

~~~
thibaut_barrere
Interestingly for me it's the reverse: using CoffeeScript lowers the barrier
to entry :-)

~~~
k__
dafuq?

~~~
masukomi
I would not be surprised if spinning up on CoffeeScript was easier for
beginners without real JavaScript experience.

~~~
k__
yeah, probably. Dunno if it's a good thing, that people start with a
transcompiled language...

~~~
endtime
That's just an implementation detail. CoffeeScript has syntax and semantics
every bit as valid as JS's.

~~~
k__
True story. JavaScript seems like a mix of C and Scheme CoffeeScript seems
like a mix of Ruby and Python

------
pstinnett
For anyone interested in only the grid/rearranging js behind this:
<http://gridster.net/>

------
jonahx
Is batman.js supposed to be an alternative to angular? If so, what advantages
does it have?

~~~
pushmatrix
Disclaimer: I work on the batman.js team

It's an alternative to ember, angular, knockout, backbone, and all those other
client side MVC frameworks.

Its main advantage is that it should be very familiar to a Rails developer.
The APIs are very close to what you'd find in Rails, so it should be quick to
get into it. Shopify, which is built in RoR, now is completely client-side
powered by Batman.js. The project was extracted from that.

~~~
jonahx
hey pushmatrix, thanks for replying.

does batman.js have anything like angular's custom directives? are there any
other features/advantages a possible adopter should know about besides the
similarity to a Rails API?

EDIT: or perhaps phrased a slightly different way: why did you guys decide to
create this instead of just using angular or one of the other existing
options? or was this created before those options existed or had reached a
mature state?

------
jbrooksuk
We wrote our own Dashboard at my current place, but it's nothing as nice as
this!

------
fidz
This is great demo. But i really don't know, do everyone have the same use
case? There is so many library that work great in demo, but doesn't suit my
use case. I hate to build my own library (if i am able to use existing lib,
why creating new?), but i must do this because some library/framework isn't
really customizable. The time cost between customizing existing lib and
creating new lib is the same, so i prefer to create my own library most of my
time.

~~~
pushmatrix
I've used other dashboards before, and I found that they are really limiting.
For the most part it's because you can't customize the look that much, or it's
because you're limited to a list of predefined widgets.

At Dashing's core, it's just a really simple way to fetch data and send it to
the client. What you do with that data, and how you display it is up to you.
Hopefully the default layout and widgets act as a good starting point.

------
szajbus
We're using dashing to present some internal information about our company's
cashflow.

We built a second application (in Rails) that collects data from various
sources, stores and transforms it, and then exposes it via API for dashing to
use.

So in our case, dashing is a neat presentation layer and it serves its role
very well.

~~~
zzzzz_
Both of your demos are returning errors...

~~~
pushmatrix
I was sleeping when I got news of Dashing being at the top :S. Haha. While I
work on getting it stable, enjoy this screenshot:
<http://cl.ly/image/321Y2V361X1r>

------
barranger
While I'm sure it looks fantastic on a dedicated monitor/tv, it's lack of a
responsive layout limits it's use in my books

Looking at something like <http://dash.social-biblio.ca/torontolibrary> on a
sub 1080p monitor is less than optimal.

~~~
davefp
We experimented with making the default layout responsive, but ultimately
decided against it.

The thinking was that displaying exactly the same data on a TV, desktop, and
mobile device isn't ideal. The dashboard is designed specifically for the
display. If a mobile version is needed, then the relevant widgets can easily
be put into a new, mobile-optimized dashboard.

The same could be achieved with carefully designed media queries, but I feel
that separate dashboards do the job better.

------
cmdkeen
This has made me sad because we're too far down a far uglier, and less
functional route at work to change.

------
jalada
Coincidentally just started using this today. I've got a couple of
widgets/jobs I'm hoping to share for re-use. Some on the wiki are out of date
e.g. the Twitter ones that don't support Oauth will stop working soon.

~~~
davefp
Please do! If you want to add widgets with functionality similar to existing
ones, please add details of the difference s to the description (e.g. 'Uses
OAuth' for Twitter').

------
skore
Dashboards! For when you don't know what to put on the screen that users will
click away for what they actually want! /s

------
swah
It would be interesting if the browser on SmartTVs rendered this properly,
then you don't need a PC just for this...

~~~
pushmatrix
Actually it does run on SmartTVs :). All of our displays at Shopify run this
way.

The browser on SmartTVs really suck, and also don't support 1080p for some
reason. Since the tv SDK is html/js, I built a super simple app that can point
to any Dashing instance, and even use the remote control to switch between
dashboards! Super handy.

I will be releasing that functionality soon as a plugin for Dashing.

------
toddmatthews
I'm not a rails guy....why does something so cool looking have to be so
closely coupled to a rails backend?

~~~
pushmatrix
Not a rails backend. It's sinatra, so there's WAY less magic going on. A
beginner rubyist should be able to grok most of the (tiny) source.

That being said, I'm working on decoupling the frontend and backend, which
will see implementations in other languages.

~~~
toddmatthews
giddyup!

------
namenotrequired
Points from me even if just for the name alone :) Looks great, wish I could
think of a use for it!

~~~
pushmatrix
Here's some inspiration:

<http://dash.social-biblio.ca/torontolibrary>
[https://github.com/foobugs/foobugs-dashboard#stock-market-
da...](https://github.com/foobugs/foobugs-dashboard#stock-market-dashboard)

------
okor
Fantastic. Real time server stats with Dashing and a cheap plug computer would
be great.

------
cincinnatus
Doesn't seem to handle load very well, though normall I guess it wouldn't need
to.

~~~
masukomi
The demo is probably running on a free heroku instance which means a single
thread on an itsy-bitsy EC2 instance. At the top of HN we're talking at least
500 concurrent visitors... on a single thread.

~~~
pushmatrix
Bingo. It's on the free heroku, hence the trouble staying alive. Here's an
image of what the demo looks like: <http://cl.ly/image/321Y2V361X1r>

------
Ecio78
Couldnt load the demo on Heroku, probably too few dynos for all the HN
traffic...

------
biznickman
Where's documentation of how to use the graph widget?

~~~
davefp
The graph widget is based on Rickshaw
(<http://code.shutterstock.com/rickshaw/>).

The current implementation requires you to send an array of hashes with the x
and y co-ordinates you want to plot.

Here's the example job where you can see it in action:
[https://github.com/Shopify/dashing/blob/master/templates/pro...](https://github.com/Shopify/dashing/blob/master/templates/project/jobs/convergence.rb)

------
jheimark
this looks lovely. can't wait to use it for internals

------
richoffrails
I don't get it. Why is something at the UI level coupled to a server-side
framework?

~~~
szalansky
Me neither and this is somehow scary. I'd prefer just an UI kit with
guidelines for integration with backend.

~~~
pushmatrix
Because it is meant to be a full stack framework.

Also, it's not really a UI kit. Although it comes with premise widgets and
styles, these are just suggestions. The real meat is how the data gets to your
widgets, letting you do whatever you want with it. That structure is the core
of Dashing.

However, there is a decoupled version in the works with the integration
guidelines you mention.

------
camus
nice , a few glitches here and there but definetly usefull.

------
jmgunn87
that's awful. css and some javascript? do we really need anymore head-up-arse
code junk floating around our heads right now? every five minutes there is a
new javascript plugin/distraction that claims to change our lives. When will
you people get a life and start solving real problems?

~~~
jmgunn87
frankenstein coding, glue this sinatra dashboard to you php symfony "instance"
and upload to s3. why waste our time? where are the integration points for
this and who is really going to use it? Do i pitch this to my boss?

~~~
crcastle
I did. And he said build it! We did, and employees have commented that they
like the daily visibility in to company metrics they previously knew very
little about.

