Erland Wiencke
Written by Erland Wiencke
Published 2015-12-15

VG Hack Day 2015


On a cold Thursday in December, we held our annual Hack Day on the top floor of the VG building in Oslo. 30+ eager developers, designers and product people huddled together in front of the fireplace, to experiment, create and have fun with VG’s products and technology.

Surrounded by soda cans and bags of snacks, and entangled in wires of all kinds, we sat for 18 hours, churning out lines of magical code and golden pixels. Continue reading to see some of the things we did.

Entry image

Team React

Team React re-implemented  our news article and section templates using ReactJS and GraphQL, in order to showcase what is possible using existing data. They already had a sketch of a “clean” article template and used this as a starting point.

At the end of the day they had a rough, but working prototype, showing the potensial in our existing stack.


Team Ninja

This aptly named team, consisting of one(1) developer, decided to develop an application for OSX, using our weather forecast API. The main goal was to learn Swift, and at the end of the day he had a fully working prototype up and running.

Team Roc

VG has been working on a new way to efficiently create modern web applications that use the latest technologies, as an Open Source project. To make it easier for developers across the world to understand how to use it and what this is, we decided to develop an informative web application that describes how the framework should be created.

This web page is of course created using the same framework as the one it will describe as a way to also test it out and show how to use it.

The team consisted of three developers and one designer that together created a web application from scratch using this new framework during the course of a single day. The result was a best practice web application built with React that displays markdown documentation on how to use it and the benefits of it. Check it out now!

The application and more importantly the framework itself will be developed further, so expect to see more information about the Roc project on this blog in a not to distant future.

Team SSE

VG Direkte is a live news service by VG that, in its current form, polls data from an API. This polling runs every 15 seconds for each module(6-7 modules on a page). We felt it’s time to create a more real time experience for our users. The solution was to implement Server-sent events (SSE) for VG Direkte.

The approach consists of three logical parts: A server side daemon, a SSE-Hub and the SSE-client in the web app. The daemon listens to all events on the server side and then feeds the relevant ones into the SSEHub. The SSE hub, which is yet another one of our Open Source projects, publishes these events to a channel where all the clients use EventSource to listen for events, and publish them directly to the front end.

At the end of the day, the working prototype resulted in perceived instant updates in the client after changes on the server side(instead of 15 seconds intervals). The SSEHub handles tons of updates per second, with hundreds of thousands of listeners connected.

Team TV

This one man team made a simple AppleTV app based on VG’s Siste feed (latest news feed).

The app has are two modes, one listing the 48 latest articles and a “screensaver” mode showing each article for 10 seconds before moving to the next.

The team planned to show the actual articles as well, but tvOS has no web browser so it would need native rendering. Unfortunately VG’s datasource has a lot of html included, so they spent some time trying to cleaning it up, but didn’t get time to finish that too this time around.

Team Android

This awesome team of one wanted to find tasks that included Android front end development with backends we already had. These two projects suited that:

  1. Front page history. A feature added to the current app which allows the user to browse earlier published front pages of Mind you that the front page may change several times per minute(24/7), but VG takes a snapshot of it each 15th minute. That gives the user a resolution enough to make this feature interesting. For this experiment we let the user choose a given time of day between now and one week back with a resolution of one hour. The use case for this may be when the user has been travelling and not been able to read VG for a while.
  2. “VG Rett” interface. Or “crowd-source proof-reading” concept. VG is today receiving a lot of spelling corrections through the Facebook commenting system, which we’d rather see used for article content discussion than grammar. If we provide the user with a specific user interface for this purpose, maybe they’d stop using the comment field for that and we’d increase the grammatical quality of the articles. This service is already 90% complete for the web, and we just hooked onto it from the app. When the user long-clicks on a section in the article he is presented with a context menu where he may choose “Correct”. When clicking this he is given a form where he may send in the corrected text of the section. The journalists may then accept or decline those corrections in a separate web interface.

Team Me

Team Me looked at creating “” – a personalised reading experience. We established (scheduled) jobs that moves data from the central analytics cloud on Amazon to a queue in our infrastructure, running on Kafka.

The idea was to use the log history for identified users, aggregate their reading patterns, and create a personal profile. Statistical data would be used to show information about the reader’s reading behavior.

The team used RethinkDB in addition to Kafka.

They didn’t get to the stage of creating a front end, since the API took most of their time this time.

The whole rig is “dockerified“, running on Marathon.


And amazingly enough, everyone worked using the same laptop. What a team!

Written by Erland Wiencke
Published 2015-12-15