Project / streamingin progress
Fast OTT Player
Multi-platform media player: Fastify API, web dashboard, admin, tvOS, iOS and Tizen apps
Fast OTT Player is a bring-your-own-playlist media player and middleware platform: users add their own M3U or Xtream-format sources, and the platform provides no content. I'm the sole engineer across a Fastify/MongoDB/Redis backend with BullMQ workers, a Next.js site and dashboard (EN/FR/AR with RTL), a React admin panel, SwiftUI tvOS and iOS apps, and a Samsung Tizen TV app. It is in development, with the iOS app packaged for TestFlight against a staging API.
Highlights
- 01Fastify 5 API with about 100 endpoints and 10 BullMQ queues for playlist parsing, merging and deduplication, refresh and expiry jobs, run as separate API and worker containers; 41 Vitest unit-test files cover auth, passkeys, entitlements, pricing, webhooks and device sessions.
- 02Passkey (WebAuthn) and Sign in with Apple, JWT with refresh-token rotation stored in Redis, and PIN-based TV device activation.
- 03Payments through Stripe, PayPal, Apple IAP and Dodo Payments, plus USDT checkout on TRON and BNB Chain: deposit addresses come from an HD-wallet pool and chain-monitor workers confirm each payment.
- 04Reseller system: admins invite resellers, top up credits and freeze accounts; resellers get their own API to create, extend, suspend and trial client lines. Managed from a React admin panel with dashboards and an audit log.
- 05Web dashboard with an EPG TV-guide grid, drag-and-drop channel ordering, TV PIN activation and a QR crypto checkout.
- 06SwiftUI tvOS app (VLCKit playback, stream stats, speed test, profiles, cached catalog for instant launches, Top Shelf) and an iOS app with passkeys, EPG and a scripted TestFlight build; Samsung Tizen TV client with a custom spatial-focus engine.
- 07I'm the only committer across the platform's 7 code repositories (about 166 commits, February to July 2026).
Stack
- Node.js
- Fastify
- MongoDB
- Mongoose
- Redis
- BullMQ
- Zod
- Next.js
- React
- next-intl
- TanStack Query
- Zustand
- Tailwind CSS
- Vite
- Swift
- SwiftUI
- AVPlayer
- VLCKit
- XcodeGen
- TypeScript
- Samsung AVPlay
- WebAuthn
- Stripe
- PayPal
- Apple In-App Purchase
- Docker
- Vitest
- Dodo Payments
- TronWeb
- ethers.js
- Resend
- Swagger/OpenAPI
- Docker Compose
- Cloudflare Tunnel
- shadcn/ui
- Recharts
- Planby
- dnd-kit
- GitHub Actions