Show HN: Citadel, eine mit Calibre kompatible E-Book-Verwaltungs-App
(github.com/every-day-things)- Citadel ist eine App zur Verwaltung von E-Book-Bibliotheken, die eine von Calibre lesbare E-Book-Bibliothek beibehält und dabei eine bessere UX sowie ein schnelleres Nutzungserlebnis anstrebt
- Die Kernziele sind Abwärtskompatibilität mit Calibre, eine einfach zu bedienende und ansprechende Oberfläche sowie eine Leistung, die sich deutlich schneller als Calibre anfühlt und niemals langsamer ist
- Derzeit handelt es sich um frühe Software, daher sind Bugs und fehlende Funktionen zu erwarten; die App kann abstürzen, grundlegende Funktionen können fehlen oder sie kann eine E-Book-Bibliothek beschädigen
- Citadel ist weder ein E-Book-Reader noch ein Editor für E-Book-Inhalte; Dateien werden mit der Standard-App geöffnet, und der Fokus liegt auf der Verwaltung von Metadaten wie Titeln
- Stabile Builds gibt es unter Releases, Entwicklungs-Builds über GitHub Actions; für die Entwicklung werden Bun und Rust benötigt
Was Citadel erreichen will
- Citadel ist eine App zur Verwaltung von E-Book-Bibliotheken und setzt Abwärtskompatibilität mit Calibre als zentrales Prinzip voraus
- Von Citadel geänderte Bibliotheken müssen von Calibre lesbar sein
- Das Projekt hat drei Ziele
- Abwärtskompatibilität mit Calibre: Von Citadel bearbeitete Bibliotheken müssen von Calibre lesbar sein
- Gute UX: Die App soll einfach zu bedienen und optisch ansprechend sein
- Leistung: Sie soll sich deutlich schneller als Calibre anfühlen und darf niemals langsamer sein
Was Citadel nicht ist
- Citadel ist kein E-Book-Reader
- Es gibt bereits gute E-Book-Reader-Apps, und Citadel öffnet Dateien in der Standard-App des Nutzers
- Citadel ist kein Editor für E-Book-Inhalte
- Wenn du den eigentlichen Inhalt eines E-Books statt Metadaten wie dem Titel bearbeiten willst, ist Citadel kein Ersatz
- Es wird keine 100%ige Funktionsgleichheit mit Calibre angestrebt
- Das betrifft vor allem den Plugin-Bereich
- Einige fortgeschrittene Funktionen von Calibre werden möglicherweise nicht umgesetzt
Aktueller Status und Download
- Citadel befindet sich in einer sehr frühen Entwicklungsphase
- Die App kann abstürzen
- Grundlegende Funktionen können fehlen
- Sie kann eine E-Book-Bibliothek beschädigen
- Wenn du Citadel mit einer Calibre-Bibliothek verwendest, sind regelmäßige Backups erforderlich
- Halbwegs stabile Builds gibt es unter Releases
- Entwicklungs-Builds gibt es über GitHub Actions
- Es wird darum gebeten, alle Probleme oder Abstürze zu melden, die bei der Nutzung irgendeiner Version auftreten
Hinweise zur Installation unter macOS
- Der macOS-Build ist noch nicht signiert
- Wenn
Citadel.appdirekt geöffnet wird, erscheint eine Warnung, dass die Datei „damaged“ sei - Das Problem lässt sich beheben, indem das Quarantine-Attribut der Datei entfernt wird
- Weitere Hinweise: Removing the Quarantine attribute from the file
- Beispielbefehl:
xattr -d com.apple.quarantine /Applications/Citadel.app/
Entwicklung und Build
- Voraussetzungen für die Entwicklung sind die Installation von Bun und Rust
- Pakete installieren:
bun install - Entwicklung starten:
bun run dev # or just bun dev - Die Befehle für Linting und Formatierung sind wie folgt
- Gesamten Code formatieren:
bun format - Formatierung des gesamten Codes prüfen:
bun format:check - Gesamten Code linten:
bun lint - Backend formatieren:
bun format:backend - Backend linten:
bun lint:backend - Frontend formatieren:
bun format:web - Frontend linten:
bun lint:web
- Gesamten Code formatieren:
- Eine Vorschau der App kann auch ohne Backend ausgeführt werden
- Da das Rust-Backend nicht vorhanden ist, aber als vorhanden angenommen wird, werden Fehler angezeigt
bun dev:app - Ein Produktions-Build wird nach Erfüllung der Entwicklungsvoraussetzungen mit den folgenden Befehlen erzeugt
bun install bun run build
Updates und verwandte Projekte
- Citadel kann nach App-Updates suchen und sie auf Anfrage installieren
- Die automatische Update-Prüfung kann in den Settings unter
Auto updates: On/Offdeaktiviert werden - Die Installation erfolgt immer explizit; der UI-Text lautet
Install and restart - Details zu Maintainer-Einstellungen und Release-Workflow stehen in
docs/updater-and-releases.md - Citadel orientiert sich an Calibre und ist vom Calibre-redesign-Figma-Prototyp inspiriert
1 Kommentare
Meinungen auf Hacker News
Auf die Frage „Warum eine neue App bauen, statt zu bestehenden Projekten wie Calibre Web beizutragen?“ lautet die Antwort: einfach, weil ich Lust dazu hatte.
Im Moment ist es ein Hobbyprojekt, und mir geht es mehr darum, mit Spaß Software zu bauen, auch wenn sie rauer ist, als ein bestehendes Projekt zu erweitern. Citadel ist so konzipiert, dass es abwärtskompatibel zu Calibre ist, sodass man Calibre Web weiterhin verwenden kann.
Auch im Backend habe ich den Code, der mit Calibre in Berührung kommt, in eine separate Library ausgelagert, und später soll sie auch in anderen Projekten nutzbar sein. Eine CLI für die Calibre-Library scheint ebenfalls möglich.
„In vielen Bereichen gilt es fast als Allgemeinwissen, dass man das Rad nicht neu erfinden soll. Aber manchmal möchte ich trotzdem dazu raten, es zu versuchen. Allein durch den Prozess wird man besser, und am Ende entstehen so auch bessere Räder. Weil Leute es einfach ausprobieren.“
https://www.youtube.com/watch?v=YOZnqjHkULc
Calibre ist, selbst wenn man die Funktionen kennt, ziemlich mühsam zu benutzen, sodass man es weder Großeltern noch technikaffinen Leuten guten Gewissens empfehlen kann.
Trotzdem wünsche ich dem Projekt viel Erfolg.
[0] https://www.cs.cmu.edu/~awb/linux.history.html
Wenn es einen soliden Konkurrenten gäbe, der offener und moderner ist und eine gehostete Library mitdenkt, würde ich wohl sofort wechseln.
Manchmal denke ich, wenn Calibre nur besser aussehen würde, würden die Leute erkennen, wie großartig es ist. Ehrlich gesagt ist es gar nicht so schlecht, und ich persönlich mag es, aber die Leute scheinen nicht über das Äußere hinwegzukommen.
Es ist ständig abgestürzt, und der Vorgang war so langsam, dass ich ihn auf eine separate Maschine ausgelagert habe. Als ich über das Webinterface gesucht habe, war auch das sehr langsam.
Von der nicht intuitiven UI ganz zu schweigen. Dafür, dass es als Library dienen soll, bleibt es sogar weit hinter einer echten Bibliotheksliste nach Autor in alphabetischer Reihenfolge zurück.
Ich verstehe, dass die meisten wohl eher 10 bis 300 Bücher haben, aber ich wollte ein paar große Libraries mit Calibre nutzen, und es hat wirklich nicht standgehalten.
Die Entscheidung, stur bei SQLite zu bleiben, hilft auch nicht. Um 2016 herum habe ich einen PR eröffnet, aber der Maintainer war ziemlich entschieden dagegen, die Datenbankschicht zu ändern oder austauschbar zu machen.
Außerdem kann man in ein paar Sekunden einen calibre-web-Container starten und eine saubere UI plus OPDS bekommen; warum sollte man sich also diese „Ästhetik“ antun?
Es ist nicht intuitiv, und die UI/UX ist ziemlich schlecht. Es leidet genau unter dem Fluch, den mächtige Anwendungen häufig haben.
Trotzdem werde ich es heute noch einmal ausprobieren und sehen, ob ich mich daran gewöhnen kann. Gerade für Power-User ist es für ein kostenloses Produkt wirklich hervorragend.
Gutes Projekt. Ich mag die Funktionen von Calibre, aber die UI frustriert mich auch ziemlich, deshalb habe ich angefangen, ein Interface zu entwerfen, das wie eine Mischung aus iTunes vor Apple Music und iBooks wirkt
Bisher habe ich erst einen Screen gebaut, aber man kann ihn hier sehen: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
Die Kernfrage war, wie man die wichtigsten Funktionen von Calibre in einer UI darstellen kann, die sich nativ für macOS anfühlt
Wenn man nicht auf Cross-Platform abzielt, könnte ich daraus irgendwann, wenn ich Zeit habe, auch eine SwiftUI-App mit Rust-Backend machen
Mit der Calibre-Entwicklung Schritt zu halten und es zu warten, könnte schwierig sein, aber es sieht nach einem interessanten Hobbyprojekt aus
Besonders das Redesign von Kemie Guaida[1], das auf Reddit gepostet wurde, war eine große Design-Inspiration, und ich muss die Credits noch ins Repository aufnehmen; das werde ich demnächst nachholen: https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
Die vollständige Projektübersicht findet man hier: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
[1]: https://kemielikes.design/
Ich habe gestern gemerkt, dass man unter Ubuntu 22.04, nachdem man einen Kobo-Reader angeschlossen hat, epubs einfach in das Verzeichnis
root/am Mount-Punkt/media/oakhaven/koboreaderkopieren kann. Dann erscheinen sie in der Bücherliste auf dem GerätAus irgendeinem Grund dachte ich, Bücher auf einen Kobo zu laden sei kompliziert, und habe immer nur Calibre verwendet, wenn ich Bücher vom Laptop auf den Kobo übertragen habe
Ich weiß, dass Calibre viele andere Funktionen hat, aber mir gefiel das Interface nicht, und ich bin froh, dass ich Calibre oder ähnliche Apps jetzt nicht mehr verwenden muss
Es ist kein spezielles Format nötig, und Standardformate wie ePub funktionieren gut
Deshalb habe ich mich gefragt, wie der Kindle weiterhin so beliebt sein kann. Vielleicht ist es der First-Mover-Effekt, aber ein E-Book-Reader, der ePub und PDF nicht lesen kann, fühlt sich an wie ein Audioplayer, der MP3 und AAC nicht abspielen kann
[1]: https://pgaskin.net/kepubify/
Ich glaube, ich habe Bücher zunächst per USB geladen und dann tägliche Nachrichten und weitere Bücher per rsync synchronisiert. Einige Inhalte wurden automatisch erzeugt und in ein Verzeichnis gelegt, etwa durch automatisches Sammeln oder E-Mail-Abos; anderes habe ich manuell hinzugefügt, etwa indem ich nach dem Kauf ein neues Buch kopiert habe
Eigentlich ist das kein besonders kompliziertes Problem, aber Calibre macht sehr viel mehr, als Bücher nur in eine bestimmte Ordnerstruktur zu kopieren
Ich weiß nicht, ob das wirklich einfacher ist, als einfach den Ordner zu öffnen und Copy/Paste zu machen, aber Citadel aktualisiert die Metadatendatei, die Calibre verwendet, wenn es erkennt, welche Bücher auf dem Gerät sind, sodass nicht alle Dateien im Ordner gelesen werden müssen
Sieht gut aus. Erst letzte Woche habe ich versucht, Calibre wieder zu benutzen, und bin in dieses schwarze Loch von UI gefallen. Ich habe überlegt, UI/UX-Arbeit zu spenden, aber das hätte sich nach einem mehrjährigen Projekt angefühlt
Stattdessen könnte ich vielleicht bei der UI/UX dieses Projekts helfen
Er hat erstaunliche Arbeit geleistet, aber er ist einer dieser Menschen mit sehr starken Vorlieben, und selbst wenn jemand anderes die Arbeit übernehmen will, kann er bei manchen Dingen schnell und willkürlich auf seltsame Weise feindselig werden
Dann lese ich ein paar Monate Bücher und wiederhole den Importvorgang
Ganz ehrlich gefragt: Gibt es Beispiele für native Smartphone-Apps, die so funktionsreich wie Calibre sind und das Ganze deutlich besser und einfacher anbieten?
Ich finde es gut, dass ein Hobbyprojekt tatsächlich veröffentlicht wurde. Sieht auch aufgeräumt aus. Und calibre CLI dürfte definitiv gut ankommen. Ich hasse es, mich durch fünf Menüebenen klicken zu müssen.
Wenn die Bereiche „Reader“ und „Editor“ ausdrücklich nicht das Ziel sind: Was tut Citadel dann konkret für Nutzer? Ist es vor allem ein Portal, um Bücher anzusehen, zu sortieren und anzuklicken? Gibt es eine Roadmap mit weiteren geplanten Funktionen?
Citadel unterstützt bereits teilweise und wird definitiv das Bearbeiten von Metadaten wie Buchtitel, Autor sowie später Tags und benutzerdefinierte Spalten unterstützen. Das ist sicher. Gerätesynchronisierung wird mit der Zeit ebenfalls dazukommen, ebenso die Funktion, Metadaten aus Online-Quellen herunterzuladen.
Allerdings gibt es keine Pläne, Buchinhalte zu bearbeiten oder einen integrierten E-Book-Reader einzubauen. Es gibt bereits viele hervorragende E-Book-Apps und -Geräte, und epub-Bearbeitung halte ich im Vergleich zur Sammlungsverwaltung nicht für etwas, das häufig genutzt wird.
Eine Roadmap gibt es nicht, aber Feedback und Ideen sind jederzeit willkommen.
Zusätzlich werden wohl auch Funktionen wie Formatkonvertierung und DRM-Entfernung dazukommen. Idealerweise möchte ich sie als Crates oder Plugins umsetzen, damit Erweiterungen einfacher werden.
ebook-convert. Sie unterstützt verschiedene Dateiformate wie epub, pdf, azw3, mobi usw.Beispiel:
ebook-convert file.epub file.azw3Sieht wirklich großartig aus, ich werde es mir ansehen. Ironischerweise habe ich kürzlich mit demselben Stack, also Rust + Tauri + Svelte, eine Desktop-App zur Verwaltung von Hörbüchern gebaut.
Falls es jemanden interessiert, hier etwas Eigenwerbung: https://gitlab.com/fonner/audiobook-locker#audiobook-locker
Mich würde interessieren, warum du für dieses Projekt Svelte und Tauri gewählt hast. Warst du damit schon vertraut?
Nebenbei: Diese Art, es auszuführen, hat mir den Tag versüßt.
bun dev -- -- -- -- --server ...Interessant. Ich hatte auch eine Zeit lang angefangen, an einem ähnlichen Projekt mit einer ähnlichen Idee zu arbeiten, habe mich aber statt einer nativen App für SvelteKit und den Browser entschieden.
https://github.com/project-kiosk/kiosk
Ich schaffe es nicht, die Motivation lange genug aufrechtzuerhalten, um es fertigzustellen.
Ein kurzer Artikel über Citadel: https://denhoff.ca/posts/replacing-calibre