The Free Software Media System - Official Web Client
  • JavaScript 44.6%
  • TypeScript 27.4%
  • SCSS 23.4%
  • HTML 4.5%
Find a file
2025-12-27 13:05:52 +00:00
.devcontainer I hate this i hate this i hate this 2023-09-28 22:15:51 +03:00
.github Update CI dependencies 2025-11-19 11:14:03 +00:00
.vscode Enforce ESLint as default formatter in VSCode settings 2025-02-20 22:39:09 +01:00
scripts Remove NPM prepare script 2023-03-10 12:32:06 -05:00
src Translated using Weblate (Portuguese (Brazil)) 2025-12-27 13:05:52 +00:00
.editorconfig Update editorconfig for yaml indentation 2024-03-08 11:28:46 -05:00
.escheckrc Remove invalid escheck config 2025-03-25 13:28:35 -04:00
.gitattributes Add more filetypes to gitattributes 2020-04-25 15:02:42 +02:00
.gitignore Add a basic nix flake for development (#6531) 2025-03-03 14:14:24 -05:00
.npmignore Azure pipelines (#470) 2019-09-19 14:35:30 -04:00
.npmrc Use engine-strict 2022-09-30 01:20:49 -04:00
.nvmrc Add .nvmrc (#5842) 2024-08-20 12:24:17 -04:00
.sonarcloud.properties Exclude test files from Sonar scanning 2023-10-25 20:09:50 -04:00
.stylelintrc.json Migrate from stylelint-codeguide to @stylistic/stylelint-plugin 3.1.1 2024-12-10 14:51:12 +11:00
babel.config.js Cleanup babel plugins 2024-09-11 10:29:30 -04:00
bump_version Convert bump_version to bumper only 2024-03-19 11:48:34 -04:00
CONTRIBUTORS.md Fix ends at not always accounting for playback position (#6965) 2025-10-18 02:47:52 -04:00
cssnano.config.js Fix CSS fallback 2022-10-08 23:45:54 +03:00
eslint.config.mjs Fix eslint config 2025-07-28 10:52:45 -04:00
flake.lock Add a basic nix flake for development (#6531) 2025-03-03 14:14:24 -05:00
flake.nix Add a basic nix flake for development (#6531) 2025-03-03 14:14:24 -05:00
LICENSE First separation commit. 2019-01-09 12:36:54 +01:00
package-lock.json Update dependency @jellyfin/sdk to v0.0.0-unstable.202512091852 2025-12-09 19:17:39 +00:00
package.json Add support for scanning tartgeted paths with lint npm script (#7436) 2025-12-18 16:42:26 -05:00
postcss.config.js Fix eslint issues 2023-03-29 00:38:22 -04:00
README.md Update README for lib/jellyfin-apiclient 2025-04-22 09:53:46 -04:00
tsconfig.json Add support for absolute imports 2023-05-02 16:44:07 -04:00
vite.config.ts Fix vite path support 2025-12-03 17:53:19 -05:00
webpack.analyze.js Add webpack config for analyzing builds and improve ts speed 2023-09-12 12:54:50 -04:00
webpack.common.js Fix path references in themes 2025-06-23 18:13:49 -04:00
webpack.dev.js Lookup themes dynamically 2025-03-25 15:36:32 -04:00
webpack.prod.js Lookup themes dynamically 2025-03-25 15:36:32 -04:00

Jellyfin Web

Part of the Jellyfin Project


Logo Banner

GPL 2.0 License Current Release Translation Status
Donate Feature Requests Chat on Matrix Join our Subreddit

Jellyfin Web is the frontend used for most of the clients available for end users, such as desktop browsers, Android, and iOS. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start. Translations can be improved very easily from our Weblate instance. Look through the following graphic to see if your native language could use some work!

Detailed Translation Status

Build Process

Dependencies

  • Node.js
  • npm (included in Node.js)

Getting Started

  1. Clone or download this repository.

    git clone https://github.com/jellyfin/jellyfin-web.git
    cd jellyfin-web
    
  2. Install build dependencies in the project directory.

    npm install
    
  3. Run the web client with webpack for local development.

    npm start
    
  4. Build the client with sourcemaps available.

    npm run build:development
    

Directory Structure

Note

We are in the process of refactoring to a new structure based on Bulletproof React architecture guidelines. Most new code should be organized under the appropriate app directory unless it is common/shared.

.
└── src
    ├── apps
    │   ├── dashboard           # Admin dashboard app
    │   ├── experimental        # New experimental app
    │   ├── stable              # Classic (stable) app
    │   └── wizard              # Startup wizard app
    ├── assets                  # Static assets
    ├── components              # Higher order visual components and React components
    ├── constants               # Common constant values
    ├── controllers             # Legacy page views and controllers 🧹 ❌
    ├── elements                # Basic webcomponents and React equivalents 🧹
    ├── hooks                   # Custom React hooks
    ├── lib                     # Reusable libraries
    │   ├── globalize           # Custom localization library
    │   ├── jellyfin-apiclient  # Supporting code for the deprecated apiclient package
    │   ├── legacy              # Polyfills for legacy browsers
    │   ├── navdrawer           # Navigation drawer library for classic layout
    │   └── scroller            # Content scrolling library
    ├── plugins                 # Client plugins (features dynamically loaded at runtime)
    ├── scripts                 # Random assortment of visual components and utilities 🐉 ❌
    ├── strings                 # Translation files (only commit changes to en-us.json)
    ├── styles                  # Common app Sass stylesheets
    ├── themes                  # Sass and MUI themes
    ├── types                   # Common TypeScript interfaces/types
    └── utils                   # Utility functions
  • — Deprecated, do not create new files here
  • 🧹 — Needs cleanup
  • 🐉 — Serious mess (Here be dragons)