Releases: sbondCo/Watcharr
v3.0.0
Note
The next release is finally here! Don't worry about the major version bump though, there's nothing for you to do, other than update your server as usual.
If you are using custom scripts, you may find that they need updating as a few endpoints have been removed and some now return a new data structure.
As always, it is highly recommended that you perform a backup before updating (https://watcharr.app/docs/server_config/backup)!
Deprecations
If you have any questions about the deprecations, I'm reachable on Matrix (or you can open an issue/discussion; more info at the bottom of these release notes).
Include Previously Watchedsetting no longer works for your main list and is due to be removed. The 'Last Finished' sort now acts as if this setting is set to 'true' (previously it defaulted to 'false').- The
AddWatchedapi is now also used for Games (The separateAddPlayedapi was removed). - The
AddWatchedapi now accepts atmdbIdfor movies/tv OR anigdbIdfor games.- It still supports the old
contentIdfield to ensure any custom scripts out there still work, but in one of the future releases, this will be removed. You will see a warning in your logs if you are still using this property.
- It still supports the old
- All search endpoints have been replaced with a new central search endpoint that encompasses all behavior from the last endpoints.
New
- Redesigned the top half of content pages.
- Redesigned people pages.
- Added expandable biography (we are no longer limited to the first paragraph).
- Added
age.
- Your watched list is now delivered with pagination and infinite loading.
- Gets you to your data quicker.
- Reduces bandwidth usage.
- Sorting and filtering is now done server-side (saving your device).
- Created a new centralized Search service.
- Search by (external) id now occurs on server.
- Search: Support searching your own watched list for results before needing to go out to external db.
- import: You can now provide your own api key when doing a Trakt import (incase our included api key ever stops working).
- Games: Added providers (currently just:
Steam,GOG&itch.io) - Discover: Overhauled the entire experience.
- Added games and people types.
- Added sorting options.
- Now with pagination so you can keep browsing past the top results for each media type and sort.
- Nav: The main search bar is now truly centered on the page and no longer jumps around when navigating through different pages.
- Added version log to server (with nice art if you are looking at cli output).
Changed
- Games now use the normal
Postercomponent (GamePosterhas been deleted). - Game results now loads max 40 records at once (previously was 10).
- Restyled the Error component that is shown when data fails to load for pages.
Fixed
- Removed spammed duplicate styling being added to built styles (reducing wasted bandwidth on duplicate styling).
- Trakt importing.
- Replaced some
log.Fatals with real error responses. - Improve twitch config by not writing empty time.
Documentation
- Importing/Trakt: New section for optional api key field.
- Update screenshots to match new UI and add a person page screenshot.
Maintenence
- Watcharr is now licensed under GPLv3!
- Server code has been completely redesigned/restructured.
- Created Makefiles for server/client.
- For usual dev commands.
- Added a nice
versionjob for updating app version.
- Created a FEATURES.md.
- Upgrade to go 1.25.
- Dockerfile: Fix COPY requiring trailing slash on dest dir.
- Upgrade all doc site dependencies.
A Note
I hope you all enjoy this release. Please feel free to provide any feedback and report any bugs you find!
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/716738135?tag=v3.0.0 or on docker hub.
Full Changelog: v2.1.1...v3.0.0
v2.1.1
Fixed
- import: Perfect matching now takes Year into account if provided by @IRHM in #915
- StarRating: Ignore star presses if scroll position changes from start to end of click (this should fix accidental rating changes when trying to scroll down the page on mobile) by @IRHM in #916
- Fix Twitch init error logging bug by @ParksideParade in #921
- fix bug on return from blurhash.Encode by @ParksideParade in #922
Credits
Many thanks to everyone who has worked on this release!
- @ParksideParade made their first contribution in #921
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/orgs/sbondCo/packages/container/watcharr/462309867?tag=v2.1.1 or on docker hub.
Full Changelog: v2.1.0...v2.1.1
v2.1.0
New
- About modal (accessible via face menu) by @Clusters in #811
- System app theme (automatically swaps between light/dark themes depending on system config) by @antoniosarro in #822
- Search shortcut (
Ctrl+S) by @IRHM in #886
Fixed
- Improve imdb import accuracy by @jigglycrumb in #880
- Support for importing ryot 8 files by @IvanBeke in #862
- Search: add missing keys that search handler should ignore by @IRHM in #886
Maintenance
- server: bump github.com/gin-contrib/cors from 1.7.3 to 1.7.5 in /server by @dependabot in #864
- server: bump golang.org/x/crypto from 0.32.0 to 0.37.0 in /server by @dependabot in #863
- server: bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 in /server by @dependabot in #846
- server: bump github.com/go-co-op/gocron/v2 from 2.14.2 to 2.16.1 in /server by @dependabot in #842
- ui: bump @sveltejs/kit from 2.16.0 to 2.20.6 by @dependabot in #875
- ui: bump vite from 6.0.7 to 6.2.6 by @dependabot in #873
- ui: bump axios from 1.7.9 to 1.8.4 by @dependabot in #855
- ui: bump prettier-plugin-svelte from 3.3.2 to 3.3.3 by @dependabot in #773
- ui: bump @typescript-eslint/eslint-plugin from 8.19.0 to 8.30.1 by @dependabot in #874
- ui: bump sass from 1.83.0 to 1.86.3 by @dependabot in #867
- ui: bump eslint-config-prettier from 9.1.0 to 10.1.2 by @dependabot in #872
- ui: bump typescript from 5.7.2 to 5.8.3 by @dependabot in #865
Documentation
Credits
Many thanks to everyone who has worked on this release!
- @Clusters made their first contribution in #811
- @jigglycrumb made their first contribution in #880
- @IvanBeke made their first contribution in #862
The Future
v3.0 has been in-progress for a while now. A rework of how list data is handled is coming soon. Nothing but better performance should be noticed by you (as usual, there will be zero breaking changes so don't worry about migrations). When v3.0 is released, we will get back to more regular feature releases.
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/orgs/sbondCo/packages/container/watcharr/418145464?tag=v2.1.0 or on docker hub.
Full Changelog: v2.0.2...v2.1.0
v2.0.2
Fixed
- DetailedMenu: Fix state not properly being saved (and as a result, wlDetailView not being updated in localStorage, causing the setting to reset after a page refresh) by @IRHM in #814
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/356688609?tag=v2.0.2 or on docker hub
Full Changelog: v2.0.1...v2.0.2
v2.0.1
New
- Search by IGDB ID & TMDB ID support by @IRHM in #807
- SeasonsList: Added season status and episode count to entries by @antoniosarro in #784

- SeasonsList: Horizontal scroller for mobile view by @IRHM in #808

Fixed
New Contributors
- @antoniosarro made their first contribution in #784
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/355568229?tag=v2.0.1 or on docker hub
Full Changelog: v2.0.0...v2.0.1
v2.0.0
Note
The next release is finally here! Don't worry about the major version bump though, there's nothing for you to do, other than update your server as usual (more details here).
It is still recommended that you perform a backup before updating!
New
- Trusted header authentication by @lufixSch & @IRHM in #736
- Person: Ability to sort items in people view by @AlexPerathoner in #670
- Person: 'On my list' filter support by @AlexPerathoner & @IRHM in #704
- Person: show message when no credits to show by @IRHM in #705
- Search by external id (with this format:
provider:id, example:imdb:tt15435876) by @IRHM in #709- imdb (aliases:
i,imd) - tvdb (aliases:
thetvdb) - youtube (aliases:
yt) - wikidata (aliases:
wd,wdt) - tiktok
- imdb (aliases:
- Search: Support special characters (technically breaking, but only for frontend url, not api) by @IRHM in #713
- Imdb import (for movies & tv) by @IRHM in #726
- Imdb episodes import support (only if show is imported too from list) by @IRHM in #728
- Create a default error page by @IRHM in #738
- manage_users: Support swapping users between Watcharr/Proxy user types (which enabled a migration path for existing users over to becoming a trusted header user) by @IRHM in #747
Changed
- Migration to Svelte 5, new code format rules for frontend, some general overdue refactoring by @IRHM in #762
- Full migration to Svelte 5 (instead of slowly migrating, everything has been moved over to use Svelte 5 features now)
- The store is now an object using the $state rune, instead of using a svelte store. All uses have been updated, looks a lot cleaner now!
- Edited prettierrc: Use default
printWidthof 80, Always leave trailing,, use tabs. - All code reformatted to use Tabs instead of Spaces (have been meaning to fix this for a while, all the code being changed in this pr was a good excuse to get it done).
- Code makeover: A lot of stuff has been refactored to be (more) pleasing to the eyes.
- Full migration to Svelte 5 (instead of slowly migrating, everything has been moved over to use Svelte 5 features now)
Fixed
- import: Disable 'change statuses' button while importing by @IRHM in #727
- Fix search debounce and styling by @IRHM in #770
- Fix importing state error by @IRHM in #781
Documentation
Maintenance
- ui: bump @sveltejs/kit from 2.5.27 to 2.15.1 by @dependabot in #737
- ui: bump @typescript-eslint/eslint-plugin from 7.14.1 to 8.18.2 by @dependabot in #733
- ui: bump typescript from 5.5.4 to 5.7.2 by @dependabot in #703
- ui: bump @vite-pwa/sveltekit from 0.5.0 to 0.6.6 by @dependabot in #669
- ui: bump prettier from 3.3.2 to 3.4.2 by @dependabot in #714
- server: bump github.com/go-co-op/gocron/v2 from 2.11.0 to 2.14.0 in /server by @dependabot in #731
- server: bump gorm.io/driver/sqlite from 1.5.6 to 1.5.7 in /server by @dependabot in #723
- server: bump golang.org/x/crypto from 0.27.0 to 0.31.0 in /server by @dependabot in #717
- ui: bump @types/papaparse from 5.3.14 to 5.3.15 by @dependabot in #742
- server: bump github.com/gin-contrib/cors from 1.7.2 to 1.7.3 in /server by @dependabot in #745
- server: bump golang.org/x/crypto from 0.31.0 to 0.32.0 in /server by @dependabot in #748
- server: bump github.com/gin-contrib/cache from 1.3.0 to 1.3.1 in /server by @dependabot in #746
- server: bump github.com/go-co-op/gocron/v2 from 2.14.0 to 2.14.2 in /server by @dependabot in #761
- ui: bump @sveltejs/adapter-node from 5.2.11 to 5.2.12 by @dependabot in #763
- ui: bump @sveltejs/kit from 2.15.1 to 2.16.0 by @dependabot in #764
Thanks
- @lufixSch For getting the base work done for the trusted header authentication support.
- @christaikobo For providing valuable feedback on trusted header authentication implementation.
- @AlexPerathoner For continued work on improving quality of life for the frontend.
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/342565711?tag=v2.0.0 or on docker hub
Full Changelog: v1.44.2...v2.0.0
v1.44.2
Fixed
- GamePoster: Fix focus lost issue on rating/status via quick btns by @IRHM in #659
- Import: Ryot: Fix dates not importing for watched episodes by @IRHM in #664
Thanks
- @SirMartin for reporting the Ryot import issue in #663
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/289810676?tag=v1.44.2 or on docker hub
Full Changelog: v1.44.1...v1.44.2
v1.44.1
Fixed
- Fix PosterRating
minimaloption (previously stopped the popup from showing when used in the Seasons List and its Episode Items) by @IRHM in #655 - Poster: Fix focus lost after giving status/rating via quick btns by @IRHM in #657
- Improve download file func - don't make empty files, add extra logging by @IRHM in #658
Maintenance
- Created a security policy for the repository.
Thanks
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/288447184?tag=v1.44.1 or on docker hub
Full Changelog: v1.44.0...v1.44.1
v1.44.0
IMPORTANT: This release contains security fixes, please make sure you upgrade! Thanks to @yamerooo123 for reporting the issues to me.
New
- New rating systems (with better keyboard accessibility) by @IRHM in #627


- Import: add todomovies by @AlexPerathoner in #618
- test-pr.yml: Add format_check_go job by @IRHM in #634
Fixed
- Fix no filtering tag page and other stuffs i found by @IRHM in #633
- Fix tagmenu going out of bounds by @IRHM in #636
- Fix poster focus/accessibility issues and middle clicking by @IRHM in #647
- Fix poster summary overflowing by @IRHM in #648
Maintenance
- ui: bump svelte from 4.2.17 to 4.2.19 by @dependabot in #611
- ui: bump vite from 5.2.11 to 5.4.6 by @dependabot in #631
- ui: bump @sveltejs/kit from 2.5.24 to 2.5.27 by @dependabot in #629
- server: bump gorm.io/gorm from 1.25.11 to 1.25.12 in /server by @dependabot in #623
- ui: bump @sveltejs/adapter-node from 5.0.1 to 5.2.3 by @dependabot in #635
- server: bump golang.org/x/crypto from 0.26.0 to 0.27.0 in /server by @dependabot in #624
- ui: bump svelte-check from 3.8.6 to 4.0.2 by @dependabot in #628
- ui: bump prettier-plugin-svelte from 3.2.3 to 3.2.6 by @dependabot in #616
New Contributors
- @AlexPerathoner made their first contribution in #618
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/284866355?tag=v1.44.0 or on docker hub.
Full Changelog: v1.43.0...v1.44.0
v1.43.0
New
- Page titles for browser tabs (profile, content, person) by @IRHM in #607
- Preload last season viewed by @IRHM in #609
Fixed
🔨 Maintenance
- ui: bump svelte-eslint-parser from 0.39.2 to 0.41.0 by @dependabot in #606
- ui: bump eslint-plugin-svelte from 2.41.0 to 2.43.0 by @dependabot in #603
- ui: bump tslib from 2.6.2 to 2.7.0 by @dependabot in #605
- ui: bump svelte-check from 3.8.5 to 3.8.6 by @dependabot in #604
🆘 Getting Help
If you need help, encounter an issue or find a bug please create an issue or join our space on Matrix for support. Always happy to help!
Package: https://github.com/sbondCo/Watcharr/pkgs/container/watcharr/265758944?tag=v1.43.0 or on docker hub
Full Changelog: v1.42.0...v1.43.0