← All projects

JER-TEAM · 2024–2025 · Live

RoySpins

Front-end Developer

Live casino and sports product for JER-TEAM — lobby, promo landings, auth, cashier on Angular 18 + GraphQL.

Angular 18NgRxApollo GraphQLTypeScriptKeystoneJSngx-translatePWASumsub
RoySpins cover

Context

JER-TEAM casino with a royal brand. My role: Angular 18 frontend — lobby, locale routing, acquisition landings, auth, cashier, CMS-driven content — in the same family as Wazbee and Welle.

Problem

Many promo landings, multi-language routes, game discovery, payments, KYC, Casino ↔ Sport — without slowing the lobby or splitting into one-off apps.

Decisions & tradeoffs

  • Locale-prefixed routes (`/:lang/...`) instead of separate apps per market.
  • Apollo GraphQL + Keystone instead of ad-hoc REST for categories/promos — CMS and product data stay queryable.
  • Dedicated acquisition landing routes instead of hacking campaign pages into the lobby — campaigns ship without rewriting the shell.
  • NgRx for session/UI; Material/Bootstrap for dense forms — consistent dialogs across desktop and mobile.

What I built

  • Lobby UX: sidebar, welcome bonus hero carousel, category filters (Hot / Popular / Live / Roy’s Choice), search.
  • Casino / Sport mode toggle and lazy-loaded games discovery routes.
  • Auth flows: sign-up, sign-in, terms, confirmation, password reset, locale-aware routing.
  • Acquisition landings (welcome, wheel, AskGamblers, seasonal/campaign pages).
  • NgRx user/session/UI state; Apollo GraphQL for product data; Keystone-driven categories and promos.
  • Cashier-related UI: payment lists/modals, withdrawal requests; Sumsub KYC WebSDK.
  • PWA install via Angular service worker; Splide carousels; Material/Bootstrap forms and dialogs.

Outcome

Live at royspins.com with multi-locale routing and campaign landing coverage.