Main Technologies Used


Python it’s the main programming language used by the server side application (web admin, API, controller, workers).

In the past OpenWISP was built in Ruby On Rails, but we later switched to Python because it’s much more suited to networking and it has a wider pool of potential contributors.


Django is one of the most popular web frameworks for Python language.

It is used extensively in our modules. Django allows rapid development and has a very rich ecosystem.

Node.js and React JS

NodeJS is javascript runtime to build JS based applications.

In OpenWISP it’s used as a base for frontend applications along with React, like openwisp-wifi-login-pages.


We use Ansible to provide an automated procedure to deploy OpenWISP and to compile custom OpenWRT images for different organizations.


We use docker in docker-openwisp, which aims to ease the deployment of OpenWISP in a containerized infrastructure.


NetJSON is a data interchange format based on JSON designed to ease the development of software tools for computer networks.


OpenWRT is an linux distribution designed for embedded systems, routers and networking in general.

It has a very skilled community and it is used as a base by many hardware vendors (Technicolor, Ubiquiti Networks, Linksys, Teltonika and many others).


Lua is a lightweight, multi-paradigm programming language designed primarily for embedded systems and clients.

Lua is cross-platform, since the interpreter is written in ANSI C, and has a relatively simple C API.

It is the official scripting language of OpenWRT.