Sometimes I feel that if Calibre just looked better people would realize how amazing it is. It’s honestly not that bad (I actually love it) but I think people can’t get past the aesthetic.
Sometimes I feel that if Calibre just looked better people would realize how amazing it is. It’s honestly not that bad (I actually love it) but I think people can’t get past the aesthetic.
Yesterday I realized that I can just copy an epub to a directory on my Kobo reader to the `root/<auhtor's name>` of the mountpoint in /media/t0mk/koboreader (on Ubunutu 22.04). It will show up in the list of books on the device.
For some reason I thought that uploading books to the Kobo reader was somehow complicated, and I only used Caliber to get books from laptop to Kobo.
I know Calibre has lots of other functions, but I didn't like the interface and I'm happy I don't have to use it, or any other application like that, anymore.
This is actually one of the reasons why I bought a Kobo instead of a Kindle or whatever else was available a few years ago. When you plug them in they mount like any other USB mass storage and you copy your stuff to them… no need for special formats or anything either, standards like ePub work great.
It kinda made me wonder how Kindles remain so popular. First mover’s advantage? I dunno, but an eReader that can’t read ePubs and PDFs feels a bit like an audio player that can’t play MP3s and AAC.
Most readers only buy books from their device’s store, so they don’t need to worry about sideloading. And then once they’ve done so, they are hesitant to switch because it’s hard or impossible to extract yourself from Amazon or B&N or Apple’s ecosystem without losing content.
Ideally everybody would only buy DRM-free ePubs and audiobooks but realistically people don’t care. And I don’t see a repeat of Apple forcing DRM-free music happening here.
At least the Books app on Apple iOS/macOS will manage and read plain old epubs and PDFs without issue, even if you’ve already bought DRM’d books from Apple’s store.
It’s really only big name e-ink readers other than Kobo that have this issue.
It's not "other than Kobo", though; it's Kindle specifically (and only with ePub, it takes PDFs). The other devices will happily take both PDF and ePub.
As for Kindle... for most users Send to Kindle is going to be more convenient than sideloading anyways, and that does take ePubs now, so it's not a huge usability hit.
FWIW, in case it's useful to other readers: removing the DRM from a Kindle ebook is super easy using Calibre and the DeDRM plugin. You put in your Kindle's serial number into the plugin, download the ebook from Amazon, drag-n-drop into Calibre. From there you can convert it to pdf for specific formats, e.g. I use the Supernote A5X which is a great reading and annotation experience.
I would rather spend my money on books from publishers who provide DRM‐free epubs, like Tor Books or No Starch Press.
I think there's a lot of sideloading. Buying non-{english,mandarin,spanish} books happens often in other book eshops, usually language- or -country specific. If you supply your kindle ID, they are able to send it straight to the reader, but the book collection is then stored in the local eshop (or more eshops if you buy from multiple). That's why Calibre exists.
All Kindles I had (the latest is paperwhite from 2020 or so) mounted on USB as mass storage and supported pdf. They also supported epub since 2014 at least.
My recent model paperwhite does not support epub.
You're wrong about that last bit. Kindles still don't support just dropping an ePub into their storage -- you have to convert to a supported format first, either manually (or through Calibre), or by using the Send to Kindle service to get them into your Amazon library. Said service only started supporting ePubs itself in late 2022, also.
Last I looked last year they did not support EPUB except by conversion through the email interface. Which is way better than it was.
But yes, they support USB mass storage.
I just email my ePub to my Kindle's email. It then appears on the Kindle. I also email stuff that my dad reads - to his Kindle. This is easier than "USB mass storage" and does not require connecting the device.
This is how kindles work too. Mount as an ordinary FAT filesystem USB mass storage device, copy the azw3 to it, then read.
Does kobo require an account to use? Or can you just buy it, drop epubs into that directory and start reading?
You can just buy and use.
Its been forever since I set it up but you can also sync via ssh, so, wirelessly recursively sync a directory.
I think I loaded my books over USB, then synced daily news and additional books via rsync. Some of the content was auto generated and dumped into the dir like some auto fetch and email subscriptions, some was manual like copying in a new book after purchase.
But its not a very complicated problem, calibre just does a ton of other stuff too outside of copying books into a specific folder structure.
TIL that Kobo is running sshd :D. But cool, I'll try to find what the credentials are there.
Yeah I was quite surprised when I found out that that works! I thought Calibre was doing something special. That's why Citadel has a "copy to folder" — you can copy an ebook to an external drive. I'm not sure that it's really easier than just opening the folder to copy + paste it, but Citadel updates a metadata file Calibre uses when detecting what books are on the device to avoid having to read every file in the folder.
I'd suggest piping your epub through kepubify [1] before transferring it to your e-reader.
Even easier, I’ve been using send.djazz.se and sending my books through that portal.
As an aside, some folks may ask "why write a new app instead of contributing to Calibre Web or a similar project?" It's a good question! Because I wanted to :)
Right now, this is a hobby project — I'm more interested in having fun building (rough!!) software than worried about extending existing projects. Plus, with how Citadel is designed to be backwards compatible with Calibre, you can continue to use Calibre Web.
As well, I've organized the backend so that all the Calibre-facing code is its own library, which (in the future!) others can use for their own projects. A Calibre library CLI, anyone?
"why write a new app"
I'd imagine spearheading a ground up rewrite of their UI would be a lot more work too.
thanks for taking this on! calibre is a pita for me to use, and I know what I'm doing. makes it impossible to recommend to anyone, whether they're my grandparents or asavvy tech person.
Trust me, I'm tech savvy but I tried Calibre once and I couldn't figure it out, so I just gave up.
What part couldn't you figure out? Where you editing ebooks or just managing a library? Not a contributor here, just curious.
Edit: I've read a few more comments and some a free with you, while others think it works fine. I'm wondering if there's something about the UI that clicks with some but not others.
Without taking away from the overall project and work that’s gone into it, the UI reminds me unpleasantly of the darkest days of Lotus Notes: things aren’t quite where they should be and they don’t look entirely baked when I find them.
Can you be more specific? Or describe how it could be better? I'll grant that Calibre has a UI that doesn't look like other applications but it seems to work well enough for me.
I'll bite I guess. I use Calibre pretty regularly. I think a general way to put it is that it's not for "casuals". To understand a lot of the functionality outside of the basic inventory management stuff, you have to be a little bit of an enthusiast. For some examples: You have to know about different ereaders and their formats and how they differ, the differences between metadata sources, and dozens and dozens of configuration options if you're trying to convert a book to work well on your device.
Also, there's definitely something "off" when it comes to using it intuitively. I have to devote a lot of brain power to searching for functionality AND trying to comprehend exactly how those pieces of functionality are going to affect my library data.
Maybe it's too powerful of a tool up front or something. It could benefit from a "basic view" maybe?
None of these are complaints from me, I'm a happy user. I'll just echo some other commenters in wishing for a more robust network interface (whether that's just an API, or a more hashed out front end). I'd like to easily share my library with people or just other devices while on-the-go, and Calibre has all the device formatting functionality built-in.
It's slightly sad that you have to give this disclaimer, especially on a forum for hackers. One of my favorite quotes about this comes from a John Carmack commencement speech:
"In many areas, it's almost received wisdom that you shouldn't reinvent the wheel. But I would urge you to occasionally try anyways. You'll be better for the effort, and this is how eventually we get better wheels. By people just going ahead and trying."
Reinventing the wheel is fine. However most attempts should be done "in your basement" and thrown away. Don't publish your attempt on the likes of github. Learn what you can from it and then throw it away. Apply lessons learned the the dominate project already there. There are many good open source projects that could be great if more developers would work on them. So instead of reinventing the wheel I strongly encourage everybody to work on an existing project and make it better.
Note that I said "most" above. There are reasons to write a start a new project despite others in the same space existing. However this should not be done until you define what is wrong with existing projects.
Reinventing the wheel is fine. However most attempts should be done "in your basement" and thrown away. Don't publish your attempt on the likes of github. Learn what you can from it and then throw it away. Apply lessons learned the the dominate project already there. [...] > Note that I said "most" above. There are reasons to write a start a new project despite others in the same space existing. However this should not be done until you define what is wrong with existing projects.
I couldn't disagree with this more. Reinventing something in public view can be extraordinarily valuable, even if without a clearly defined problem to address. Off the top of my head:
- Learning in public can have benefits: I personally tend to write much better software if I know there is any chance someone else might see it and reinventing the wheel (Todo app anyone?) is a great way to focus on learning some new techniques or technology without the added overhead of also inventing a novel solution to some hard problem.
- Contributing to the dominate project in any space requires working within the constraints of the existing code and project/user expectations, and if you just show up out of the blue trying to "apply lessons learned", you also need to make a convincing argument for why your way is the better way. On the other hand, reinventing the project allows the freedom to experiment and demonstrate some radical alternative and doing it in public allows anyone (including dominant project maintainers and users) to learn from it.
- People that don't have any interest in the original project, but do have interest in aspects of the reinvention can benefit. For example, I haven't used Calibre in years and don't plan to now, but I'm grateful the author shared this because I hadn't heard of Tauri prior or seen a Bun project, and now I'm exploring the repo and learning something new.
There are many good open source projects that could be great if more developers would work on them.
Eh. Sounds like a Zero-Sum Fallacy.
I personally tend to write much better software if I know there is any chance someone else might see it
Sounds like a personal problem. I'm not sure how to fix it, but it seems like you should take more pride in your work even if nobody will see it.
Contributing to the dominate project in any space requires working within the constraints of the existing code
This is a GOOD thing. The world doesn't need more half baked open source solutions. The world needs more open source code that many people have carefully worked to perfect. If you have not already worked on a project then you don't understand it and the constraints and compromises that went into the original. I've seen many times where someone has attempted to do better (often in closed source software) and when they were done ended up with a similar mess to the first as there are often not-obvious things involved in the original decision that you end up reinventing.
Sounds like a Zero-Sum Fallacy.
Not a Fallacy - there are only limited number of people working on open source. There is only a limited amount any one person can contribute. As such there often is a zero sum.
Again, don't get me wrong - there are sometimes good reasons to start from scratch. However if you don't understand the real problems of the original you cannot hope to fix them. Many of the problems are political - there are a number of people working on open source that I cannot stand and thus I refuse to work on projects they work on so if I'm really interested a new project is sometime the only option. Sometimes rewriting in Haskell or Rust or whatever the language of the day is really is worth doing. However the default should be work on a project that is already there.
Could not disagree more, with this attitude there would never be any new open source projects!
It's slightly sad that you have to give this disclaimer, especially on a forum for hackers.
Don't be sad! Based on the most recent threads discussing Calibre [0] it would seem that the disclaimer isn't strictly necessary, and actually OP appears to be addressing a problem that resonates with a fair number of people on HN!
That said, there is always going to be someone that will "have a few qualms with this app" [1] regardless so it doesn't hurt to get in front of the question.
[0] See:
- Calibre New in Calibre 7.0 -- https://news.ycombinator.com/item?id=38316846
- Calibre replacement considerations -- https://news.ycombinator.com/item?id=37364885
Calibre is a champion of ebook management functionalities, but I have never been satisfied with its experience, nor its developer. It was never designed to be a hosted library accessible over the web, and it's a very poor experience in my opinion.
If there was a solid competitor that was more open, more modern, and designed with the hosted library solution in mind, I would no doubt start using it.
A Calibre library CLI, anyone?
A nice idea
I wrote a remarkably hacky cli for that rdr. Basically to
- open the last book opened with the CLI
- select from the last n books so opened
- return the results of a query and narrow with rofi
I figure this covers a huge portion of my normal usage.
Pushing books to device would be useful too.
I would say "it doesn't fit my needs and would require a complete backend rewrite". I think you never have to justify this sort of thing when youre desires for an app are so much different than what is available currently
Right now, this is a hobby project
Gives me a bit of early Linus Thorvalds vibes: "just a hobby, won't be big and professional like gnu" [0] - that said, I wish you all the best for the project :)
Kudos on shipping your hobby project! Looks slick. And a calibre cli would definitely be appreciated -- I hate having to click five levels deep in a dozen menus :P
If the "reader" and "editor" aspects are explicit non-goals (fair enough), then what actually does Citadel do for users? Is it mainly to be a portal to view/sort books and click on them? Is there a roadmap where you envision more features?
Good question! My main use for Calibre has been to collect my epubs (mostly) in one place, and occasionally sync them to my ereader. When I add books, I need to grab metadata for the book like title, ISBN, etc.
Citadel will (and does) support editing metadata for books — titles, authors, (in future) tags, custom columns. That’s certain. Syncing to devices will come too, in time, as will downloading metadata from online sources.
But what I don’t plan on adding is a way to edit book content or an embedded ereader. There are lots of great ereader apps & devices already, and I don’t think epub editing is commonly used (compared to keeping a collection).
While I don’t have a road map, I’m always open to feedback and ideas!
(Edit: other features like format conversion and stripping DRM are likely to happen too. Ideally with crates or plugins, to make it a bit easier to extend)
One feature that would be great is being able to sync/upload the metadata to something like a Bookwyrm[1] instance (there's apparently a `/create-book` endpoint for this) - trying to find and retype all the information from, e.g., Amazon is a pain.
A BookWyrm plugin is a great idea!
Do you think you’d make a plugin interface to get books? For example from Standard Ebooks, via some sort of API? My guess is that they’d be ok with that usage if you ask and you can solve some cold start problems that way. And, of course, get some more eyeballs on their fantastic project.
I'm not sure yet. Standard Ebooks does great work, but as far as I know there is no API, so that makes pulling books harder. Once Citadel supports plugins, I'd be happy to see some content sources as plugins!
Hey I'm guessing by Calibre CLI you mean to do something like manage your book collection, but if all you want to do is convert books, Calibre does come with a CLI called `ebook-convert`. It works with many file formats like epub, pdf, azw3, mobi and more.
Example: `ebook-convert file.epub file.azw3`
Calibre comes with a lot of CLI - see https://manual.calibre-ebook.com/generated/en/cli-index.html
Indeed it does. I know that I am not entitled to dictate Calibre's direction, but it would be nice if these tools were cleanly broken out with minimal dependencies. If I recall correctly, the Calibre developers are not interested in this and have stated it explicitly and the only real alternative I have heard of is ebook-converter [1] which simply lifted the relevant portions of code out of Calibre.
the Calibre developers are not interested
I know it was not a criticism but I would like to point out that Calibre seems to be developed also entirely by one person [0]. I understand why they would be hesitant to make big changes that would generate more work for them that would not be seen by most (GUI) users.
[0] https://github.com/kovidgoyal/calibre/graphs/contributors
Love the project. Calibre is absolutely an amazing tool, but it never really adapted into the whole self-hosted era. I really like the focus on maintaining compatibility with the Calibre library. Personally the features I use the most are the folder watching and automatic book conversion.
Now if there was support for multiple Calibre libraries...
[Calibre] never really adapted into the whole self-hosted era
Could you explain that in more detail? It seems to me that Calibre is totally self hosted.
I give an example. I use Calibre to import ebooks as epub (if they are not already epub, which they usually are,) maybe change their metadata and add a cover if they don't have one. The books go to Calibre's directory and then I sync to my phone using syncthing, like everything else I exchange between my laptop and my phone. I know that Calibre has a way to send books to devices but I think that it requires either a hardware reader or some interoperable app. I prefer working only with the file system. It always works no matter what I have on my phone.
All of that seems self hosted to me, or do you mean having a server somewhere at home or on the internet with the ebook collection?
I also use the editor to fix typos or to create ebooks from text files.
All of that seems self hosted to me, or do you mean having a server somewhere at home or on the internet with the ebook collection?
I''m not the person you replied to, but having it run on a server somewhere is exactly what "self hosted" means to me.
So maybe https://manual.calibre-ebook.com/server.html even if it seems that the database must be on the same machine the UI runs on, or be copied to a server with all the books. That could be the criticism of the parent post.
The content server is fine, but it's the managing of the library that is done in the desktop application. I have a home server that I use to host Jellyfin and such, and Calibre is the one application that wasn't really built to be managed from a web interface. In fact, the Docker container I use basically pipes an X11 environment to a VNC web client.
Do you mean viewing multiple libraries at once? What would be the benefit of that over having one library with saved filter views?
I did once have segregated Calibre libraries. One for cookbooks, one for technical books in PDF and one for 'regular' books like novels and nonfiction in EPUB.
The only reason I had it like that was so I could sync just the cookbook files to another device via Syncthing, or only the technical books. It didn't last, it was a pita to manager (three different auto-add folders) and I reunified them after 9 months or so.
Being able to switch between multiple libraries under one application, and being able to assign those libraries based on a logged on user is sort of what I'm talking about. My partner and I have two very different tastes in books, and managing them under one library is a pain.
Looks great! Just last week I tried to use Calibre again and fell into the black hole that is its UI.. Thought of donating some UI/UX work but felt like that would be a multi-year project. Perhaps I could support you with UI/UX instead?
Just to offer a different opinion: I never had any issues with the Calibre UI and usually get stuff done quickly and efficiently in it.
Honest question: Are there any examples of native smartphone apps which are offering such a functional wealth as Calibre does in a much better/easier way?
Years ago I was very happy with the GoodReader app, haven't used it recently though.
Goodreader comes close (ios)
My understanding of the calibre project from watching it over the years, is that improvements are typically not welcome. Kovid Goyal already has what he wants, and if you any everyone one else want something else, you’ll need to fork (and then maintain)
He’s done amazing work, but he’s one of those very opinionated people that can quickly and arbitrarily become weirdly hostile to things, even when others offer to do the work.
I had the same impression. Calibre is immensely powerful but highly opinionated. A bit like a chaotic work bench, where you know exactly where everything is, if you are the originator of the chaos.
I don't use Calibre long enough to be bothered by the UI. I use it for at most 10 minutes every few months. Import Epub, update metadata and send to device. Spend a couple of months reading the books then repeat import process again.
does it mangle japanese titles/authors by transcribing to pinyin chinese like calibre does? do the drm plugins work? might check it out and switch.
By mangling, you’re just referring to the folder/file names in the Calibre Library folder, right? The actual metadata in the app/book are fine?
Likely referring to that, yeah. And yes, the metadata is fine - but it’s a joke that I can’t find any Japanese books I own on my file system because Calibre’s author has renamed them to something that makes sense neither in Japanese, nor English, nor even Chinese.
It’s particularly dumb as it will have taken even more work on his part to map the characters to pīnyīn than it would’ve to just preserve the actual titles.
With a modern filesystem, absolutely. With FAT32 that was prevalent when Calibre was first released in 2006... I'm not so sure.
Good lord, no. Does Calibre do that? My greatest fear is having to build bad things like that for backwards compatibility, because Calibre would require it.
While I haven't tested non-ASCII titles, there is no reason it shouldn't support it. I'm planning on doing some perf testing today and I'll make sure I test global names.
I’ve been caught out by that recently - it’s not considered a bug! With the advised workaround changing Calibre’s interface into Japanese?!
Anyone else having trouble building and running it (Ubuntu 23.10)?
thread 'main' panicked at libcalibre/src/infrastructure/domain/book/repository.rs:20:62: called `Result::unwrap()` on an `Err` value: ()
Yes — sorry! I hadn't pushed local changes yet. I didn't expect a big reception!
`main` is up-to-date now and SHOULD be building. Feel free to email me (phil at denhoff dot ca) if you run into issues, or add a GitHub issue.
I would be glad to help you set up GitHub Actions to build branches if that interests you. On the one hand, I'm for sure not a GHA (nor rust nor bun) ninja, but OTOH I do have a passion for painless builds :-)
Thanks for the offer! If you'd like to, I've written up a quick issue outlining what I think we need for a build: https://github.com/every-day-things/citadel/issues/3
It sounds like some folks have issues building on Linux, but FWIW I had no problems building in a Codespace.
Thanks! I appreciate the response.
This looks really cool and I plan on checking it out. Ironically, I recently built a desktop app using the same stack (Rust + Tauri + Svelte) for managing audiobooks. Shameless plug in case anyone is interested: https://gitlab.com/fonner/audiobook-locker#audiobook-locker
I'll be looking at your project for inspo :) Thanks for sharing!
If you guys could become best friends and integrate both projects into one ultimate ebook/audiobook tool, that would be great :)
Seconded.. an ebook tool and an audiobook tool both incidentally made on the exact same stack?! Sounds like a match made in heaven.
This is cool, I have toyed with Tauri in the past for some projects.
Curious what brought you to pick Svelte and Tauri for this project? Were you already familiar with them?
Side note : this invocation
bun dev -- -- -- -- --server ...
made my day :-)Yeah. Made me wonder what's going on there.
From the README
Yes, that is 4 pairs of --s. This is because Bun will pass the first pair to another bun run command, the second will go to tauri dev, the third will go to vite dev, and finally the last set will go to Cargo when running the backend. It's a mess!
pnpm realized how bad UX those -- when launching scripts were, and reorganized their arguments so that they are not needed anymore.
Is there a publicly accessible book catalog where books can be searched by isbn, title or author?
There's the Open Library <https://openlibrary.org> (a project of the Internet Archive) and OCLC WorldCat.
Yes: Amazon, Google Books, Anna's Archive and Wikipedia Book sources.
Do you plan to handle custom folder hierarchy?
Not with Calibre libraries. If you ever go back to using Calibre, I’m not sure how it will respond to having all of the files “messed up” in the wrong spot — the docs are quite clear that there is ONE way to store books.
That said, the end goal is to have a native Citadel way to manage libraries and that WOULD support custom folder hierarchies.
Great ! I will follow your project
Does this support custom metadata? For example I have a custom field I call "Folders" to hierarchically label/organize my eBooks. Would be nice to be able to browse through that or search under a specific label/folder.
Not yet :) Custom Columns (if thats what you mean!) are on the todo list though — I have a couple in my library, one for tracking Read state and another for tracking word count.
Filtering is only on author & title for now. I’m looking to rewrite filtering once I have support in libcalibre for more data, so that you can easily filter by custom columns.
How do you search / organize your data in Calibre now? What would be ideal?
Custom Columns (if thats what you mean!) are on the todo list though — I have a couple in my library, one for tracking Read state and another for tracking word count.
Yeah, I have a bunch of them, one is "Read Status" (read, reading, to-read), another is "Recommended By" to track books recommended by various people, and the last one is "Folders" which I use to arrange books in a folder-like hierarachy.
For example, you could have a "Finance" folder, and then "Finance.Investing", "Finance.Personal Finance", "Finance.Trading" subfolders.
The calibre content server does support searching and viewing these columns, and in the desktop app you see the tree on the left pane which you can quickly browse.
To search a specific "folder" you'd use something like: #folder:"=Finance.Personal Finance" title:"happy money"
Cool project, and best of luck to you. However, you might want to rethink the name as Citadel is also an established company - a large hedge fund with deep pockets that's not afraid of using it's lawyers.
That's not how trademark works
One manages the books the other cooks the books. I can see how that could be confused...
Would you mind explaining what is going on in the backend? You seem to be using both Rust and Bun/Typescript?
The backend is straight Rust. Bun is used as a package management tool & as a script runner, to invoke Tauri commands that start up a Vite webserver to provide the UI, and start something that rebuilds the binary when Rust files change.
Typescript is used for the Svelte UI. Svelte talks to the Rust backend through Tauri (by default). Both support a headless/web mode where the Svelte frontend connects to the backend over HTTP.
Awesome, thanks for responding. Very keen to give Tauri a spin, seems like a happy middle way between native toolkits (which I'm just never going to spend the time to learn properly) and Electron (which I'm just never going to love).
How was your experience with Tauri? I'm loving Rust and would like a lightweight web backend (like Flask in Python) to use with Rust.
Tauri has been excellent. Occasionally I have to do some GitHub issues spelunking to find answers to issues, but that's common with piece of tech. Overall it's been great and I'll happily use it again.
the problems i have with calibre are
1- i can't store my files in my own organizational structure
2- it doesn't tell you if an import for a particular file succeeded or not. sucks when trying to import hundreds of files.
Great insight, thank you! I've never run into issues importing but I don't import in bulk. That's certainly something to keep in mind!
Nice project! I love Calibre's functionality, but I too was kind of frustrated by its UI and started designing an interface that kind of looks like a mixture of pre-Apple-Music iTunes and iBooks. I only created one screen so far, but feel free to take a look: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
My main question was, how could Calibre's main functionality be presented in a UI that feels native to macOS?
Since this doesn't try to be cross-platform, I might try to build this as a SwiftUI app with your Rust backend if I find the time.
Kudos on actually publishing this! It might be hard to maintain something that keeps up with Calibre's development, but it sure seems like a fun hobby project :)
This looks great! I'm no designer, so I always appreciate seeing other folks' ideas on how to design things. To shout out some other inspiration, there have been a few Calibre redesign projects.
In particular, Kemie Guaida[1]'s redesign posted to Reddit has been a major design inspiration (and she deserves credit on the repo, which I will address shortly): https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
You're able to see the entire overview of the project here: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
As best I can tell there's no licensing information in the repo
Fixed: it's MIT licensed
Rad - Good luck.
Thank you!
Performant: Citadel should feel just as fast as Calibre.
Pretty low bar to clear, honestly.
Either way this is cool to see. Maybe we'll see more energy behind Calibre as a result.
Yes, that’s ehh not what I intended, really.
Citadel has a lower bar of “no slower than Calibre” but I expect it to be MUCH faster. For example — Calibre takes 8s to start up on my laptop. Citadel is nearly instant. I’d like to keep it that way!
This is great, thank you! I really love Calibre, but like you, I find the UI difficult.
I will download and install today! Good luck!
What do you find difficult about the calibre interface? It seems quite intuitive to me. To be fair, I only add metadata (tags, scores, descriptions, covers, series info etc) and polish ebooks. I just add books to my ereader after that.
Looks super cool! What about kindle sync?
In the future, for sure!
Interesting! For a while now, I’ve started working on a similar project with the same general idea, although I settled for SvelteKit and browsers instead of native apps:
https://github.com/project-kiosk/kiosk
I just can’t keep motivation up long enough to finish it…
it looks great. keep up the work, i would like to use it
Interesting
Awesome.
I have been using calibre-web for many years, which (unlike Calibre) has a decent look and all the functionality I need.
Quick post about Citadel https://denhoff.ca/posts/replacing-calibre
Does anyone have advice to help my friend who has a few-hundred-k backup ebooks on a drive somewhere? I realize a calibre-style interface for this many books is out of the question, but I always felt bad that he can't easily access the material because just doing an ls or opening the directory in the file manager slows his system down. Has anyone found any solutions for this? Indexing the content isn't required, but would be an awesome plus.
Cudos for having Andreas malm at the front of the git repo ! :)
Very nice! It’s great to see another Tauri + Svelte project too. I’ve been building a video editor with that stack for a while now and it’s been pretty awesome.
I dreamed of writing a native app[...] but ran into issues building the UI. Plus, whatever I built would only work on macOS. I started writing Citadel using Tauri[...] to have a cross-platform desktop app.
Have you looked at Zotero? This would fit well within that ecosystem, and it's hard to think that shoring up its support for ebooks (and Calibre compatibility) would be poorly received. I could imagine Citadel being an opinionated Zotero "distribution"—in the vein of OS distros or the various Jetbrains IDEs—with its own landing page and downloads, to better cater towards and more tailored for people primarily interested in reading for pleasure (rather than an emphasis on academic research, which tends to throw people off when recommending it, even though most of the pieces are there for ebook management...)
Very cool project! I wish it would support old Calibre plugins though.
This thing is incredible. I tried a competitors app before using this and found that they were mostly going around in circles all day long. This actually looks like it has promise.
The challenge that I face is Calibre absolutely craters after 20,000+ ebooks.
I understand that most folks probably have 10-300 books, but in my case I have some large libraries I tried to use with Calibre, and it just absolutely DIES.
The steadfast decision to exclusively use SQLite doesn't help. I opened a PR back in 2016 or so, but the maintainer was quite enthusiastically opposed to changing the DB layer or making it pluggable.
This is strange, Kovid Goyal, for all his apathy towards UI, is an excellent performance engineer. Check out his production terminal emulator kitty. He's more than capable of building extremely scalable systems. I would be surprised that this is a bottleneck caused by Calibre's core code.
He is however an asshole on the level of Linus when it comes to bug reports and community support.
That kitty and Calibre come from the same brain is a marvel of the open source world.
Not really, kitty was forked from putty.
Calibre afaik was created from scratch.
Those are two entirely different circumstances from which to start from and it’s inevitable they would have vastly divergent results even in the same hands.
No kitty is not a fork of putty. Thats a different kitty. https://github.com/kovidgoyal/kitty vs https://github.com/cyd01/KiTTY
I stand corrected.
It wouldn't be a (sub-)thread about Calibre without someone pointing out the last bit. Made me chuckle.
This keeps getting parroted in every thread about Calibre, but Kovid is not an asshole when it comes to community support, it was more of a one time incident. Here is a comment I’m copying from a different HackerNews thread:
“ It's a big shame that whenever anything related to Calibre is posted, top comments will often be how arrogant is author is. I used to think the same. But when I read his comments history in GitHub, he doesn't seem a dick to me at all. So I googled his name, and end up in a forum. It completely changed my mind. Contrary to what people believe, Dovid Goyal is the most friendly programmer to his users. He spent lots of time answering questions in the forum https://www.mobileread.com/forums/forumdisplay.php?f=166. His answers include where is a menu located, how to convert a book from one format to another, helping the user to debug the exact the problem with Calibre. He has been doing this daily and is very responsive. You can expect an answer to your question in the same day. (The forum used to allow you to read user's comments history anonymously, but now you need a account to do so)”
This is one of the frustrations I have heard about Calibre's dev: very resistant to certain ideas or making Calibre more extensible.
Over 25,000 books. Still runs quite nicely even on a slower mini PC. I suspect you are using a unusual use case like keeping the library on a fat32 drive.
What happens after 20K books? I am at about 13K books, and I haven't run into any issues yet. I make extensive use of virtual libraries in Calibre, and tags for organization.
20.000 rows is a joke for SQLite (and for any database).
SQLite couldn’t be the problem. Scales well to millions and millions of rows. Clearly something else going on.
What makes you think SQLite is the bottleneck?
Sounds very reasonable. I am pretty sure that SQLite isn‘t the problem. It is actually faster than traditional client server DBs in many cases.
Agreed. Unfortunately rewriting the Calibre UI is probably more work than maintaining Python 2.
What does Python 2 have to do with anything?
Calibre hasn't used Python 2 in years.
Calibre author initially was so against Python 3 that he offered to maintain Python 2 by hinmself
This is a pretty good sign
Of what?
"red flag" I meant
I assume you mean not just the aesthetics, but the entire UI/UX, and I agree. Calibre is a very powerful and capable app, hindered by its unintuitive and clunky UI.
The UI is actually fine to me. I say that as someone who uses it a lot though. What specifically do you not like about it?
Calibre has a "good UI" the way GIMP and QGIS have "good UI"s. They're opinionated, idiosyncratic power tools in spaces where a large part of the audience don't want to learn a UI that doesn't resemble those of more popular or initiative tools in the same space.
It took me the better part of the year to figure out how and why QGIS wouldn't just let me draw geometry like I can in a vector drawing tool. I still have to read the docs every time to figure out most selection manipulation actions in GIMP or decode the icons.
With Calibre and GIMP in particular, most people don't need most of its functionality, and easier but weaker tools exist that can do the same things. Almost all of my image editing is in Krita now because it's about as powerful and much more intuitive. If Citadel becomes the Krita of ebook readers, I'd readily use it just on the UI even if it's just as unstable.
Speaking personally it doesn’t seem to be designed with the same principles/patterns of most software out there (regardless of platform or era), making its UI operate in ways that run counter to expectations. It’s an odd duck, which doesn’t make it bad but does greatly increase friction in usage.
The UI does not conform to any UI guidelines known to me, certainly not the macOS ones. In fact, the macOS UI guidelines are violated in a lot of places (e.g. icons in menus). The icons themselves are unfamiliar and kinda random, also with distracting colors. There are way too many options directly available, making the UI complicated and intimidating. I'd like the UI to be much sleeker and opinionated towards the layperson. Like I said, Calibre is a very powerful tool, and I appreciate that. Its advanced features are very welcome, but they should be presented differently in the UI.
It is incredibly slow and unstable. I spent literally weeks adding large (100gb library) into it. I had to add chunk by chunk. It was crashing constantly and process was so slow that I moved it to a separate machine. Then I tried to use web interface to search and it was super slow.
And I’m not even talking about non intuitive UI. For something that has supposed to be a library it’s nowhere near real library (alphabetical list of authors).
What do you mean?
I just click the 'Author' column header and it sorts.
100gb is very big though. I guess I'm not surprised you would have problems with a library that size.
This post on reddit is relevant.
https://www.reddit.com/r/Calibre/comments/jl3wd2/how_large_i...
Nah, it is bad. It's ok if you are using it to maintain something like a public library and want control over every little detail. But if you just want to store your personal lib - it's just too much of "how do I do X" every time.
And why would anyone force themselves with its "aesthetic" when you can spin up calibre-web container and get a nice UI and an OPDS in a few seconds?
I still can't get Calibre-web to display any books. I followed the linuxserverio docs and can't find any errors. It even says it successfully connected to the calibre.db, but still no books.
I agree heavily as a casual ebook reader. If Calibre had a team of designers I think it would be extremely popular and widespread. Its not very intuitive and the UI/UX is quite bad. It suffers the curse of all powerful applications in that regard.
I am going to try and use it again today and see if I can get used to it. It really is fantastic for a free product especially for a power user.
It’s not that it’s ugly, it’s that the terminology in the UI is not beginner friendly or cohesive. To send a book to a device I usually do it via the email feature of kindle, yet it’s not under “send to device”, it’s under “share “ or whatever. I have a list of books on the main UI. I convert one, it ends. Where is that? Do I now have two books? Is the one there in the new format? Same when I send a book and it gets converted before sending. Is that converted file somewhere? I don’t know. I just check the kindle and hope it was right.