A few weeks ago I started a new habit of publishing book excerpts that I find interesting at jmdavril.com/books.
I thought it would be valuable to collect these excerpts over a long period of time, say 10 years. I love reading and I have been wanting to commit to a web project with a long-term horizon.
As I read physical books, I was immediately annoyed by the rewriting of the excerpts with my keyboard. So I took on building a simple mobile app to take care of the writing for me. An app for converting pictures of book pages into structured text, using OCR, and for publishing the outputs to my personal static website.
The code for the mobile app is open source and available at github.com/jmdavril/numinosum. It is built with Ionic 5 in React and uses Capacitor to call the camera. The main js dependencies are react-image-crop, an image cropper with a nice touch interaction, and tesseract.js, a javascript port of the Tesseract OCR engine.
I use the app to post the excerpts to an headless CMS API built with Strapi. My personal website is built with Gatsby and consumes that API to list the excerpts at jmdavril.com/books.