Stembureau app: E-democracy tool to run smoother elections.

Elements teamed up with long-time partner KPN to develop StembureauApp (PollingStationApp), a scalable and multi-platform solution to assist and support polling station staff before and during the elections in the Netherlands. It is now used by sixteen Dutch municipalities at over 2.600 polling stations.

Python/Django backend, Kubernetes, React frontend, native iOS en native Android development
Release date
2018 - heden

Elements, several municipalities and KPN teamed up to build the StembureauApp. It consists of a progressive web application (PWA), a lightweight mobile app for iPad and Android tablets and a fully scalable back-end built in Python/Django running in a Kubernetes cluster. With StembureauApp, the chairman from every polling station can now quickly validate voting passes by simply scanning the printed QR code, engage in a direct chat with the elections’ support desk, complete checklists and perform a quick vote count at the end of the election day.


2600 polling stations in 18 municipalities

De StembureauApp is used in municipalities like Rotterdam, Den Haag, Utrecht, Zoetermeer en Eindhoven.

Efficient processing of votes

By scanning the QR code we realised a higher quality of counting and quicker published turnout.

Our approach

StembureauApp in action

The use of the StembureauApp for the elections in 2018 and 2019 were a huge success. Across the participating municipalities, the app was used in more than 1,300 polling stations, where almost one million voters had their voting passes scanned.

Due to Corona and the accompanying measures, the elections of 2021 and 2022 lasted three days instead of one day. This gave people more time to safely go to the polls. As a result, the StembureauApp had to undergo many changes quickly, as the back-end structure of the app was built with the idea that the elections would only last one day. It was a challenge to quickly adapt the complex technical structure of the app. By generalizing the database, the StembureauApp can now be used for elections lasting one or more days.

Also in 2023, the StembureauApp will be used again during the elections for the Provincial States and Waterschappen

No items found.
No items found.

A new, safer and fully scalable back-end

We rewrote the legacy back-end application, built in Java and Oracle, from scratch in Python/Django with a PostgreSQL database. A lot of effort was put into making the application scalable by making it containerized and having it run in a Kubernetes cluster. New lightweight native apps for iOS and Android were built and the React front-end was updated.

As we were rebuilding the back-end application from the ground up, we could adhere to the principles of security by design by implementing security measures in the application and infrastructure from day one.

Hosting moved from Rotterdam’s premises to AppFactory, KPN’s premium continuous delivery cloud platform.

No items found.
No items found.

End Result

The key accomplishment of this project is the transformation from a non-scalable, single-tenancy back-end and separate, tailor made mobile apps for each municipality to a horizontally scalable, multitenancy back-end and generic, multi-platform mobile app. StembureauApp is now ready for deployment of any number of new participating municipalities at a click of a button.

Participating municipalities are very happy with the more efficient voting process. They experience less mistakes and can share the number of voters much quicker.