Stump
Free and open source comics, manga, and digital book server with OPDS support
Alternative to: comixology, kindle, kobo
v0.1.0
2026-03-29[!CAUTION]
:boom: BREAKING CHANGES
This release has fundamentally breaking changes! I have tried my best to create pathways for migrating your data cleanly, however please understand I am one human doing this in my spare time. There will be bumps and bugs during this transition.
Do NOT attempt to update your instance without reading through the breaking changes guide for more details.
If you don’t care about retaining your reading progression or recreating your libraries, I highly recommend just starting from scratch.
It has been just about an entire year since I announced Stump would be undergoing some major rewrites because of a critical dependency being unmaintained. I am excited that this chapter of Stump is coming to an end so that I can focus my limited time more towards feature development and bug fixes.
Thanks to the few folks who helped drive some of the really early migration efforts forward! It wasn’t all rewrites, though. There have been a solid amount of features added towards the end. Here are a few features I can highlight:
- The alphabet filter (#709)
- Adjustable cover sizes (#724)
- Basic metadata editing and calibre tags (#735)
- An entire alpha mobile application:
- Image-based book readers
- Ebook reader
- On deck support
- Built-in file browser
- Offline reading and progression sync
- OIDC authentication support (#246)
- Improved smart list performance
- Refreshed UI components and styles
What’s Changed
- :construction: (core, graphql): SeaORM migration focus on filesystem operations by @aaronleopold in https://github.com/stumpapp/stump/pull/633
- Untyped filter support by @aaronleopold in https://github.com/stumpapp/stump/pull/637
- :construction: Port RESTful APIs to v2 by @aaronleopold in https://github.com/stumpapp/stump/pull/645
- :construction: Migrate library creation and management by @aaronleopold in https://github.com/stumpapp/stump/pull/665
- 🚧 Migrate settings pages by @aaronleopold in https://github.com/stumpapp/stump/pull/666
- 🚧 Migrate top bar and navigation arrangement by @aaronleopold in https://github.com/stumpapp/stump/pull/678
- :recycle: Refactor thumbnail generation to trim memory consumption by @aaronleopold in https://github.com/stumpapp/stump/pull/675
- :construction: Migrate book management and thumbnail selectors by @aaronleopold in https://github.com/stumpapp/stump/pull/688
- Kill Prisma 🔪 by @aaronleopold in https://github.com/stumpapp/stump/pull/691
- Add migrations by @aaronleopold in https://github.com/stumpapp/stump/pull/701
- :sparkles: Support the alphabet filter by @aaronleopold in https://github.com/stumpapp/stump/pull/709
- :construction_worker: Unstable CI pipeline by @aaronleopold in https://github.com/stumpapp/stump/pull/710
- :construction: Port mobile app by @aaronleopold in https://github.com/stumpapp/stump/pull/712
- :construction: Port core events and support refresh tokens by @aaronleopold in https://github.com/stumpapp/stump/pull/717
- :construction: Fix and refactor desktop app and experimental animated page reader by @aaronleopold in https://github.com/stumpapp/stump/pull/720
- :construction: WIP migration fixes and misc by @aaronleopold in https://github.com/stumpapp/stump/pull/722
- ✨ Adjustable cover sizes by @aaronleopold in https://github.com/stumpapp/stump/pull/724
- :recycle: Fix some lints and the benchmarks by @aaronleopold in https://github.com/stumpapp/stump/pull/729
- :construction: Port WIP book club implementations by @aaronleopold in https://github.com/stumpapp/stump/pull/730
- :sparkles: Support basic metadata editing and calibre tags by @aaronleopold in https://github.com/stumpapp/stump/pull/735
- :bug: Misc
unstablefixes by @aaronleopold in https://github.com/stumpapp/stump/pull/738 - 🐛 Fix epubjs flickering by @Arklaum in https://github.com/stumpapp/stump/pull/739
- 🐛 Fix Japanese epub text direction by @Arklaum in https://github.com/stumpapp/stump/pull/740
- 🎨 Update and tidy fonts by @Arklaum in https://github.com/stumpapp/stump/pull/741
- 🐛 Fix: Allow press and hold on mobile browser by @Arklaum in https://github.com/stumpapp/stump/pull/742
- 🐛 Fix scrolled mode by @Arklaum in https://github.com/stumpapp/stump/pull/744
- 🐛 fix auto scaling for image based reader by @Arklaum in https://github.com/stumpapp/stump/pull/745
- 🐛 Fix arrow key for ebook RTL and fix press and hold for Safari Mac by @Arklaum in https://github.com/stumpapp/stump/pull/746
- :recycle: / :sparkles: (expo): A lot of mobile app changes by @aaronleopold in https://github.com/stumpapp/stump/pull/750
- 🐛 fix inability to set avatarUrl by @Arklaum in https://github.com/stumpapp/stump/pull/751
- 💄 Scrollbar colours for Safari and Chrome and 🐛 fix dark epubjs theme by @Arklaum in https://github.com/stumpapp/stump/pull/748
- 🐛 Fix setting default reader settings by @Arklaum in https://github.com/stumpapp/stump/pull/749
- :bug: Fix embedded ebook metadata parsing by @aaronleopold in https://github.com/stumpapp/stump/pull/752
- :lipstick: / :sparkles: (expo): Adjust some thumbnail styles and add on deck support by @aaronleopold in https://github.com/stumpapp/stump/pull/755
- 🐛 Fix inability to save library changes by @Arklaum in https://github.com/stumpapp/stump/pull/754
- :sparkles: (expo): Basic mobile file browser by @aaronleopold in https://github.com/stumpapp/stump/pull/758
- :arrow_up: Upgrade
expo,react, andviteby @aaronleopold in https://github.com/stumpapp/stump/pull/760 - :memo: Update README.md to point to crowdin for translations by @skridofly in https://github.com/stumpapp/stump/pull/762
- ♻️ Refactor and fix page analysis operations and 🐛 Fix OPDS reading on mobile app by @aaronleopold in https://github.com/stumpapp/stump/pull/764
- 🐛 fix inability to set paths with overlaps by @Arklaum in https://github.com/stumpapp/stump/pull/756
- 🐛 Fix misc mobile app bugs, support up next in image reader, fix extension in media names by @aaronleopold in https://github.com/stumpapp/stump/pull/767
- :bug: Fix OPDS page in v1.2 feeds by @aaronleopold in https://github.com/stumpapp/stump/pull/772
- :recycle: Reshuffle the metadata fields into somewhat proper order by @dj-bauer in https://github.com/stumpapp/stump/pull/774
- 💄 (expo): UX Enhancements by @Arklaum in https://github.com/stumpapp/stump/pull/770
- :sparkles: (expo): POC Readium reader and :recycle: Refactor SeaORM initial migration by @aaronleopold in https://github.com/stumpapp/stump/pull/775
- ✨ (expo): Basic Thumbnail Ratio Selector by @Arklaum in https://github.com/stumpapp/stump/pull/779
- :arrow_up: (expo): Upgrade
expoSDK to 54 by @aaronleopold in https://github.com/stumpapp/stump/pull/782 - ⬆️ Upgrade majority of Rust dependencies by @aaronleopold in https://github.com/stumpapp/stump/pull/784
- 🐛 (expo): Fix various RTL reader issues by @Arklaum in https://github.com/stumpapp/stump/pull/786
- :globe_with_meridians: Update translations by @aaronleopold in https://github.com/stumpapp/stump/pull/690
- :rotating_light: Fix remaining
clippylints and :wastebasket: Remove deprecated code by @aaronleopold in https://github.com/stumpapp/stump/pull/787 - 🐛 (expo): Various small bug fixes by @Arklaum in https://github.com/stumpapp/stump/pull/793
- :memo: Update docs for migration procedure by @aaronleopold in https://github.com/stumpapp/stump/pull/790
- 📝 Additional documentation updates by @aaronleopold in https://github.com/stumpapp/stump/pull/796
- :rotating_light: Fix all frontend lints and type-errors by @aaronleopold in https://github.com/stumpapp/stump/pull/798
- WIP:Pdf optimizations by @hollisticated-horse in https://github.com/stumpapp/stump/pull/780
- Last round of bug fixes for
unstableby @aaronleopold in https://github.com/stumpapp/stump/pull/801 - ✨ Toggle requirement of ctrl / cmd for panzoom by @Arklaum in https://github.com/stumpapp/stump/pull/807
- ✨ Basic browser thumbnail ratio selector by @Arklaum in https://github.com/stumpapp/stump/pull/808
- :boom: SeaORM + GraphQL migration by @aaronleopold in https://github.com/stumpapp/stump/pull/785
- :sparkles: (expo): WIP offline reading support by @aaronleopold in https://github.com/stumpapp/stump/pull/811
- :sparkles: Show build channel information in settings by @aaronleopold in https://github.com/stumpapp/stump/pull/817
- Multiple experimental fixes by @aaronleopold in https://github.com/stumpapp/stump/pull/818
- Experimental fixes by @aaronleopold in https://github.com/stumpapp/stump/pull/821
- :construction: OIDC foundations by @aaronleopold in https://github.com/stumpapp/stump/pull/826
- :bug: Fix koreader session upsert by @aaronleopold in https://github.com/stumpapp/stump/pull/836
- :memo: Update OIDC docs and small fixes by @aaronleopold in https://github.com/stumpapp/stump/pull/837
- ✨ (expo): Thumbnail placeholders by @Arklaum in https://github.com/stumpapp/stump/pull/816
- :bug: Fix invalid tag creation clause from empty vec by @aaronleopold in https://github.com/stumpapp/stump/pull/838
- ♻️ (expo): New Perf Monitor Library by @Arklaum in https://github.com/stumpapp/stump/pull/839
- Experimental misc fixes by @aaronleopold in https://github.com/stumpapp/stump/pull/841
- 🐛 (expo): Fix download item heights by @Arklaum in https://github.com/stumpapp/stump/pull/840
- 💄 (expo): New Series Cards by @Arklaum in https://github.com/stumpapp/stump/pull/845
- :arrow_up: Fix vulnerabilities and upgrade dependencies by @aaronleopold in https://github.com/stumpapp/stump/pull/846
- :zap: Improve smart list rendering performance by @aaronleopold in https://github.com/stumpapp/stump/pull/847
- :bug: Add pagination links to OPDS v2.0 /series endpoint by @asonas in https://github.com/stumpapp/stump/pull/853
- 💄 (expo): New library cards by @Arklaum in https://github.com/stumpapp/stump/pull/856
- :memo: Add missing server options to the docs by @avinal in https://github.com/stumpapp/stump/pull/857
- Experimental bug hunt and clean by @aaronleopold in https://github.com/stumpapp/stump/pull/854
- :bug: Fix OPDS pagination infinite loop caused by
next_page()bug by @asonas in https://github.com/stumpapp/stump/pull/860 - :sparkles: Add on deck section to web app home by @aaronleopold in https://github.com/stumpapp/stump/pull/861
- ✨ Add library view configuration options by @AkhileshAdithya in https://github.com/stumpapp/stump/pull/859
- 🍱 (expo): Addition mobile app artwork by @aaronleopold in https://github.com/stumpapp/stump/pull/863
- :bug: (expo): Fix connect issues with user-installed certs by @aaronleopold in https://github.com/stumpapp/stump/pull/864
- Multiple android performance-related changes by @aaronleopold in https://github.com/stumpapp/stump/pull/865
- 🔀 Merge
unstableintoexperimentalby @aaronleopold in https://github.com/stumpapp/stump/pull/852 - 🐛 fix CreateLibraryForm not updating by @Arklaum in https://github.com/stumpapp/stump/pull/868
- 💄 (expo): Softer footer animation and option to disable dismiss gesture by @Arklaum in https://github.com/stumpapp/stump/pull/871
- :twisted_rightwards_arrows: Merge
experimentalintonightlyby @aaronleopold in https://github.com/stumpapp/stump/pull/851 - :sparkles: (expo): Add downloading for OPDS and :zap: Improve analysis performance by @aaronleopold in https://github.com/stumpapp/stump/pull/872
- :lipstick: Refresh web thumbnail and card components by @aaronleopold in https://github.com/stumpapp/stump/pull/870
- 🐛 Fix premature library creation by @Arklaum in https://github.com/stumpapp/stump/pull/873
- 💄 (expo): New reader sheet design by @Arklaum in https://github.com/stumpapp/stump/pull/874
- 🐛 (expo): Fix empty list message by @Arklaum in https://github.com/stumpapp/stump/pull/876
- 💄 (expo): Update settings page design by @Arklaum in https://github.com/stumpapp/stump/pull/877
- :bug: (expo): Fix resolution of relative URLs with leading slash by @aaronleopold in https://github.com/stumpapp/stump/pull/879
- :sparkles: Changes to support Komf integration by @aaronleopold in https://github.com/stumpapp/stump/pull/883
- WIP: :sparkles: (expo): Support bookmarking and theme customizations by @aaronleopold in https://github.com/stumpapp/stump/pull/867
- :globe_with_meridians: Update translations by @aaronleopold in https://github.com/stumpapp/stump/pull/815
- 🌐 Update translations by @aaronleopold in https://github.com/stumpapp/stump/pull/888
- 🐛 (expo): Fix resolution of remaining relative URLs for OPDS by @aaronleopold in https://github.com/stumpapp/stump/pull/882
- ⬆️ Upgrade rust toolchain to
1.92.0by @aaronleopold in https://github.com/stumpapp/stump/pull/887 - 🐛 (expo): Add disable dismiss gesture option to downloads by @Arklaum in https://github.com/stumpapp/stump/pull/890
- 🐛 Fix stale form ui by @Arklaum in https://github.com/stumpapp/stump/pull/892
- 🐛 (expo): fix default stump server entry by @Arklaum in https://github.com/stumpapp/stump/pull/893
- Mobile app fixes and updates by @aaronleopold in https://github.com/stumpapp/stump/pull/894
- 🐛 (expo): fix premade themes grid on tablets by @Arklaum in https://github.com/stumpapp/stump/pull/897
- ♻️ (expo): Refactor OPDS routing to use tab navigation by @aaronleopold in https://github.com/stumpapp/stump/pull/901
- :sparkles: (expo): Support notes and highlights by @aaronleopold in https://github.com/stumpapp/stump/pull/900
- Bug hunt round 2 by @aaronleopold in https://github.com/stumpapp/stump/pull/906
- :twisted_rightwards_arrows: Merge
experimentalintonightlyby @aaronleopold in https://github.com/stumpapp/stump/pull/898 - 💄 (expo): Hide epub controls after location change by @Arklaum in https://github.com/stumpapp/stump/pull/908
- 🧑💻 Update issue templates by @Arklaum in https://github.com/stumpapp/stump/pull/911
- 💄 (expo): Show status bar with controls by @Arklaum in https://github.com/stumpapp/stump/pull/910
- :wrench: Fix
backfill.sqlscript by @aaronleopold in https://github.com/stumpapp/stump/pull/912 - :recycle: Refactor epub page count logic by @Arklaum in https://github.com/stumpapp/stump/pull/915
- Bug fixes by @aaronleopold in https://github.com/stumpapp/stump/pull/918
- :sparkles: (expo): Support imports and series downloading by @aaronleopold in https://github.com/stumpapp/stump/pull/914
- :sparkles: (expo): Support basic smart list features by @aaronleopold in https://github.com/stumpapp/stump/pull/920
- 💄 (expo): Update table of contents by @Arklaum in https://github.com/stumpapp/stump/pull/921
- 🐛 (expo): Fix chapter name not setting for some ebooks by @Arklaum in https://github.com/stumpapp/stump/pull/922
- :sparkles: (expo): Support OPDS v1.2 by @aaronleopold in https://github.com/stumpapp/stump/pull/923
- :globe_with_meridians: Update translations by @aaronleopold in https://github.com/stumpapp/stump/pull/889
- ✨ (expo): Add grid view for smart list items by @aaronleopold in https://github.com/stumpapp/stump/pull/926
- 🌐 Add appearance settings to locale files by @Arklaum in https://github.com/stumpapp/stump/pull/931
- :globe_with_meridians: Update translations and support locales by @aaronleopold in https://github.com/stumpapp/stump/pull/929
- 🐛 Fix hover animations not working by @Arklaum in https://github.com/stumpapp/stump/pull/932
- 💄 (expo): Blurred Background Image by @Arklaum in https://github.com/stumpapp/stump/pull/934
- :art: Format localization files by @aaronleopold in https://github.com/stumpapp/stump/pull/936
- :sparkles: (expo): Add support for more OPDS metadata UI elements by @aaronleopold in https://github.com/stumpapp/stump/pull/939
- 🐛 Fix language filtering in selector by @aaronleopold in https://github.com/stumpapp/stump/pull/940
- :recycle: Unify timestamps and improve localized formats by @aaronleopold in https://github.com/stumpapp/stump/pull/941
- Experimental bug fixes by @aaronleopold in https://github.com/stumpapp/stump/pull/943
- 🐛 (expo): Fix toc active chapter not highlighting by @Arklaum in https://github.com/stumpapp/stump/pull/948
- :lipstick: (expo): Add animating download button for books by @aaronleopold in https://github.com/stumpapp/stump/pull/944
- Misc experimental fixes and changes by @aaronleopold in https://github.com/stumpapp/stump/pull/951
- 🔀 Merge
experimentalintonightlyby @aaronleopold in https://github.com/stumpapp/stump/pull/937 - :globe_with_meridians: Update translations by @aaronleopold in https://github.com/stumpapp/stump/pull/938
- :bookmark: Release
v0.1.0by @aaronleopold in https://github.com/stumpapp/stump/pull/955
New Contributors
- @skridofly made their first contribution in https://github.com/stumpapp/stump/pull/762
- @dj-bauer made their first contribution in https://github.com/stumpapp/stump/pull/774
- @hollisticated-horse made their first contribution in https://github.com/stumpapp/stump/pull/780
- @asonas made their first contribution in https://github.com/stumpapp/stump/pull/853
- @avinal made their first contribution in https://github.com/stumpapp/stump/pull/857
- @AkhileshAdithya made their first contribution in https://github.com/stumpapp/stump/pull/859
Full Changelog: https://github.com/stumpapp/stump/compare/v0.0.12…v0.1.0