ApiFirst en Leanpub

LeanPub

LeanPub es una plataforma de publicación y distribución de libros electrónicos.

Básicamente, creas y escribes tus libros de forma totalmente gratuita usando una variante de Markdown y cuando quieres publicarlo un pipeline de LeanPub lo convierte en Pdf y ePub sin que tú tengas que hacer nada.

Tú decides el precio de venta mínimo y el recomendado y ellos se encargan del "carrito de la compra" a cambio de un porcentaje de la venta. Si consigues vender un buen puñado de ejemplares puedes sacarte algún dinero (o eso espero, yo todavía no he llegado a ese punto)

Recientemente, he publicado en esta plataforma un libro sobre ApiFirst y Micronaut (https://leanpub.com/api-first-micronaut) y en este post voy a contar un poco mi experiencia con la plataforma y el proceso.

Idea

Antes del verano se me ocurrió preparar una charla sobre ApiFirst vs CodeFirst.

Los últimos proyectos he ido aplicando ApiFirst y me ha parecido interesante y con muchas ventajas sobre CodFirst y me parecía un tema interesante a contar (y de paso quitarme la caraja de encima).

Como a mí me gustan que mis charlas sean sobre todo prácticas y tocando código empecé a montar un par de ejemplos para compararlos en la charla, pero poco a poco caló la idea de que era mucho material para una charla de 40 minutos y de ahí surgió la idea de crear un pequeño libro/tutorial/guía

Hace muchos años había publicado un libro en Amazon, Tutorial Básico en Asciidoctor https://jorge-aguilera.gitlab.io/tutoasciidoc/, y la experiencia fue muy interesante, pero esta vez quería probar algo más sencillo que el proceso de Amazon. Tenía Manning y LeanPub y al final opté por este porque me pareció supersencillo (y con mejores condiciones para los autores)

INFO

Al igual que el Tutorial de Asciidoctor, ApiFirst con Micronaut es un "libro abierto" y tanto el texto como el código están disponibles sin necesidad de comprarlo en https://github.com/jagedn/petstore-apifirst

Plataforma LeanPub

Una vez que te creas una cuenta en LeanPub puedes prácticamente empezar a escribir tu libro en el apartado "author/create a book"

Cosas a tener en cuenta:

  • La capa gratuita te ofrece un editor web para crear los capítulos (ficheros), ordenarlos, editar, etc.

  • Hay una capa de pago que te permite "linkar" el libro a un repo Github o a una carpeta Dropbox y cada vez que la actualizas se regenera el libro.

  • Configurar todas las opciones del libro es tedioso, son muchos apartados sueltos, pero fáciles de ir rellenando

  • La capa gratuita (creo) que tiene un máximo de previews para que valides cómo va quedando tu libro. No sé el límite, yo he generado unas 10 sin problemas.

Yo he usado la capa gratuita y el editor web. Como la idea que se aplica es DocAsCode con Markdown el editor es supersencillo y sin florituras.

El editor web te permite crear capítulos y ordenarlos simplemente arrastrándolos. También te permite subir imágenes

La pega es que, si usas la capa gratuita, tienes que usar el editor web. Luego cuento cómo me he organizado yo.

Libro

Aunque tenía una primera idea de cómo quería organizar el libro no sabía con seguridad todos los capítulos y temas que iba a tocar.

Esto no ha sido un impedimento.

Básicamente, he ido enumerando los capítulos 00-getting-started, 01-intro, _02-apifirst, etc. sabiendo que si se me ocurría un capítulo que fuera en el medio tendría que renombrar el resto, como así ha ocurrido. Lo bueno es que al definir los "bloques" generales he ido teniendo una idea más clara de qué cómo lo iba a contar.

INFO

También me he inspirado en el índice de algunos libros técnicos para ayudarme a crear el hilo conductor.

Por suerte, o desgracia, no he incluído muchas imágenes, apenas 3 y por probar cómo quedaban más que otra cosa. En cualquier caso tienes que subirlas al directorio Resources que te crea LeanPub automáticamente.

Proceso

Como ya he mencionado, quería que el libro estuviera accesible para cualquiera sin necesidad de comprar el libro (llámame gili) por lo que le he creado el repositorio Github, pero es que además he aprovechado este repo para subir también los ejemplos.

Este repositorio NO es compatible con lo que espera LeanPub (en la capa de pago) pero me ha servido para llevar "el control" del proceso de edición.

Al poco de ir editando desde la web de LeanPub me di cuenta el porqué es gratis. Es un rollo andar editando vía web, el saltar entre capítulos, el copiar y pegar …​ Así que antes de continuar implementé "mi" proceso:

En el repositorio git crearía un directorio dedicado al libro, con las carpetas Manuscript y Resources (al estilo de lo que espera LeanPub aunque no vaya a usarlo)

Creé los ficheros Markdown 00-getting-started.md, 01-intro.md, etc. y copié el texto que llevaba escrito de cada uno. Y los *versioné

A partir de aquí he ido usando IntelliJ tanto para escribir como para ir creando los ejercicios. Sin perder el foco al cambiar entre el IDE y el editor LeanPub. Aprovechando el plugin de Intellij Markdown es fácil ir viendo cómo va quedando lo que escribes.

WARNING

LeanPub usa Marqua, una variante de Markdown, que no he explorado del todo, pero el 99% es Markdown

Cuando me sentía que llevaba algo interesante escrito, un capítulo completado, etc. antes de versionarlo copiaba a mano todos los ficheros desde Intellij a LeanPub. Sí, si tu libro son muchos capítulos NO es viable, pero al tener visualmente qué ficheros/capítulos habían cambiado solo me centraba en esos.

Una vez actualizado LeanPub entonces ya versionaba y subía los cambios.

Así mismo, si creía que había completado un capítulo o quería repasar cómo iba quedando "solicitaba" una preview. Simplemente, es pulsar un botón y a los pocos segundos recibes un email que ya está listo y puedes descargarlo.

Los cambios de la revisión los hacía sobre el código usando el IDE, NUNCA usando el editor de LeanPub. De esta forma en la siguiente actualización, antes de versionar, sabía qué ficheros actualizar.

Al tenerlo en local es más fácil reestructurar los capítulos (renombrar ficheros) y seguir con el foco en el libro. Luego en unos pocos minutos se ajustan en el editor web de LeanPub.

Firefox extension

Aunque es una idea embrionaria y no sé si llegaré a desarrollarla he estado pensando en hacer una extensión para Firefox/Chrome que permita pulsando un botón subir los archivos de tu local al editor Web

Configuración

En un principio iba a enumerar todas las configuraciones que tienes que tener en cuenta antes de publicar el libro, pero ni las tengo anotadas ni creo que me las sepa todas. Seguramente me hayan faltado muchas, pero sí es cierto que la plataforma es superintuitiva (y en castellano) como para ir descubriéndolas

La única configuración que voy a mencionar a tener en cuenta antes de comenzar el libro:

  • Tienes que tener cuenta en Wise o en Paypal (preferiblemente Wise) para recibir los pagos

Este texto ha sido escrito por un humano

This post has been written by a human

2019 - 2026 | Mixed with Bootstrap | Baked with JBake v2.6.7 | Terminos Terminos y Privacidad