I've built a thing

Date: 2018-03-08

I like reading comics and for the last couple of years I've been reading and collecting a bunch of them – can't wait for the next time I change flats, yay. Because the idea of moving flats terrorises me, I've often thought about moving to digital and stop buying paper comics. But I can't, I really like to feel the physical books on my hands. I suspect that in a few years, when big sized tablets such as the iPad Pro 12" become affordable, I might make a full move to digital. But until then, it's all about paper.

Something I've realised though is that once I own the physical comic book and I've read it, I don't really mind too much re-reading or looking at it digitally. So a few months ago I came with the idea of digitalising my entire comic book collection. I'm doing this for the following reasons:

  • I want to be able to access all my comics in any way I like, at the best possible quality (I'm looking at you, Comixology), from any device I like. Because they are mine!
  • I want to unrust my Android and iOS skills.
  • I want to give some use to my Raspberry Pi 3.
  • I'm curious about the technical challenge all of this represents.

Stage 1 - Collect all the comics

The first thing I need in order to create a digital comic book library is its content: digital copies of my comic books. Finding most of them online isn't hard, but getting some of them is plainly impossible: I have some Spanish comic books that have never been digitalized, so I've had to find their English versions instead. And no, I won't scan them myself.

Apart from my physical library, I also have a big number of comics on Comixology: mainly the ones that I don't really mind not having on paper because I don't care too much about them or perhaps because Comixology has had an amazing sale, which unfortunately for my wallet, happens often.

It has taken me weeks to get to a point where I have almost the same content in both bookshelves, digital and physical.

Stage 2 - Put it on the local network

For that, I've acquired a NAS that I've connected to my local network. A 2TB WD My Cloud does the job.

Imgur

After putting all the digital comics on the network hard drive, a quick test to make sure this will be accessible on my local network, it works!

Imgur

Stage 3 - The apps

This has taken longer than the other "stages". I've built 3 different apps to get everything working the way I like:

  1. A Django app which works as a server for delivering the directories with comics and the individual pages of each comic when reading them. The code can be found here. I've built the actual "comic reading app" using React, because I wanted a quick way of giving the API a test before writing the native apps and it has turned out to be a very simple solution to the problem of having to write a web comic reader. I'm also using Django Rest Framework for putting together a very simple API to serve individual comic pages.
  2. An Android app which works as a client and connects to the Django API and lets me read my digital comics. I've recently added "offline" reading, so I can download my comics when I'm at home and read them anywhere I like. It works fairly well, but I want to improve the "downloading" feature - I'm updating the UI too much showing the download progress on the main thread, looking into writing a service for dealing with that. The code can be found here.
  3. I've also started writing an iOS app, which is almost done now! I can already browse the folders and read a comic, but the reader definitely needs more love. Zooming and page browsing is not there yet. I also need to add the offline mode to this one. The code can be found here.

Stage 4 - Setting up the Raspberry Pi 3

Simple, cheap and way more powerful than the Raspberry Pi 2 (which I also have lying around).

A few details on what I'm running here:

The only thing I need to do for this to work is mount the network drive on a local directory and point the comic-reader-home app to that location.

Imgur

Now, some screenshots of how the apps look like

Web reader

Imgur

Imgur

Android app

Imgur

Final thoughts and moral concerns

Unfortunately, in order to get digital copies of some of my comic books I've had to obtain them from dark places on the internet – I'm sorry, but after spending £30 on a heavy and nice hardcover comic book, I'm not going to spend £20 on its digital version. Some others, especially a lot of the Image ones, I've been able to get through amazing sales on Humble Bundle (in this case I've actually bought some comics twice) and I've been able to get some others from the Comixology "backup" option they offer on some comics - not on many though.

Marvel and DC have been doing something pretty cool during the last year or so: when you buy a paper issue, some of them will come with a "code" that will unlock that same comic book on the digital comics platform Comixology. That's great and I hope others like Image, Dark Horse, Dynamite, etc. will start doing the same at some point. I really prefer reading them on paper, but I also enjoy re-reading some of them digitally because the colours look so great on a screen.

All that said, my conscience is clean because I know I've spent honest money on supporting the artists, editors, distributors and librarians by buying a lot of paper comics from many, many comic shops.

Finally, I didn't want to finish this blog post without actually showing how my actual collection look like:

Bookshelves 1

Bookshelves 2

Bookshelves 3

(Yes, I know it's all a bit chaotic)

PS: Buy comics. Support the artists, editors, distributors, librarians and everyone who takes part in the process of bringing this great art to you.