CashPocket — Rewards-Based Experiential Marketing Platform
• Role
- CTO of OnLive Plus (온라이브플러스) — led the end-to-end design, development, and operation of CashPocket, a rewards-based experiential marketing platform connecting testers (체험단), advertisers, and administrators.
- Owned the full product stack: web platform, mobile app (iOS/Android), backend infrastructure, payments, and DevOps.
1.1 Product Overview
- A three-sided marketplace where testers join campaigns, submit reviews, and earn redeemable points; advertisers register campaigns and select applicants; admins approve and monitor the entire platform.
- Campaign lifecycle management:
pending_approval → active → recruitment_closed → closed, with applicant states from APPLIED through SELECTED_PENDING, ACTIVE, REVIEW, CLIENT_APPROVED, to COMPLETED — including automatic status transitions driven by scheduled jobs.
1.2 Architecture & Stack
- Frontend: Next.js (App Router) + React 19, TypeScript, TailwindCSS + Shadcn/UI, TanStack Query, Framer Motion.
- Backend: Custom Node HTTP server wrapping Next.js with Prisma on MongoDB (ReplicaSet), JWT-based auth, and PM2 cluster deployment — cron jobs are pinned to a single instance to prevent duplicate payment processing and duplicate KakaoTalk notifications.
- Observability: Sentry across client / server / edge runtimes.
1.3 Immutable Point Ledger
- Designed an immutable ledger-based point system: every point change is recorded as an append-only ledger entry, balances are computed from the ledger rather than stored, and points auto-expire after 180 days via cron.
- This design guarantees auditability and consistency for cash-convertible points — a core trust requirement for a rewards platform handling real payouts.
1.4 Social Index & Tier System
- Built an Activity Index (recent 90-day posting activity on blogs/Instagram) and an Influence Score (followers, likes, comments via Facebook Graph API; Naver blog neighbor/comment scraping), normalized on a log scale into 100-point metrics with A–F grades.
- Automated BRONZE → SILVER → GOLD → PLATINUM user-tier transitions based on rolling 180-day activity.
1.5 External Integrations
- Payments & payouts: TossPayments, bank-account verification via PopBill (40+ banks).
- Messaging: KakaoTalk 알림톡 / SMS / email via PopBill, SendGrid, and Naver Cloud.
- Commerce & logistics: Daou mobile coupon issuance, point-based shopping mall, and parcel tracking via SweetTracker.
- Infra: AWS S3 + CloudFront media pipeline, Naver social login.
• CashPocket Mobile App (iOS / Android)
2.1 App Overview
- Shipped the CashPocket app to both app stores (
com.onliveplus.cashpocket.app / com.onliveplus.rewards) with React Native / Expo + TypeScript, built and distributed through EAS. - Campaign discovery with platform/type/category filters, visit-date scheduling, delivery tracking, and photo/video proof submission — fully integrated with the web platform’s campaign workflow.
2.2 Reward & Engagement Features
- Daily missions: O/X quizzes, product quizzes, balance games, and external click missions with Coupang affiliate integration.
- Point games: dice, slot (lucky wheel), and ladder games with a daily game-token system and server-authoritative reward logic.
- Point economy in-app: full transaction history, point shopping (coupons across 10+ categories), and cash withdrawal to verified bank accounts (₩10,000–₩500,000).
- Auth: email + social login (Naver, Kakao, Apple Sign-In) with automatic JWT refresh and deep-link email verification.
- Push & analytics: Firebase Cloud Messaging, Crashlytics, Analytics, and Sentry.
- UX: responsive 1–2 column layouts, Lottie animations, Skia-based graphics, biometric local authentication.
• Impact
- Took the platform from zero to a production service operating web + iOS + Android with real-money point payouts, automated campaign operations, and multi-channel notifications.
- Established engineering foundations as CTO: CI/CD, E2E testing (Playwright/Jest), coverage gating, staged deployment with PM2, and Sentry-based incident response.
#CTO #Full-Stack #Next.js #React Native #MongoDB #Payments #Mobile App