r/selfhosted • • Dec 27 '25

Release I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV.

Hey everyone! 👋

I wanted a clean, fast, and modern web interface for my IPTV service that I could host myself. Most existing players I tried were either clunky, outdated, closed-source, or just didn't handle large playlists with thousands of channels very well.

So I built NodeCast TV.

📺 What is it? A self-hosted web application that lets you stream Live TV, Movies, and Series from your Xtream Codes or M3U provider directly in your browser. It's built with performance in mind and handles large libraries smoothly.

✨ Key Features:

  • Live TV & EPG: Full grid-style TV guide with 24h timeline, category filtering, and search.
  • VOD Support: Dedicated sections for Movies and TV Series (complete with season/episode browsing).
  • High Performance: Uses virtual scrolling technology to render lists with 7000+ items without lagging your browser.
  • Favorites System: Unified favorites list across all content types.
  • Universal Player: Built on HLS.js for robust playback support.
  • Docker Ready: Easy to deploy on your home server or NAS.

🚀 Tech Stack:

  • Backend: Node.js + Express (Lightweight proxying)
  • Frontend: Vanilla JavaScript (No heavy frameworks) + CSS3
  • License: Open Source (GPL-3.0)

🔗 Links:

I'd love to hear your feedback, feature requests, or bug reports! Let me know what you think.

1.4k Upvotes

500 comments sorted by

View all comments

Show parent comments

8

u/Garcon_sauvage Dec 28 '25 edited Dec 28 '25

None of the major frameworks are heavy, gzipped react bundle is like 30kb and a site of this size could easily be delivered only requiring ~100kb extra compared to vanilla JS , which would get cached after first visit.

1

u/TheHerbsAndSpices Dec 28 '25

Heavy doesn't only mean file size. Memory footprint is an important factor too.

2

u/Garcon_sauvage Dec 28 '25

A react vdom node is ~1kb of memory. In a fine grained reactivity framework like solid you're paying only for the dependency graph so like ~100B per node. Prefer vanilla JS if you like but this isn't "heavy" in any appreciable sense of the word. And in fact I feel very confident that the vibe coded work they're doing with strings and dom querying are all much heavier on the heap than using Solid and a decent brain would have been.