Build a Santa tracker from scratch with Warp 10 and Discovery. Technics for asset tracking with a real-time monitoring dashboard.

Thanks to Warp 10 and Discovery, we will show you how to build a Santa tracker. Here are some technics for asset tracking with a real-time monitoring dashboard.

Like every year, on Christmas Eve, my children are totally excited and wait for Santa. In order to focus them on something, I used to cast either Google Santa Tracker or the NORAD's one. There are sadly no public API, but, Google provides an undocumented one: https://storage.googleapis.com/santa/route-v1/santa_en.json
The structure is pretty simple and looks like this:
Well, it is easy to parse.
The data parser
We will produce 2 series:
- The Santa track itself with its location across the world, indexed by a timestamp. We will use the number of delivered gifts as value.
- The Santa quotes, indexed with a timestamp and with a serialized JSON string corresponding to the quote as value (yes, it is ugly).
You will need NodeJS for this sample, but feel free to use the language you want.
Create a new file called index.js
:
And run it:
The result is:
Go to https://sandbox.senx.io/, grab your tokens.
Learn more about the Warp 10 Sandbox |
And upload data:
You can verify data with WarpStudio:
https://snapshot.senx.io/0005d229eb82c16c-0-1-36f75e8e7d976759

Discovery
Now, let's build the dashboard.
Learn more about Discovery and how to build your own dynamic dashboard. |
The first step is to create a new file called index.html
:
For security purposes, you need to serve it with a real HTTP server to open it with your browser. For example:
And open http://127.0.0.1:8083
Dashboard Tiles
The first thing we want to do is to display the map with the Santa tracking.
That's it.
But, wait, what we want is to focus on children during Christmas Eve, so we need to show some animation.
The main idea is to have a timer tile which sends the current time with the event mechanism. Then the map tile will display the Santa track from the very first point till this date.
This dataset is 2018 one, so we have to cheat with the dates by time-shifting them. The second issue is that the Santa delivery process lasts 24 hours, so, it will be handy during the development process to scale down the global duration of the delivery.
Read more about how to create a custom tile for Discovery. |
Now we pass the starting date and the dataset as a dashboard variable:

And then, add the number of delivered gifts:
The delivery progress:
Now, it could be fun to display the funny quotes and pictures stored in santa.stream
, the latest one, of course, depending on the current time.
To do so, we have to add a new variable:
And here is the most difficult part: display a quote or a picture according to the last value of santa.stream
relatively to $start
.

Hey dear elves, please, pimp my dashboard
With Discovery, it is easy to add some swag.
Global CSS styles:
Dashboard specific swag:
And for each tile (except the map)
For the map, it is a bit more tricky:
Discover more dataviz tutorials with Warp 10 |

Going further
You can now change the scale factor, the time shift amount, colors, and background to fit your needs for Christmas Eve and cast it on your TV.
In the real world, you can use those technics for asset tracking with a real-time monitoring dashboard.
The entire SenX team and I wish you a Merry Christmas.
Ho Ho Ho!
More articles about Discovery:
- Server monitoring with Warp 10 and Telegraf
- Covid Tracker built with Warp 10 and Discovery
- Using Warp 10 as a map tile server for Discovery
Full Discovery documentation is available here.
Read more
Working with GEOSHAPEs: code contest!
Discovery Tips&Tricks #5 - Points Of Interest
Truly Dynamic Dashboards as Code

Senior Software Engineer