/ Case studies / SPP / Moje SPP portal

A customer portal for an energy supplier

Frontend of the 2025 redesign for the Meter Points module of Moje SPP — invoices, consumption, readings and contracts for almost 1.5 million customers.

ClientSPP, a.s.
Year2026
Project typeWeb application
Customer portal for an energy supplier — ukážka rozhrania 1
Customer portal for an energy supplier — ukážka rozhrania 2
About the client

SPP (Slovenský plynárenský priemysel, a.s.) is Slovakia's largest energy supplier, continuing a gas-industry history of more than 150 years. It serves nearly 1.5 million customers across every region of Slovakia and is the country's largest natural-gas retailer; besides gas it also supplies electricity and CNG/LNG. SPP has been 100% owned by the Slovak Republic since 2014.

Our role in the project

Moje SPP is the customer portal where customers manage all their meter points — addresses and the gas and/or electricity contracts tied to them. SPP's internal team designed the 2025 redesign, including a component design system; our brief was a faithful frontend implementation of the Meter Points module from the supplied Figma files — turning a finished design into a functional, responsive interface with every state and interaction working exactly as specified.

Challenges

Implementing the meter-points module's frontend, we tackled several key challenges.

  • More contracts, more people, one place

    A single meter point can carry both a gas and an electricity contract, and can belong to the customer or merely be shared with them — the interface had to make these states clear at a glance.

  • Three kinds of meter reading, one form wouldn't cut it

    Distribution readings, estimates and self-readings carry different legal weight — the distinction had to be clear enough that a customer couldn't accidentally submit an “invalid” reading.

  • Understandable consumption across years

    Turning years of meter readings into one legible consumption chart that quickly tells a customer whether they used more or less than last year.

  • Onboarding with no wasted steps

    A customer needs to clearly distinguish “I already have a contract, I just want to load it” from “I want a new contract” — both handled in two clicks from the same place.

Our approach

We turned the Meter Points module's Figma designs into a working frontend, with an emphasis on pixel-accurate fidelity to the design, responsiveness, and reliable behavior across every state and interaction. The module works as a central hub, where a point's detail view splits its data into five tabs with clearly separated actions for informational versus binding meter readings.

  • Faithful implementation of the Figma component design (colors, typography, states)
  • A meter-point list grouped by owner and by sharing status
  • A point detail view with five tabs: Invoices, Consumption & readings, Requests, Customer data, Point data
  • An interactive multi-year consumption chart with a filterable readings table
  • “My reading” (informational) kept separate from “Self-reading” (binding for billing)
  • Adding another point through a single modal — loading an existing contract or requesting a new one
Process
1

Brief and design analysis

We studied the supplied Figma files, the component design system and real meter-point states to prepare an implementation plan.

2

Component build-out

We turned the Figma design into reusable, responsive components that faithfully match the design.

3

Implementation and interactivity

We assembled the module on Bootstrap 5.3 + Sass with AlpineJS for interactivity, and a React/TypeScript application layer — including the consumption chart and modal flows.

4

Testing and rollout

We tested the flow for adding points and readings before a phased rollout to all customers.

Results

The delivered Meter Points frontend faithfully carries the prepared design into a working interface, giving SPP customers a single clear entry point to all their contracts, invoices and readings — regardless of how many addresses and products they have active, and across every device.

INTERFASE