Show HN: Citadel, una app de gestión de ebooks compatible con Calibre
(github.com/every-day-things)- Citadel es una app de gestión de bibliotecas de ebooks que busca ofrecer una mejor UX y una sensación de mayor rapidez, manteniendo una biblioteca de ebooks que Calibre pueda leer
- Sus objetivos principales son la retrocompatibilidad con Calibre, una interfaz fácil de usar y agradable a la vista, y un rendimiento mucho más rápido que Calibre, que nunca se sienta lento
- Actualmente es software en etapa temprana, por lo que se esperan errores y falta de funciones; puede fallar, carecer de funciones básicas o dañar la biblioteca de ebooks
- Citadel no es un lector de ebooks ni un editor de contenido de ebooks; abre los archivos con la app predeterminada y se enfoca en gestionar metadatos como el título
- Las compilaciones estables están en Releases, las de desarrollo en GitHub Actions, y para desarrollar se requieren Bun y Rust
Lo que Citadel intenta hacer
- Citadel es una app para gestionar bibliotecas de ebooks, y toma la retrocompatibilidad con Calibre como premisa central
- Una biblioteca modificada por Citadel debe poder ser leída por Calibre
- El proyecto tiene tres objetivos
- Retrocompatibilidad con Calibre: Calibre debe poder leer las bibliotecas editadas por Citadel
- Buena UX: debe ser fácil de usar y verse bien
- Rendimiento: debe sentirse mucho más rápido que Calibre y nunca ser más lento
Lo que no hace
- Citadel no es un lector de ebooks
- Ya existen buenas apps lectoras de ebooks, y Citadel hace que los archivos se abran en la app predeterminada del usuario
- Citadel no es un editor de contenido de ebooks
- Si lo que necesitas es editar el contenido del cuerpo del ebook, y no metadatos como el título, no es una alternativa
- No apunta a tener paridad funcional del 100% con Calibre
- Esto aplica principalmente al área de plugins
- Es posible que algunas funciones avanzadas de Calibre no se implementen
Estado actual y descargas
- Citadel está en una fase de desarrollo muy temprana
- Puede fallar
- Puede faltarle funcionalidad básica
- Puede dañar la biblioteca de ebooks
- Si se usa Citadel con una biblioteca de Calibre, se necesitan copias de seguridad periódicas
- Las compilaciones medianamente estables se pueden obtener en Releases
- Las compilaciones de desarrollo se pueden obtener en GitHub Actions
- Se pide reportar cualquier problema o fallo que ocurra al usar cualquier versión
Advertencias de instalación en macOS
- Las compilaciones para macOS aún no están firmadas
- Si se abre
Citadel.appdirectamente, aparece una advertencia de que el archivo está “damaged” - Se soluciona eliminando el atributo Quarantine del archivo
- Guía relacionada: Removing the Quarantine attribute from the file
- Comando de ejemplo:
xattr -d com.apple.quarantine /Applications/Citadel.app/
Desarrollo y compilación
- Los prerrequisitos de desarrollo son instalar Bun y Rust
- Instalación de paquetes:
bun install - Ejecución en desarrollo:
bun run dev # or just bun dev - Los comandos de lint y formato son los siguientes
- Formatear todo el código:
bun format - Verificar el formato de todo el código:
bun format:check - Lint de todo el código:
bun lint - Formato del backend:
bun format:backend - Lint del backend:
bun lint:backend - Formato del frontend:
bun format:web - Lint del frontend:
bun lint:web
- Formatear todo el código:
- Se puede ejecutar una vista previa de la app sin backend
- Como asume que el backend en Rust existe aunque no esté presente, se muestran errores
bun dev:app - La compilación de producción se genera con los siguientes comandos después de cumplir los prerrequisitos de desarrollo
bun install bun run build
Actualizaciones y proyectos relacionados
- Citadel puede buscar actualizaciones de la app e instalarlas cuando se solicite
- La búsqueda automática de actualizaciones se puede desactivar en Settings con
Auto updates: On/Off - La instalación siempre se realiza explícitamente, y el texto de la UI es
Install and restart - La configuración para mantenedores y los detalles del workflow de releases están en
docs/updater-and-releases.md - Citadel toma a Calibre como punto de referencia y se inspira en el prototipo de Figma de rediseño de Calibre
1 comentarios
Opiniones de Hacker News
Podría surgir la pregunta: “¿Por qué crear una app nueva en vez de contribuir a proyectos existentes como Calibre Web?”, y la respuesta es simplemente porque tenía ganas de hacerla.
Por ahora es un proyecto de hobby, así que me interesa más crear software de forma divertida, aunque sea más rústico, que ampliar un proyecto existente. Citadel está diseñado para ser retrocompatible con Calibre, así que también se puede seguir usando Calibre Web.
En el backend también separé el código que interactúa con Calibre en una biblioteca aparte, y más adelante quiero que otros proyectos también puedan usarla. También parece posible hacer una CLI para la biblioteca de Calibre.
“En muchos ámbitos, la idea de no reinventar la rueda se acepta casi como sentido común. Pero de vez en cuando quisiera recomendar que igual lo intenten. Solo el proceso los vuelve mejores, y al final también salen mejores ruedas de ahí. Porque la gente simplemente lo intenta”.
https://www.youtube.com/watch?v=YOZnqjHkULc
Calibre es bastante doloroso de usar aun conociendo sus funciones, lo que hace difícil recomendárselo tanto a los abuelos como a gente con conocimientos técnicos.
Aun así, espero que al proyecto le vaya bien.
[0] https://www.cs.cmu.edu/~awb/linux.history.html
Si hubiera un competidor sólido, más abierto y moderno, pensado como biblioteca alojada, creo que me cambiaría de inmediato.
A veces pienso que, si Calibre simplemente se viera mejor, la gente se daría cuenta de lo increíble que es. Sinceramente no es tan malo y a mí en lo personal me gusta, pero parece que la gente no logra pasar más allá de la apariencia.
Se caía constantemente y el proceso era tan lento que lo pasé a una máquina aparte. Probé buscar desde la interfaz web y también era muy lenta.
Ni hablar de la UI poco intuitiva. Para algo que pretende funcionar como biblioteca, ni siquiera se acerca a una lista real de autores al estilo de una biblioteca, ordenada alfabéticamente.
Entiendo que la mayoría tendrá unos 10 a 300 libros, pero intenté usar Calibre con algunas bibliotecas grandes y realmente no aguantó.
La decisión de insistir solo con SQLite tampoco ayuda. Abrí un PR alrededor de 2016, pero el mantenedor se opuso con bastante fuerza a cambiar la capa de base de datos o hacerla reemplazable.
Además, si en unos segundos puedo levantar un contenedor de calibre-web y obtener una UI limpia y OPDS, no sé por qué tendría que aguantar esa “estética”.
No es intuitivo y la UI/UX es bastante mala. Sufre tal cual la maldición que suelen padecer las aplicaciones potentes.
Aun así, hoy voy a volver a probarlo para ver si puedo acostumbrarme. Especialmente para usuarios avanzados, es realmente excelente para ser un producto gratuito.
Buen proyecto. Me gustan las funciones de Calibre, pero su UI también me resulta bastante frustrante, así que empecé a diseñar una interfaz que se siente como una mezcla de iTunes antes de Apple Music e iBooks
Todavía solo hice una pantalla, pero se puede ver aquí: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
La pregunta clave era cómo mostrar las funciones principales de Calibre con una UI que se sintiera nativa de macOS
Si no apunto a multiplataforma, quizá podría intentar convertirlo en una app SwiftUI con un backend en Rust cuando tenga tiempo
Mantenerlo al día con el desarrollo de Calibre podría ser difícil, pero parece un proyecto de hobby divertido
En particular, el rediseño que Kemie Guaida[1] publicó en Reddit fue una gran inspiración de diseño, y también tengo que darle crédito en el repositorio, así que lo agregaré pronto: https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
El panorama completo del proyecto se puede ver aquí: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
[1]: https://kemielikes.design/
Ayer me di cuenta de que, en Ubuntu 22.04, después de conectar un lector Kobo, basta con copiar los epub al directorio
root/del punto de montaje/media/oakhaven/koboreader. Entonces aparecen en la lista de libros del dispositivoPor alguna razón pensaba que cargar libros en un Kobo era complicado, y solo usaba Calibre para pasar libros de mi laptop al Kobo
Sé que Calibre tiene muchas otras funciones, pero no me gustaba la interfaz, y me alegra que ahora ya no tenga que usar Calibre ni apps similares
No hace falta ningún formato especial, y formatos estándar como ePub funcionan bien
Por eso me preguntaba cómo Kindle seguía siendo tan popular. No sé si es efecto de ser el primero, pero un e-reader que no puede leer ePub y PDF se siente como un reproductor de audio que no puede reproducir MP3 y AAC
[1]: https://pgaskin.net/kepubify/
Creo que primero cargaba los libros por USB y luego sincronizaba las noticias diarias y libros adicionales con rsync. Parte del contenido se generaba automáticamente y terminaba en el directorio, como recolecciones automáticas o suscripciones por correo, y otras cosas las agregaba manualmente, como copiar libros nuevos después de comprarlos
En realidad no es un problema muy complejo, pero Calibre hace mucho más que copiar libros a una estructura específica de carpetas
No sé si de verdad es más fácil que simplemente abrir la carpeta y copiar/pegar, pero Citadel actualiza el archivo de metadatos que usa Calibre al detectar qué libros hay en el dispositivo, para no tener que leer todos los archivos de la carpeta
Se ve bien. Justo la semana pasada intenté volver a usar Calibre y caí en el agujero negro que es esa UI. Pensé en donar trabajo de UI/UX, pero parecía que sería un proyecto de años
En cambio, quizá podría ayudar con la UI/UX de este proyecto
Ha hecho un trabajo increíble, pero es una de esas personas con gustos muy fuertes, y puede volverse rápida, arbitraria y extrañamente hostil con ciertas cosas, incluso si alguien más se ofrece a hacer el trabajo
Leo libros durante unos meses y luego repito el proceso de importación
Honestamente me da curiosidad: ¿hay algún ejemplo de una app nativa para smartphone que sea tan rica en funciones como Calibre y las ofrezca de una manera mucho mejor y más fácil?
Me gusta que hayan lanzado de verdad un proyecto personal. También se ve limpio. Y calibre CLI seguramente será bien recibido. No me gusta tener que hacer clic pasando por cinco niveles de menús.
Si las áreas de “lector” y “editor” no son objetivos explícitos, me da curiosidad qué es lo que Citadel realmente hace por el usuario. ¿Es principalmente un portal para ver, ordenar y hacer clic en libros? ¿Hay un roadmap con más funciones en mente?
Citadel admite, y ya admite en parte, la edición de metadatos como título del libro, autor y, más adelante, etiquetas y columnas personalizadas. Eso está claro. La sincronización con dispositivos también llegará con el tiempo, y también se agregará la descarga de metadatos desde fuentes en línea.
Eso sí, no hay planes de editar el contenido de los libros ni de incluir un lector de ebooks integrado. Ya hay muchas apps y dispositivos de ebooks excelentes, y no creo que la edición de epub se use tanto como la gestión de colecciones.
No hay roadmap, pero siempre estoy abierto a feedback e ideas.
Además, probablemente también se incluyan funciones como conversión de formatos y eliminación de DRM. Lo ideal sería implementarlas como crates o plugins para facilitar la extensión.
ebook-convert. Soporta varios formatos de archivo, como epub, pdf, azw3, mobi, etc.Ejemplo:
ebook-convert file.epub file.azw3Se ve realmente genial y pienso probarlo. Irónicamente, hace poco hice una app de escritorio para gestionar audiolibros con el mismo stack, es decir, Rust + Tauri + Svelte.
Por si a alguien le interesa, aprovecho para promocionarla: https://gitlab.com/fonner/audiobook-locker#audiobook-locker
Me da curiosidad por qué elegiste Svelte y Tauri para este proyecto. ¿Ya los conocías?
Es un detalle aparte, pero esta forma de ejecutarlo me alegró el día.
bun dev -- -- -- -- --server ...Interesante. Yo también empecé a trabajar durante un tiempo en un proyecto parecido con una idea similar, pero elegí SvelteKit y el navegador en vez de una app nativa.
https://github.com/project-kiosk/kiosk
No he logrado mantener la motivación el tiempo suficiente como para terminarlo.
Un breve artículo sobre Citadel: https://denhoff.ca/posts/replacing-calibre