Back to projects

Penal

Collaboration
Period: 2024 - present
Role: Developer of app and backend

Penal is a football pool app I make together with Arjan van Hulzen. You predict the results of a competition, create a pool and invite friends, family or colleagues with a single link.

The app started with EURO 2024, with about 10,000 participants, and was there for the 2026 World Cup as well. Since the summer of 2026 it runs on competitions. The 2026/27 season has ten of them, including the Eredivisie, the Premier League, La Liga, the Bundesliga and the Champions League. In August 2026 it held 5,610 pools, with almost 2.5 million predictions between them.

Each pool picks a game mode. Classic is one leaderboard across the whole season. Period Hunt splits the season into periods that each produce their own winner, with an autumn champion halfway. There are doublers and bonus questions too. The app is free. A pool can be upgraded once to Pro or Club, with statistics, its own colors and departments.

The app is built with React Native and is in the stores in eleven languages. The backend runs at Hetzner behind a load balancer, with MariaDB, Dragonfly and Socket.io for the live scores.

Screens

Home screen with the matches of the current round
Entering predictions per match day
Standings of a pool
Every participant's prediction after the match

Features

  • Ten competitions in the 2026/27 season
  • Game modes Classic and Period Hunt
  • Doublers and bonus questions
  • Live scores via Socket.io
  • Pools with departments and their own colors (Pro and Club)
  • Push notification when you still have to predict
  • In eleven languages

Technologies

  • React Native
  • TypeScript
  • Node.js
  • Socket.io
  • MariaDB
  • Express.js
  • Docker