OPAP S.A. – OPAP Play Betting Machines UI

OPAP S.A. case study — Rebuilt the retail betting machine UI and migrated it from Vue 2 to Vue 3 inside Electron

Client:

OPAP S.A.

Date:

2024–2025

Duration:

18 months
OPAP S.A. – OPAP Play Betting Machines UI
A full rewrite of the OPAP Play Betting Machines UI, the desktop application running in OPAP stores across Greece. It combined a complete UI rebuild with a controlled frontend migration inside Electron on a system that takes real money all day.

About the client

OPAP S.A. is the largest gaming and betting organisation in Greece, with a nationwide retail network and digital platforms. The systems in its stores are mission-critical in the literal sense: when they stop, the shop stops.

Project Overview

This is the interface on the betting machines in OPAP retail stores. It gets used constantly, by a lot of people, in a shop, with a queue behind them. Nobody using it is feeling patient.The visual rebuild was the visible half. The other half was structural. Years of accumulated technical debt had made every new feature slower to build than the one before it, and the codebase had reached the point where that cost was obvious to everyone. The objective was a modular frontend architecture an enterprise system can actually live in.Modernising the stack had to happen without a single day of disruption. Better component structure, real separation of concerns, predictable data handling, all inside an Electron desktop application deployed to physical stores where you cannot simply push a fix and refresh.Every architectural decision was weighed against stability. This is a system where being right matters more than being modern, and the migration only earned its place by leaving the machines more reliable than it found them.

The Challenge

Rewriting the UI of a live business-critical system is the hard version of this job. High traffic, a retail environment, and performance and reliability that are not open to negotiation.The framework migration ran on top of that, inside Electron. It had to be incremental, planned in stages, and compatible at every step with existing functionality, the hardware in the stores, and how people actually use the machines. A big-bang rewrite was never an option, and it should not have been.

My Contribution

I was deep in the frontend redevelopment, on both day-to-day features and the architectural direction. That meant rebuilding large parts of the interface and giving the codebase a structure new work could be added to safely.The framework migration inside the Electron desktop application is the piece I am most pleased with. I reorganised components and paid down debt incrementally while the machines in stores kept taking bets.I worked closely with the backend and product teams, which on a system like this mostly means agreeing precisely what a betting flow does before anyone builds it.

Technology Stack

  • Vue.js (versions 2 and 3), TypeScript, Electron, component-based frontend architecture, enterprise-scale UI systems, high-traffic retail application constraints
Tags
Categories

Read More

Tell me about your project and get a price, timeline and project scope by email — no call needed.
Like what you see? Let’s work together

    How it works
    1. Tell me about your project below.
    2. I'll email you a few quick questions (about 3 minutes).
    3. You get a price, timeline and project scope by email — no call.
    A link helps me scope your project faster.

    Complete the short questionnaire to receive your indicative price, timeline and scope by email.

    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.