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
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




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.
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