{"id":51124286,"url":"https://github.com/ShokoAnime/Shoko-WebUI","last_synced_at":"2026-07-13T12:00:50.015Z","repository":{"id":40499359,"uuid":"65279557","full_name":"ShokoAnime/Shoko-WebUI","owner":"ShokoAnime","description":"Repository for the Web UI used in Shoko Server.","archived":false,"fork":false,"pushed_at":"2026-07-07T05:58:42.000Z","size":17452,"stargazers_count":73,"open_issues_count":18,"forks_count":34,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-07-07T07:22:48.840Z","etag":null,"topics":["anidb","anime","management","react"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ShokoAnime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2016-08-09T08:58:07.000Z","updated_at":"2026-07-07T05:57:40.000Z","dependencies_parsed_at":"2023-09-06T09:22:28.412Z","dependency_job_id":"4ccdc6af-e1b0-4d11-b18f-f0f48951d749","html_url":"https://github.com/ShokoAnime/Shoko-WebUI","commit_stats":null,"previous_names":["shokoanime/shokoserver-webui"],"tags_count":883,"template":false,"template_full_name":null,"purl":"pkg:github/ShokoAnime/Shoko-WebUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShokoAnime%2FShoko-WebUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShokoAnime%2FShoko-WebUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShokoAnime%2FShoko-WebUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShokoAnime%2FShoko-WebUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShokoAnime","download_url":"https://codeload.github.com/ShokoAnime/Shoko-WebUI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShokoAnime%2FShoko-WebUI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35421719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anidb","anime","management","react"],"created_at":"2026-06-25T06:00:23.166Z","updated_at":"2026-07-13T12:00:50.008Z","avatar_url":"https://github.com/ShokoAnime.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Shoko WebUI\n\n**Shoko WebUI** is the next-generation frontend for the [Shoko Anime Management Server](https://shokoanime.com/). Built with speed and modern aesthetics in mind, it provides a seamless experience for managing your anime collection, exploring metadata, and configuring your server.\n\n\n## 🚀 Features\n\n*   **Modern Stack**: [React 19](https://react.dev/), [Vite](https://vitejs.dev/), [Tailwind CSS](https://tailwindcss.com/), [Redux Toolkit](https://redux-toolkit.js.org/), and [React Query](https://tanstack.com/query).\n*   **Fast**: Optimized build times and runtime performance.\n*   **Responsive**: Designed to look great on desktop and mobile.\n*   **Real-time**: Leverages SignalR for live updates from the server.\n\n## 🛠️ Prerequisites\n\n*   **Node.js**: \u003e=22 (LTS recommended)\n*   **Package Manager**: `pnpm` (This project **strictly** uses pnpm. Do not use `npm` or `yarn`.)\n*   **Shoko Server**: A running instance of Shoko Server (locally or remote).\n\n## ⚡ Quick Start\n\n1.  **Clone the repository**\n    ```bash\n    git clone https://github.com/ShokoAnime/Shoko-WebUI.git\n    cd Shoko-WebUI\n    ```\n\n2.  **Install dependencies**\n    ```bash\n    pnpm install\n    ```\n\n3.  **Start the development server**\n    ```bash\n    pnpm start\n    ```\n    Open [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\n## 🏗️ Architecture\n\nThe WebUI is a client for the Shoko Server API. It manages global UI state via Redux Toolkit, caches server data with React Query, and receives real-time updates through SignalR.\n\n## 💻 Development\n\n### Key Commands\n\n| Command | Description |\n| :--- | :--- |\n| `pnpm start` | Runs the app in development mode. |\n| `pnpm build` | Builds the app for production to the `dist/` folder. |\n| `pnpm build:debug` | Creates a development build. |\n| `pnpm lint` | Runs the full verification chain: `dprint` → `oxlint` → `stylelint`. |\n| `pnpm tscheck` | Runs TypeScript checks (`tsc --noEmit`). |\n| `pnpm oxlint:fix` | Automatically fixes Oxlint errors. |\n| `pnpm dprint:fix` | Formats code using dprint. |\n\n### Configuration\n\nIf your Shoko server is running on a different machine or port:\n1.  Copy `proxy.config.default.js` to `proxy.config.js`.\n2.  Edit `proxy.config.js` and set the `target` to your Shoko Server URL (e.g., `http://192.168.1.50:8111`).\n\n## 🤝 Contributing\n\nWe are always accepting help, and there are a million little things that always need done. Hop on our [discord](https://discord.gg/vpeHDsg) and talk to us. Communication is important in any team. No offense, but it's difficult to help anyone that shows up out of nowhere, opens 3 issues, then creates a PR without even talking to us. We have a wealth of experience. Let us help you...preferably before the ADHD takes over, you hyperfixate, and you come up with a fantastic solution to problem that isn't at all what you expected. Support is also best found in the discord, in case you read this far.\n\n![Repobeats analytics image](https://repobeats.axiom.co/api/embed/cc9c359034b88cdb0168fee53bd50d317334fb88.svg \"Repobeats analytics image\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShokoAnime%2FShoko-WebUI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FShokoAnime%2FShoko-WebUI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShokoAnime%2FShoko-WebUI/lists"}