← All projects

Freelance · 2025–Present · Live

KukiMuki

Senior Front-end Developer

Live casino and sportsbook frontend — lobby, cashier, KYC, and loyalty on Angular 21.

Angular 21NgRxSignalsSSRTypeScriptPaymentIQPayload CMSSocket.IO
KukiMuki cover

Context

Production iGaming product (casino + sportsbook). Built with a wider product org (backend and other departments); on frontend we were three — one lead and two senior front-end developers — I am one of the seniors. Scope: app shell, core product flows, and integrations through production releases. Sister brand ZenCasino shares the same architecture (see that case for brand parity).

Problem

Wide product surface — lobby, game launch, sportsbook, deposits/withdrawals, KYC, missions, shop, CMS landings — must stay fast on first load, support light/dark, and stay maintainable while features keep landing.

Decisions & tradeoffs

  • Angular 21 zoneless + OnPush instead of default Zone.js change detection — less overhead on a busy SPA.
  • NgRx for shared domain state, Signals for local UI — instead of putting account/cashier into component-only state that doesn’t travel across routes.
  • Selective SSR (lobby/marketing server-rendered; account/cashier/game client) instead of SSR-everything — SEO where it pays off, less complexity on auth-heavy screens.
  • Orchestrator facades over store + HTTP instead of fat page components — payment/auth/missions logic stays in one place.
  • Payload CMS instead of Strapi for promo/landing content — TypeScript-native CMS, clearer content models for campaign landings without FE releases.
  • Two brand repos (Kuki / Zen) instead of one multi-tenant build — faster brand shipping; cost is explicit feature parity work.

What I built

  • Angular 21 app shell: standalone routes, auth guards, Express SSR with incremental hydration, PWA service worker, shared UI kit.
  • Lobby and game launch: category filters, game grids, Casino / Live / Sport modes, light/dark theme with CDN brand assets.
  • Auth and account: schema-driven forms, session/interceptors, profile/security/limits, Sumsub KYC WebSDK.
  • Cashier: deposit/withdraw flows, PaymentIQ embed, crypto deposit UI, NgRx cashier state.
  • Loyalty and promotions: missions (HTTP + Socket.IO), shop, calendar, Payload CMS landings (replacing a Strapi-style CMS path); Transloco i18n, Sentry, SEO meta sync.
  • Ongoing client delivery and production releases on the live product.

Outcome

Live production frontend at kukimuki.com — lobby through cashier, account, KYC, and loyalty; multi-locale i18n; payments integrated; ongoing feature releases.