Library / SDK
Stremio/stremio-web avatar
Stremio/stremio-web

Stremio Web: The Browser-Based Interface for the Stremio Media Center

Stremio - Freedom to Stream

13,976 stars1,600 forksJavaScriptGPL-2.0

At a glance

What is it?
Stremio Web is the official web UI for Stremio, a media center that discovers and plays movies, series, and channels through installable addons. The interface runs as a React app in the browser or as a standalone PWA, while a Rust engine compiled to WebAssembly handles all state and addon logic in a background worker.
Who is it for?
Stremio Web is worth using if you want the Stremio catalog and addon system available in a browser tab or as a PWA without installing the desktop client. Addon availability and legal status depend entirely on which addons you install, as the web app itself only provides the UI and synchronization layer.
Can I use it commercially?
Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Stremio Web Is and Who It Is For

Stremio is a media center that aggregates video content through a catalog-and-addon model rather than hosting content itself. The web repository is the UI layer of that system, published as a Progressive Web App at web.stremio.com and also available to self-host via Node.js or Docker.

The target users are people who want Stremio's addon-driven content discovery in a browser or on a device where the native client is unavailable. The README notes iOS support through the PWA install flow and lists over 50 community-translated languages through the stremio-translations repository.

The project is under active development. The most recent release as of the last push is v5.0.0-beta.40, published on 2026-09-23.

Architecture: React UI Over a Rust WASM Engine

The repository is a React application, but the core logic lives elsewhere. The README describes the architecture plainly: the UI renders state, and the core computes it. That core is stremio-core, a Rust engine compiled to WebAssembly and running inside a Web Worker. The separation means the browser UI thread is not blocked by addon calls, library synchronization, or API requests.

Playback is handled by a third component, stremio-video, which chooses the right player implementation for the current environment. The three repositories form distinct layers: this UI repo, the core engine in stremio-core, and the video abstraction in stremio-video.

The package.json pins @stremio/stremio-core-web at 0.63.2 and @stremio/stremio-video at 0.0.98, so the UI version dictates which engine version it runs against.

Running the Dev Server and Building for Production

The project requires Node.js 22 or later and pnpm 11 or later. The README documents the full command set:

bash
pnpm install
pnpm start

This starts the development server with hot reload at http://localhost:8080. A production build runs with:

bash
pnpm run build

For running in production mode during development, `pnpm run start-prod` keeps the webpack server running with production-mode optimizations. The test suite runs with `pnpm test` and the linter with `pnpm run lint`.

A Docker path is also provided. The Dockerfile uses a multi-stage build: one stage installs dependencies and builds the static files, a second installs only the Express server, and the final image combines both.

bash
docker build -t stremio-web .
docker run -p 8080:8080 stremio-web

The image listens on port 8080.

Addon System and Sync Behavior

Content in Stremio comes from addons rather than from the platform itself. The web app connects to addon catalog endpoints and displays whatever those addons provide, whether movies, series, live TV, or other formats. The README links to the addon listing at web.stremio.com/#/addons and notes a separate stremio-addon-sdk repository for building custom addons in Node.js.

Library synchronization and the Continue Watching feature follow a logged-in Stremio account across devices. This means the same account state is available on the web app, the desktop clients, and mobile apps. Playback history and library entries are tied to the account, not to the local browser.

Subtitles come from addon-provided sources. The web app also accepts local subtitle files with styling options. The keyboard-first player design means full playback control is available without a mouse, a relevant feature for TV-connected environments where navigating with a remote or keyboard is the default input method.

Limitations: Streaming Server Dependency and Content Legality

Stremio Web's largest practical constraint is its dependency on a separate streaming server for most playback. The web app is a UI; the Stremio streaming server handles torrent-based and HTTP-adaptive streams. Without the server running locally or accessible over the network, the browser app cannot play most addon content. The README does not document a bundled streaming server in this repository.

The legal status of specific content also depends entirely on the addons installed. The web app itself ships no content and makes no representations about what addons provide. The stremio-web repository is licensed under GPL-2.0 and the copyright notice in the README reads Copyright 2017-2026 Smart Code OOD.

Chromecast is supported for casting to a TV. The README lists it under features, but does not document specific device compatibility requirements.

How Stremio Web Compares to Jellyfin

Jellyfin is a self-hosted media server with its own web frontend. The two projects operate on different models. Jellyfin manages a local library of files you already own, scans metadata, and streams from that collection. Stremio Web discovers and plays content through installable addons without requiring a local media library.

For someone who has a collection of video files and wants to self-host a Netflix-style browser UI for their own files, Jellyfin is the tool for that job. For someone who wants a browser interface to the Stremio addon ecosystem, Stremio Web applies. The two do not overlap on the server side: Stremio Web has no media server of its own, and Jellyfin has no addon catalog discovery.

PWA Install and Translation Coverage

The manifest.json in the repository marks the app as installable as a standalone PWA, which means users on iOS, Android, and desktop browsers can add it to their home screen or application shelf and open it without browser chrome. The package displayName is Stremio.

Translation is managed in the separate stremio-translations repository. The README states 50+ supported languages through community contributions. Missing translation keys can be checked with `pnpm run scan-translations`, which runs against the i18nScan test file.

The i18n stack uses i18next at version 24.2.3 and react-i18next at version 15.7.4, as listed in package.json. The `pnpm run scan-translations` script is a Jest test runner invocation, not a standalone CLI, so it reports missing keys in the same output format as the rest of the test suite.

Key Dependencies and Build Configuration

The package.json lists several dependencies specific to Stremio's use case. The magnet-uri package parses magnet links, which are the standard way addon results reference torrent-based video streams. The spatial-navigation-polyfill, sourced from a Stremio fork on GitHub, handles keyboard-only and remote-control navigation across the result grid without mouse input. The @sentry/browser package handles error reporting.

The project uses webpack for bundling, configured in webpack.config.js. The React version is 18.3.1 and the router is react-router 6.30.0. Bowser handles browser detection. The classnames package is used throughout the component tree for conditional CSS class application.

Building the Docker image requires no separate setup beyond Docker itself. The Dockerfile pins the Node.js version through a build argument: `ARG NODE_VERSION=22-alpine`. The Alpine base image and the multi-stage layout keep the final image small: only the built static files, the Express HTTP server, and the node_modules for that server make it into the final stage. The container exposes port 8080 and starts with `node http_server.js`.

The .nvmrc file and the engines field in package.json both specify Node.js 22 as the minimum. The packageManager field locks pnpm to version 11.8.0 to prevent version drift across contributor machines.

Editorial conclusion

Stremio Web is worth using if you want the Stremio catalog and addon system available in a browser tab or as a PWA without installing the desktop client. Addon availability and legal status depend entirely on which addons you install, as the web app itself only provides the UI and synchronization layer. Before deploying your own instance, verify that the Stremio streaming server requirement is satisfied for your environment, since the web app cannot play most content without it.

Frequently asked questions

Is Stremio available on the web?

Yes. The official web app is at web.stremio.com and runs as a PWA. The source repository also supports self-hosting via Node.js or Docker. A Stremio account is needed for library sync and Continue Watching.

How do I use Stremio Web?

Open web.stremio.com in a browser, sign in with a Stremio account, and install addons from the addons page. Content catalogs from those addons then appear in the Discover and library sections. Playback of most content requires a Stremio streaming server accessible to the browser.

How do I install Stremio Web on iOS?

Open web.stremio.com in Safari on iOS, then use the Share menu and choose Add to Home Screen. This installs it as a standalone PWA. Playback capability depends on the streaming server being reachable from the device.

How do I install Stremio Web for development?

Clone the repository, install Node.js 22+ and pnpm 11+, run `pnpm install`, then `pnpm start`. The development server starts at http://localhost:8080 with hot reload enabled.

Does Stremio still work on iPhone?

The README lists iOS support through the PWA install flow. The stremio-web repository targets modern browsers across platforms, though specific iOS version constraints are not documented in the README.

Official sources

  1. License: GPL-2.0
  2. Project website
  3. README
  4. Releases
  5. Stremio/stremio-web on GitHub
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/stremio-stremio-web.svg)](https://hysenlabs.com/projects/stremio-stremio-web)
Community notes

Community notes