NRK Open source

The Norwegian Broadcasting Corporation uses open source in many of our products and services. We want to contribute to this ecosystem. Here are some of our projects.

Contributing NRK on Github Yr on Github

Featured projects

Terraform Registry

This is an implementation of the Terraform registry protocol used to host a private Terraform registry.


Sofie is a web-based TV automation system for studios and live shows, used in daily live TV news productions at NRK since September 2018.


A library for Node.js used to interface with the Blackmagic Atem video switchers.


Isomorphic fetch with retry for NodeJS and the browser.


Nodecache-as-promised is a production ready in-memory-cache for NodeJs. It provides middlewares for distributed expiry and persistence in Redis.


Native Bridge is a lightweight and efficient bridge between webview and native app. It's primary use case is to share state between native apps and javascript in webviews.


Elasticsearch dictionaries for Bokmål/Nynorsk. Use with Elasticsearch to support cross-language search. Contains code for generating your own dictionaries.


JSON diff tool for .NET


XUnit-like asserts for text strings with JSON content in .NET.


A configurable javascript dashboard with a simple plugin architecture.

Yr Weather symbols

Beautifully crafted weather symbols for the new Yr.


The core CSS layer used to quickly build layout in NRK web services.


Accessible and lightweight javascript components.


Simple natural language date parsing in javascript.


Vector icon kit used in NRK for web services and native apps.


Module for concatenating SVG files into JavaScript for better browser compability and cross-domain support.

MagicMirror² Module: YrNow

A module for MagicMirror² which displays data from Yr's Nowcast. Nowcast data is only available for some Norwegian locations covered by the weather radar.

MagicMirror² Module: MMM-Slack

A module integrating Slack in MagicMirror². It displays messages from the a given Slack channel.

Express-client for the browser

A subset of express.js functionality for use in browser environments, including middleware, routing, mounting, and request/response.

Contributing to NRK

Contributing is easy: Fork the repository, follow the code guidelines and best practices for that project, make your change and send a pull request on Github! Even though we are a Norwegian organization we do stress that contributers communicate in English. We hope that our code is beneficial to people outside of Norway. Below are some best practices when working with projects on Github. These are adapted from the official Github documentation.


The LICENSE file defines the license for the project. An open source project’s license informs users what they can and can’t do (e.g., use, modify, redistribute), and contributors, what they are allowing others to do. There are many ways to license an open source project, you can read more about what each license means at At NRK we mainly use two licenses:

Create an issue

If you find a bug in a project you’re using (and you don’t know how to fix it), have trouble following the documentation or have a question about the project – create an issue! There’s nothing to it and whatever issue you’re having, you’re likely not the only one, so others will find your issue helpful too. For more information on how issues work, check out the official Github issues guide.

Pull Request Pro Tips
Open Pull Requests

Once you’ve opened a pull request a discussion will start around your proposed changes. Other contributors and users may chime in, but ultimately the decision is made by the maintainer(s). You may be asked to make some changes to your pull request, if so, add more commits to your branch and push them – they’ll automatically go into the existing pull request.