Technical Stack
The platform runs on Laravel 12 with PHP 8.3, React 18 paired with Inertia.js 2.0 for the front-end, Filament v3 for the admin panel, Tailwind CSS for styling, MySQL 8 for the database, and Vite for asset bundling. Audio streaming integrates with Shoutcast and Icecast endpoints. Video playback uses the YouTube embed API. Development runs locally on Laragon with Git for version control.
| Component | Technology |
|---|---|
| Back-End Framework | Laravel 12 (PHP 8.3) |
| Front-End | React 18 + Inertia.js 2.0 |
| Admin Panel | Filament v3 |
| Styling | Tailwind CSS |
| Database | MySQL 8 |
| Audio Streaming | Shoutcast / Icecast integration |
| Video | YouTube embed API |
| Asset Pipeline | Vite |
| Local Dev | Laragon (Windows) |
| Version Control | Git |
Architecture Decision
We chose a monolith over microservices deliberately. For a platform maintained by a single team, a monolith keeps deployment simple, debugging straightforward, and the codebase navigable. Laravel’s built-in queue system, cache layer, task scheduling, and event broadcasting handled every backend requirement without external services.
Key Features
Persistent Audio Player
The persistent audio player is built as a React component that lives outside the Inertia page component tree. It mounts once on initial page load and persists through all subsequent navigation events. Station switching, volume control, and metadata updates happen in real time without interrupting playback. Users can start a radio stream on the homepage, browse TV channels, read news articles, and never lose their audio.
Radio Module
Supports multiple stations via Shoutcast and Icecast stream URLs. Each station carries its own metadata — name, genre, artwork, and stream endpoint. The player sits fixed at the bottom of the viewport with instant station switching.
TV Module
TV channels are managed through the admin with YouTube video or live stream IDs. The front-end displays channels in a thumbnail grid. A “LIVE NOW” indicator appears automatically when a channel is set to broadcasting status. Full-screen responsive playback is supported across all devices.
News Publishing
Articles follow a standard publishing flow — title, rich text body, featured image, category assignment, and scheduled publishing. The front-end displays articles in a card grid with pagination. Individual article pages include social sharing, related articles, and category filtering. All pages are optimized for search with proper heading hierarchy, meta descriptions, and Open Graph tags.
Advertising Engine
Admins create campaigns with start and end dates, assign placements across the site (homepage hero, sidebar, in-feed), upload creative assets, and set impression goals. The system tracks impressions and click-throughs with analytics displayed in the Filament dashboard. Ads rotate by weight and date rules. Expired campaigns hide automatically.
What This Proves
iFlixMedia demonstrates that a well-architected Laravel monolith can deliver a premium streaming experience without the overhead of microservices, cloud functions, or a dedicated mobile app. One codebase. One deployment. Full control over every pixel and every data point.