Overview
KAAST is a full-stack digital signage platform for South African SMEs. Businesses manage media, playlists, and branded screens across store locations from a phone — with dedicated TV players that sync in real time.
Built for Orrbit Systems as a proprietary product (auth, billing, orgs, and multi-device control included).
Problem
Small multi-branch businesses need consistent in-store media (menus, promos, ads, audio) without expensive enterprise signage stacks. KAAST makes pairing, scheduling, and remote control simple enough for teams that “can download apps.”
Solution
A four-app system
KAAST ships as a connected product surface across mobile, TV, web, and API.
1. Mobile (Expo)
iOS/Android controller: pair devices, manage media, schedule playlists
2. TV (Expo TV / tvOS)
Apple TV & Android TV player; 6-digit pairing + live playback
3. Web (Next.js)
Marketing, org signup, trial, and Clerk Billing checkout
4. Server (NestJS)
Media library, devices, playlists, GCS uploads, Redis, Socket.IO sessions, Clerk webhooks
Key features
- Org-scoped device pairing and remote control
- Media library with GCS direct upload (image, video, audio)
- Recurring playlists and schedules
- Real-time TV control via WebSockets
- Trial / subscription gating with Clerk Billing
- Privacy, terms, data export, and account deletion
Tech stack
| Layer | Stack |
|---|---|
| Mobile | Expo 56, Expo Router, Clerk, React Query, NativeWind |
| TV | Expo TV (react-native-tvos), Socket.IO |
| Web | Next.js 16, Clerk, Tailwind, shadcn/ui |
| API | NestJS 11, TypeORM, PostgreSQL, Redis, GCS, Socket.IO |
Role
Full-stack product build — architecture, apps, API, auth/billing, and real-time media control.