Mushu Documentation

Mushu is a multi-tenant authentication and push notification platform. It provides Apple Sign In for iOS and web apps, plus APNs push notifications with simple REST APIs.

Core Concepts

Authentication (mushu-auth)

Mushu Auth provides Apple Sign In for your apps. Users authenticate once and get JWT tokens that work across your iOS app and any web services. Key features:

  • Apple Sign In - Native iOS and Web OAuth flows
  • Google Sign In - Native mobile, One Tap, and Web OAuth
  • Facebook Sign In - Web OAuth flow
  • Organizations - Group users into teams with role-based access
  • Sessions - Automatic token refresh and multi-device support
  • Connections - Link external services (Facebook) to orgs with auto-refreshing tokens
  • Web SPA Guide - Integrate auth into React and other browser apps

Push Notifications (mushu-notify)

Mushu Notify handles APNs push notifications with multi-tenant support. Register device tokens, send individual or bulk pushes, all with simple API calls:

  • Tenants - Each iOS app gets its own tenant with APNs credentials
  • Device Registration - Associate device tokens with user IDs
  • Push Sending - Send to individual users or bulk send to many
  • API Keys - Generate keys for server-to-server calls

Payments (mushu-pay)

Mushu Pay provides prepaid wallet with Stripe integration. No webhook code needed - we handle payment processing and wallet deposits:

  • Org Billing - Connect your Stripe account
  • Products - Define wallet packages with prices
  • Wallet - Track balances per organization (in micro-dollars)
  • Transactions - Full audit trail of deposits and charges

Media Hosting (mushu-media)

Mushu Media provides image and video hosting with automatic processing. Direct uploads, automatic image resizing, and optimized video transcoding:

  • Direct Uploads - Presigned URLs for secure uploads
  • Image Variants - Automatic thumbnail, small, medium, large
  • Video Transcoding - Optimized MP4 + WebM with thumbnails
  • Zero Egress - No bandwidth charges with Cloudflare R2

Utilities

Stateless utility APIs:

  • Geo - Geohash encoding, distance calculations, radius search

Engagement Services

Optional services for building engaging user experiences:

  • Streaks - Daily activity tracking with timezone-aware streak calculation
  • Leaderboards - Boards, scores, rankings with time windows and anti-cheat

Architecture

Mushu consists of the following services:

Core Services

Service URL Purpose
mushu-auth auth.mushucorp.com Authentication, users, organizations
mushu-notify notify.mushucorp.com Push notifications, devices, tenants
mushu-pay pay.mushucorp.com Payments, wallet, Stripe integration
mushu-media media.mushucorp.com Media hosting, images, videos

Utilities

Service URL Purpose
mushu-geo geo.mushucorp.com Geospatial utilities (no auth required)

Engagement Services

Service URL Purpose
mushu-streaks streaks.mushucorp.com Activity tracking and streaks
mushu-leaderboards leaderboards.mushucorp.com Rankings and scoreboards

Infrastructure

Service URL Purpose
mushu-admin admin.mushucorp.com Web dashboard (this site)

Next Steps