Beta launch of our new custom data platform


Hey everyone,

As Ben announced a while back, we’ve been developing a new custom data platform that offers much more flexibility in getting custom data into Geckoboard, and we’re excited to say we’ve just launched the (public) beta version of Datasets that anyone can try!

Look for ‘Datasets’ inside Geckoboard, or get started with the new documentation here –

In the new platform, you define a general schema to which you push data, and once set up, you (or another admin on your Geckoboard account) can build and edit any type of visualization on top of it, right from within Geckoboard.

That means that the same data can support, for example, a line chart, a bar chart, a geck-o-meter, a number widget, or a leaderboard, and anyone can now build widgets using custom data sources you’ve set up, regardless of technical ability.

We’re excited to hear your feedback and what you create with it. As always, let us know your thoughts and if you have any questions.

We just launched the Datasets API!

Hello Jason,

Just finished reading the documentation and this sounds like a great addition to the custom widget feature.

There is indeed one thing that often makes me spend some good deal amount of time when adding new widgets to my boards, and that is making my server able to output the same data for various widget types.

Usually what happens is that I spend some time prototyping my future widget by using github gist feature prior to doing the actual implementation. Once I’m happy with my prototype, I implement it and voila. But this is not ideal.

  • It can sometimes be tedious to do the “gist dance” (workflow is the following: edit gist, save, see raw, copy url, go to geckoboard, edit widget, paste url, save, see changes), especially when fine tuning small details
  • It kind of works because I’m doing everything myself from conception to implementation and deployment, but this wouldn’t work well if I were to colaborate with other team members
  • Changing a widget means coding, and that takes time

There might be one missing little feature though. According to the documentation, you push and override a dataset’s data by using dataset.put method.

This assumes that you do have some kind of storage where you can access the historical data from. This might often be true, but in my case not always. It’s not that I couldn’t do it, but I’m lazy :wink: Most of the data I display on geckoboard comes from various external services. Some are API and some are just daily csv exports uploaded to a ftp. Some services may or may not expose the historical data through their API. When they do not, I could query every day and save that on my server, but as I said, I’m lazy and I also don’t trust myself to store data on my server. This would lead to thinking about all sort of tedious stuff such as backup, failure recovery and so on.

Do you think it would be possible to have the ability to simply add data to a dataset ?
For instance:
dataset.push({ date: ‘2016-01-01’, amount: 819, gross: 2457000 }, function(err) { … });

Then I would just have to schedule a daily run to push the new data without loosing the previous 399 points that I didn’t store anywhere.



Hey! Thanks so much for the feedback. Those three problems you highlighted in your bullet points are exactly some of the ones we’ve aimed to tackle with this feature :grin:

Accepting incremental updates like you described is definitely on our radar - and for the reasons you’ve described. We’re currently focussed on making sure the new API can replace the old one, so it’s not something that we’re working on in the immediate future, but it very much fits with our vision for the feature.


I like the concept of Datasets. I also vote for a non-destructive update of the dataset so that history can be accumulated.

Many of my widgets are HighCharts elements. Are datasets presently compatible with HighCharts widgets?



Hey @SteveG, thanks for sharing your thoughts. I agree, the non-desctructive update would be really useful :slight_smile:

We don’t have any plans to directly implement Highcharts into our data sets platform… but I’d be glad to hear about what kinds of visualizations you’re rendering with Highcharts, as we’re working to make our own visualizations more flexible and powerful.



We use Highcharts line, area, and column displays. We display multiple series per chart taking advantage of the hover feature to reveal the series’ values. We also enjoy Highcharts’ automatic axis scaling especially the ability to accept a Unix epoch for the x-axis and have the values displayed for humans. We also like those charts for their support of scrolling and zooming and the ability to click on the legend to hide/reveal a series. Finally, zooming automatically adjusts the granularity of the axes, a nice feature.

Thanks for asking!


Hey Steve,

Thanks for detailing that, that’s helpful to know! In regard to multi-series and hover values, Geckoboard’s built in line chart features this now, as well. As for the other features you mention, Highcharts would still be best for those things!

I was also curious if you customize your Highcharts colors?


Hey Jason,

I have been playing with this new feature for about 1-2h now.

The documentation is missing one data type: “number”. That’s a bit confusing :wink:
Fortunately it’s being shown in the code samples so I figured it out.

I have been able to push some dummy data (didn’t do the real binding yet, just sending some hand made array) and see how this can then be used from the datasets interface.

To help better understand, a little bit of background. I’m working at the mobile service of a web company, we are building the apps counterparts of the websites. We’ve got 4 main websites, thus there are 8 apps to monitor (iOS + google = 2 builds per website).

My first approach was to push data for all apps in the dataset.
Example of a ‘downloads’ dataset which contains daily download data for all apps:
{app: ‘app name 1’, store: ‘ios’, date: ‘2016-06-25’, qty: 473},
{app: ‘app name 1’, store: ‘ios’, date: ‘2016-06-26’, qty: 541},
{app: ‘app name 1’, store: ‘google-play’, date: ‘2016-06-25’, qty: 312},
{app: ‘app name 1’, store: ‘google-play’, date: ‘2016-06-26’, qty: 471},

{app: ‘app name 2’, store: ‘ios’, date: ‘2016-06-25’, qty: 249},
{app: ‘app name 2’, store: ‘ios’, date: ‘2016-06-26’, qty: 305}

My goal was to be able to build flexible widgets such as

  • linechart daily dl for app name + store name
  • latest date’s dl for app name + store name
  • linechart showing daily dl for all ios/android apps (1 line per app)
  • app1 sum of dl for both iOS & android

This didn’t really work as I couldn’t filter ‘app’ and ‘store’ in the UI. But this made me realize how important it is to think well how to build the datasets.

Do you think you could offer some guidance to help in that process ?



Hey Kevin,

Thanks for sharing your feedback, it’s really helpful! :slight_smile: We have planned in the coming months to make the kind of dataset (with features such as filtering) that you’ve shared work as it is, but we’re not quite there yet.

For the moment you’ll want to make your dataset similar to a spreadsheet, where each column is represented in each row, so that e.g. each row has fields like ‘app name 1 google-play quanity’, ‘app name 1 ios quantity’, ‘app name 2 google-play quantity’, ‘app name 2 ios quantity’, ‘app 1 total’, ‘app 2 total’, ‘total’, ‘date’.

Your solution is far more elegant and we’re definitely working to implement making that kind of dataset work :slight_smile: Thanks again for sharing, and I’d be glad to hear back if you give it a try further!


Your solution is exactly what I did :wink:
Unfortunately I did a “git checkout .” earlier today but I forgot that I didn’t set a branch for that work, so my sample is lost.
Not a big deal though, as it was basically copy paste from the documentation.
In any case, I don’t have any new widget to implement right now, so I won’t have a real life implementation of data sets in a near future.

I’m really happy to hear that you have plans to implement the data structure I tried first, this will definitely make this feature shine to its true potential. Right now it feels a bit limited IMO.


Hey Kevin, sorry you lost your work! Thanks again for your feedback, and I agree – filtering (and more) will be a really exciting feature to see :slight_smile: Let me know if you do have any further feedback, and we’ll keep you updated with our progress.


Thought it’d be good to share a quick update on the progress we’ve been making.

Yesterday, we added a sample dataset so that anyone can try out the new API without having to push data in first. More info, on our “What’s new” page:


Hi Ben, I just started looking at geckoboard today as a replacement for our current dashboard. I looked into datasets as a way to push incremental updates, but as I found out (and also now read here) it does not yet support that feature.

Is there any other widget/datasource that can support incremental updates?

I’m just evaluating right now, but so far i’m liking the geckoboard platform. If we did switch over I’d have to modify nodejs code anyway to support the gecko data structure. At that time I could add support for keeping my own history of data, but it would be nice if that were already built in someway.



Thanks for the message! As luck would have it we’re currently working on supporting incremental updates in the Datasets API - would you be interested in trying out a beta release of the feature? I’d hope to have something to show you late next week or early in the following week :smile:


Yes, definitely interested in testing the beta when available! Let me know when I can try it out :slight_smile:


Hey Ben. I was looking for the same feature too. Anyway to get beta access?


I’m pleased to say beta access to incremental updates is now available! If you send me a private message (click my name and hit ‘Message’) with your Geckoboard account name I’ll get the feature added and send over the documentation you need to get started :smile:


Hey Ben. I don’t see a way to private message you by clicking your name.


Hi James - sorry about that, I’ve attached a GIF to help out :smile: Let me know if you don’t get the same menu + options!


that button is not available to me. i have authenticated with my github account if that helps. might be only available to internal Discourse users