Кейс · Webko
PEV Deals: платформа скидок на Angular и Spring Boot
PEV Deals — многоязычный каталог скидок на электромоноколёса, электровелосипеды и электросамокаты. Webko делает и ведёт все три его части: Angular-витрину с пререндерингом, админ-панель на Angular и Spring Boot API на PostgreSQL.
- Проект
- Платформа скидок и промокодов на персональный электротранспорт (EUC, электровелосипеды, электросамокаты, моноколёса, электроскейтборды)
- Наша роль
- Полный цикл от дизайна в Figma до продакшна: витрина, админ-панель, API, деплой
- Объём
- Три приложения: публичная витрина, админ-панель, серверная часть на Spring Boot
- Основной стек
- Angular 22, Java 25, Spring Boot 4, PostgreSQL 17
- Языки
- 6 языков, предложения и валюта по регионам
- Старт
- май 2026, работает в продакшне и развивается
Задача
PEV Deals помогает райдерам находить проверенные скидки на электромоноколёса, электровелосипеды, электросамокаты и электроскейтборды. Бизнесу нужен быстрый каталог, понятный поисковым системам, работающий на нескольких языках и в разных регионах, и бэк-офис, в котором команда сама управляет предложениями, продавцами, статьями и переводами без разработчика.
Страницы товаров, руководства по выбору и обзоры должны ранжироваться в поиске, быстро грузиться на мобильных устройствах и продолжать работать, когда API отвечает медленно или запрос не удался.
Что мы делаем
Angular-витрина с пререндерингом
Angular 22 на standalone-компонентах и сигналах, без zone.js. Продакшн-сборка пререндерит каждый маршрут в статический HTML и гидрирует его постепенно (блоки ниже первого экрана грузятся через @defer), поэтому поисковые роботы и новые посетители сразу получают контент.
Каталог, состояние которого хранится в URL
Фильтры по категории, бренду, цене, весу, скорости, запасу хода, продавцу и рейтингу, сортировка и поиск с синонимами — это состояние URL, поэтому любым отфильтрованным видом можно поделиться ссылкой. Данные приходят через httpResource в зависимости от выбранного региона и языка.
Регионы, шесть языков и техническое SEO
Маршруты с языковым префиксом, предложения и валюта по регионам, теги hreflang и canonical, JSON-LD, sitemap с датами lastmod из API и 301-редирект со старого домена pevdeals.eu. Страница получает noindex только тогда, когда API подтверждает, что записи больше нет, а не из-за неудавшегося запроса.
Spring Boot API с двумя поверхностями
Java 25 и Spring Boot 4 на PostgreSQL 17: защищённая админская поверхность и публичная поверхность для сайта, аутентификация на сессиях, любые изменения схемы — через миграции Liquibase, изображения в Cloudinary, письма через Mailgun.
Админ-панель с переводом при помощи ИИ
Отдельная Angular-панель (Signal Forms, Angular Material) для предложений, товаров, продавцов, статей, FAQ, запросов на скидки и модерации отзывов. Переводы контента хранятся по полям и языкам, статьи и записи FAQ можно переводить через Anthropic API; длинный текст статей переводится вручную.
Управление контентом из чат-клиента
Серверная часть предоставляет MCP-сервер, поэтому контентом можно управлять из чат-клиента. Удаление через него недоступно, а каждое изменение, сделанное таким способом, попадает в журнал аудита.
Логика рейтинга на сервере
Каждое предложение получает внутренний рейтинг от 3,0 до 5,0, который считается на сервере и пересчитывается после каждого изменения и при старте, поэтому оценка никогда не зависит от браузера.
Витрина




Технологии
- Витрина
- Angular 22 (standalone, zoneless, сигналы, OnPush), httpResource, NgOptimizedImage, SSR-пререндеринг
- Админ-панель
- Angular 22, Signal Forms, Angular Material, Vitest с порогами покрытия
- Серверная часть
- Java 25, Spring Boot 4, Spring Data JPA, Spring Security (сессии), springdoc OpenAPI
- Данные и медиа
- PostgreSQL 17, Liquibase, Cloudinary, Mailgun
- ИИ и эксплуатация
- Anthropic API (перевод), MCP-сервер, Sentry, Heroku
- Качество
- Vitest, angular-eslint, Checkstyle, PMD, SpotBugs
Результат
- 78 активных предложений от 14 брендов — в каталоге с поиском и фильтрами на шести языках.
- 68 промокодов выдано 47 клиентам — средняя скидка составляет 21 %.
- Вся цепочка у одной команды — от схемы базы данных до витрины, поэтому правка предложения, перевода или фильтра выходит без передачи между исполнителями.
- Проверка при каждом изменении — 187 unit-тестов в витрине, lint-правила, запрещающие устаревшие API Angular, и статический анализ в Java-сборке.
Цифры взяты со страницы «О нас» на сайте и из документации проекта, по состоянию на 15 октября 2026 года.
Другие кейсы
- Terasa28 — Сайт аренды апартаментов у моря с аккаунтом гостя, календарём бронирования и админ-панелью для подтверждения заявок.
- Intela — Переиспользуемые компоненты Angular, бизнес-логика модулей и страницы отчётов для портала управления налогами в международной корпорации.
Планируете похожую платформу?
Опишите задачу в нескольких строках, и мы ответим оценкой и предложением, как начать.
Связаться с Webko