Skip to content
Ferris edited this page Jun 24, 2026 · 5 revisions

Frequently Asked Questions (FAQ)

Welcome to the OcenFin FAQ! Here you will find answers to the most common questions regarding the background, development, and technical choices of this project.


The most important question: Is this project AI-generated?

Yes, to a very large extent by Claude.

I have foundational knowledge in HTML, CSS, and some PHP/JavaScript. Choosing Svelte and Tailwind was a conscious decision on my part, and AI—when used correctly—is a great tool to support me in this endeavor. I intend to keep the project alive and maintain important dependencies for as long as I use my WebOS TV (which should be for a long time).


Why Svelte and Tailwind instead of other existing frameworks?

I could have used something else, but I didn't want to. My goal was to create the smallest possible app with a strict focus on TV performance.

With Svelte, there is no heavy runtime framework shipped to the TV. During the build process, Svelte compiles the code into pure JavaScript, which makes the app not only incredibly lightweight but also extremely fast.


Why is the versioning just a date?

Right now, traditional versioning (like v1.0, v2.0) wouldn't make much sense for me. I am constantly implementing new features or trying to improve existing ones under the hood.

I don't want to rush to version 10.0 in a short time and set false expectations. With the current YYYYMMDD format, you can immediately tell when a release was built and easily see if you are on the latest version.


What is the difference between the Legacy and Modern versions?

It's actually quite simple. The source code you see on GitHub is exactly the same for both. The Svelte base is identical. The difference happens during the build process:

  • Legacy: I specify an older Chromium target version. The compiler then translates the code into older JavaScript syntax that older WebOS TVs can understand.
  • Modern: This version has no specific target restrictions and uses the latest, most optimized JavaScript available.

Why don't you add features that other WebOS Jellyfin apps already have?

If I did that, I would basically just be building a clone of an existing app, which is not my goal.

I try to design OcenFin exactly the way I need it for my own daily use. My goal was never to offer hundreds of toggles and options, but to focus on the core experience. The features that are there should just work intuitively, without the user having to dig through 10 settings first.


How do I install the app?

You can download the app directly as an .ipk file from the Releases page and load it onto your TV. You can do this via the command line or, if you prefer a graphical interface, by using the WebOS Dev Manager.

There are plenty of tutorials online on how to activate Developer Mode on your TV, or you can simply ask any AI to explain it to you step-by-step. To ensure the app continues to work after 50 hours, you should download and activate the "Auto Dev Token Refresh" app (available via Homebrew or the WebOS Dev Manager) to automatically reset this time restriction.


Do I need to root my TV for this?

No. The app works perfectly fine with the standard WebOS firmware, which can be updated without any issues.

In fact, I highly recommend keeping your WebOS firmware up to date, as this also updates the underlying Chromium browser engine, which makes the app run even better.


Why yet another app for WebOS?

There are already good apps out there, like MoonFin, Litefin, or Breezyfin, and perhaps even others. However, I wanted to build my own app that covers our specific personal needs. This includes features like Shared Profiles, saving passwords, changing profile pictures directly on the TV, and more.

I also found it exciting to dive into TV hardware and see how much performance I could squeeze out of it. That is exactly why I chose Svelte 5: its Runes system is extremely efficient, which is clearly noticeable in the latest version of the app.

The other apps work perfectly fine, too. As is so often the case, it ultimately comes down to personal taste and what kind of user experience you prefer.

Clone this wiki locally