5K
Monthly active users, up from zero
100+
Users in the first 3 months
Solo
Designed, built, and shipped
Organic
100% SEO, no paid spend
The Challenge
The Solution
Features
Direct in-browser playback
Streams play client-side with hls.js and a lazy-loaded mpegts.js, no video ever routes through my servers.
Live TV guide
An EPG shows what's on across channels so viewers can browse the schedule, not just a wall of streams.
Crowd-sourced channel health
Client probes flush to Supabase, hydrate working/broken state, and gate playback on confirmed-dead streams.
Playlist import at scale
Import custom M3U playlists and search across 10K to 350K entries instantly with a client-side FlexSearch index.
Programmatic SEO
Around 45 guide pages plus per-channel and per-category pages with JSON-LD, all wired into a dynamic sitemap.
Accounts & continue-watching
Supabase auth with favorites, trending, and watch tracking across sessions.
System Architecture
Source
Channels + M3U
App
Next.js App
Client
In-browser player
Direct
IPTV Origins
Store
Supabase
Technology Stack
Frontend & Framework
Streaming & Playback
Data & Search
Growth & Analytics
Key Learnings
- •Keeping playback fully client-side meant streams never touch my infrastructure, no bandwidth costs and nothing to scale on the video path.
- •Programmatic, intent-matched guide pages compounded into the bulk of organic traffic, content was the growth engine, not ads.
- •FlexSearch on the client made discovery across huge imported playlists feel instant without standing up a search backend.
- •Crowd-sourced health checks kept the channel grid trustworthy as upstream streams came and went.
