A streaming app for LG and Samsung TVs, built for the remote.
Vela is the source code for the TV side of a streaming service: remote-control navigation, adaptive HLS playback, a live TV guide and continue watching. Point it at your catalogue and ship it under your brand.
This is the real app. Press the remote, or click the screen and use ← ↑ → ↓ Enter Esc.
Everything a viewer does, they do with five keys.
TV apps fail on the details a browser never needed: where focus goes when a row ends, what Back does on each screen, what happens when the stream stalls. Vela has an answer for each of them.
- ◀ ▶
Rows that move, not pages
Left and right slide one row of posters. Up and down keep your column, so focus never jumps somewhere unexpected.
- OK
Adaptive HLS playback
hls.js picks the right quality for the connection, with native HLS as a fallback. Progress bar, buffer indicator and timecodes.
- Back
Back always goes somewhere sensible
Player to detail, detail to home, home exits the app, as both LG and Samsung require.
- ◀◀ ▶▶
Seek from the remote
Arrows and the media keys jump ten seconds. Play/pause works from the dedicated button on webOS and Tizen remotes.
- focus
Preview on focus
Rest on a title and it starts playing, muted, inside its poster. Move on and it stops.
- resume
Continue watching
Playback position is kept on the TV. Titles you left half-way show a progress bar and a Resume button.
- ⤡
Picture-in-picture
Minimise the player and keep browsing while the video plays in the corner.
- live
Live TV guide
Channels with what is on now, how far in it is and what comes next, following the real clock.
- mood
“What to watch?”
Viewers pick or type a mood and get titles from your catalogue with matching genres. Plain rules, no external service.
- EN TR
Two languages, more in minutes
Interface strings live in one file. Catalogue text can carry a version per language.
Your catalogue is one JSON file.
Export it from whatever you run today: a CMS, a spreadsheet, your middleware. Serve it from your own server and you can change rows and titles without releasing a new app.
- Rows, titles, channels and moods in one documented format
- Branding in one file: name, colours, language, behaviour switches
- Your own API instead? Every screen reads through four functions. Replace them; no screen code changes.
// public/catalog.json { "rows": [ { "title": { "en": "Featured", "tr": "Öne Çıkanlar" }, "type": "mixed", "items": ["sintel", "spring"] } ], "items": { "sintel": { "title": "Sintel", "year": 2010, "genres": ["fantasy", "adventure"], "poster": "https://cdn.example.com/sintel.jpg", "stream": "https://cdn.example.com/sintel/master.m3u8" } }, "channels": [ … ], "moods": [ … ] }
One code base, three places to run it.
Vela is plain JavaScript with no framework, built with Vite to a small static bundle with relative paths: the shape both TV web runtimes expect.
| Platform | In the box | How you ship it |
|---|---|---|
| LG webOS | appinfo.json, launcher icons, Back-key handling | npm run webos:package builds the .ipk with LG's CLI |
| Samsung Tizen | tizen/config.xml, media-key registration, exit on Back | npm run tizen:stage, then package and sign with Tizen Studio |
| Browsers and boxes | The same build, scaled to any screen size | Upload dist/ to any static host |
The demo on this page is the browser build. The .ipk is produced and verified with LG's packaging tool. TV web engines differ between model years, so test on the models you plan to support before you submit to LG or Samsung.
What Vela is not.
Vela is the app your viewers hold the remote for. It reads content from you; it does not run your service. If you need any of these, you bring them.
- No accountsNo sign-up, login or profiles.
- No paymentsNo subscriptions or paywall.
- No DRMPlays clear HLS. Widevine/PlayReady is yours to add.
- No CMSNo admin panel. You produce the catalogue feed.
Pay once. Keep the source.
Both licences include the full source code, a year of updates and a year of email support.
Standard
For one streaming service of your own.
- One app, one brand
- Publish it on LG, Samsung and the web
- Change anything in the code
- 1 year of updates and email support
Agency
For studios that build TV apps for clients.
- Unlimited apps and brands
- Client projects included
- Change anything in the code
- 1 year of updates and email support
Checkout by Paddle, our reseller, who handles VAT and invoices. 30-day money-back guarantee. Neither licence lets you resell the source code itself.
Questions
Will it pass LG and Samsung store review?
Vela handles the things reviewers check most often: Back behaviour, exit from the home screen, remote-only navigation and media keys. Store review also looks at your content, your metadata and your behaviour on specific TV models, so plan a test round on real hardware.
Which TV models does it support?
The bundle targets ES2015, which webOS 4+ and Tizen 4+ (roughly 2018 TVs onward) run. Older models may need extra polyfills.
What stream formats does it play?
HLS (.m3u8) through hls.js with native HLS as the fallback, and MP4 where the TV supports it. Encrypted streams need DRM integration, which is not included.
Can I connect it to my existing backend?
Yes. Either produce the catalogue JSON from your backend, or rewrite the four functions in src/api/catalog.js to call your API directly.
Can I use the demo films?
They are open movies by the Blender Foundation under Creative Commons Attribution licences, included so the demo works out of the box. The demo streams are hosted by us for evaluation; replace them with your own content before you publish.
How do I get the code?
Right after payment you get a download link and your licence key by email. Questions go to support@webkoding.com.