Case study · Webko

PEV Deals: an Angular and Spring Boot deals platform

PEV Deals is a multi-language catalogue of discounts on electric unicycles, e-bikes and e-scooters. Webko builds and runs all three parts of it: a prerendered Angular storefront, an Angular admin panel and a Spring Boot API on PostgreSQL.

Project
Deals and promo-code platform for personal electric vehicles (EUC, e-bikes, e-scooters, onewheels, electric skateboards)
Our role
Full-stack build from a Figma design to production: storefront, admin panel, API, deployment
Scope
Three applications: public storefront, admin panel, Spring Boot back end
Main stack
Angular 22, Java 25, Spring Boot 4, PostgreSQL 17
Languages
6 languages, with offers and currency by region
Started
May 2026, in production and growing

Visit pevdeals.com →

The task

PEV Deals helps riders find verified discounts on electric unicycles, e-bikes, e-scooters, onewheels and electric skateboards. The business needs a fast catalogue that search engines can read, that works in several languages and regions, and a back office where the team manages offers, sellers, articles and translations without a developer.

Product pages, buying guides and reviews have to rank in search, load quickly on mobile and keep working when the API is slow or a request fails.

What we build

A prerendered Angular storefront

Angular 22 with standalone components, signals and no zone.js. The production build prerenders every route to static HTML and hydrates it incrementally (below-the-fold blocks load with @defer), so crawlers and first-time visitors get content immediately.

A catalogue that lives in the URL

Category, brand, price, weight, speed, range, seller and rating filters, sorting and search with synonyms are all URL state, so every filtered view can be shared. Data arrives through httpResource, keyed to the selected region and language.

Regions, six languages and technical SEO

Language-prefixed routes, per-region offers and currency, hreflang and canonical tags, JSON-LD, a sitemap whose lastmod dates come from the API, and a 301 from the old pevdeals.eu domain. A page goes to noindex only when the API confirms the record is gone, never because of a failed request.

A Spring Boot API with two surfaces

Java 25 and Spring Boot 4 on PostgreSQL 17: an authenticated admin surface and a public site surface, session-based authentication, Liquibase migrations for every schema change, Cloudinary for images and Mailgun for email.

An admin panel with AI-assisted translation

A separate Angular panel (Signal Forms, Angular Material) for offers, products, sellers, articles, FAQ, discount requests and review moderation. Content translations are stored per field and language, and articles and FAQ entries can be translated through the Anthropic API; long article text stays manual.

Content management from a chat client

The back end exposes an MCP server, so content can be managed from a chat client. Deleting is never exposed through it, and every change made this way is written to the audit log.

Ranking logic on the server

Each offer gets an internal 3.0 to 5.0 rating, calculated on the server and recalculated after every change and on startup, so the scoring never depends on the browser.

The storefront

PEV Deals home page with a featured deal and category cards
Home page: featured deals and category cards.
PEV Deals catalogue with category, brand, price, weight, speed and range filters
Catalogue with URL-driven filters, sorting and search.
PEV Deals product page with specifications, price and the discount code button
Product page: specifications, regional price and the discount code request.
PEV Deals blog with reviews, guides and safety articles
Blog: reviews, guides and safety articles.

Technology

Storefront
Angular 22 (standalone, zoneless, signals, OnPush), httpResource, NgOptimizedImage, SSR prerendering
Admin panel
Angular 22, Signal Forms, Angular Material, Vitest with coverage thresholds
Back end
Java 25, Spring Boot 4, Spring Data JPA, Spring Security (sessions), springdoc OpenAPI
Data and media
PostgreSQL 17, Liquibase, Cloudinary, Mailgun
AI and operations
Anthropic API (translation), MCP server, Sentry, Heroku
Quality
Vitest, angular-eslint, Checkstyle, PMD, SpotBugs

Result

  • 78 active offers from 14 brands — in a catalogue that is searchable and filterable in six languages.
  • 68 discount codes issued to 47 clients — with an average discount of 21%.
  • One team owns the whole chain — from the database schema to the storefront, so a change to an offer, a translation or a filter ships without hand-offs.
  • Checked on every change — 187 unit tests in the storefront, lint rules that ban legacy Angular APIs, and static analysis in the Java build.

Figures are from the site's About page and the project documentation, as of 15 October 2026.

More case studies

  • Terasa28 — A seaside apartment rental site with a guest account, a booking calendar and an admin panel for approving requests.
  • Intela — Reusable Angular components, module business logic and report pages for a tax-management portal inside a global corporation.

See all projects

Planning a similar platform?

Describe the task in a few lines and we will reply with an estimate and a proposed way to start.

Contact Webko