If you are reading this, you probably care about, or are at least mildly interested in, open source. Like you, I care about and am interested in open source. Perhaps unlike you, I am also a webcomic artist. You can find my work at Herpaderp.party.
This is a story about how I came to use and, indeed, vaunt open source. I’ll also tell you about how and why I produce my comic using open source tools and infrastructure.
The story begins in 2005 when I got my first computer as an off-to-college gift. It was an iBook G4. I carefully booted it and set it up according to the manual. It worked. I didn’t feel as excited as I expected. I didn’t feel cool, or dangerous, or in control, or like I should start wearing a leather trench coat like in The Matrix five years before. I knew a place called SourceForge, which had programs that weren’t written by Apple, but I didn’t see anything I really needed there. I installed The Matrix screensaver and moved on to my next challenge.
In 2009, my computer ended its useful life. Apple abandoned the G4’s PowerPC architecture, and my laptop fossilized under my fingers as I typed my senior thesis. In a youthful episode that I don’t regret, but that I’m also grateful not to remember clearly, I got engaged to my computer-loving boyfriend and allowed him to install and reinstall and fix and reinstall a series of PowerPC-compatible Linux distros. That and I finished my senior thesis, all over a period of three months. The evidence of the transition is still in my documents folder: five ClarisWorks drafts, one plaintext draft, and one OpenOffice draft.
Admittedly, I was salty about the change.
Linux at the time was not as sleek and well fed as it is today, although it was a miracle of usability compared to the last time I’d seen it, which was in the late 90s. The obscure Apple drivers and already-obsolete processor made it a less-than-ideal platform for anyone’s open source test drive. But for some reason, both the boyfriend (let’s start calling him Rtzq0, since that’s his name) and I stuck with it. Maybe it was the immediate post-college poverty.
Aside from being cheap, however, I am also extremely stubborn and don’t like being told what to do. And the fact that my still-working computer was taken away by those that made it ground my gears considerably. Those first Xfce installs were hair-pulling painful, but there was something else there too—something different. It had a sense of lightness, of freedom, of control, and of power. That was the feeling that had been missing from my first boot-up—a sense of defiance and even, perhaps, of hope.
Eight years on, @Rtzq0 and I run a purely open source-based household (aside from the firmware on the inkjet printer, the coffeemaker, and miscellaneous clocks). It’s pretty great. Inexpensive, morally correct, and intellectually demanding open source software and ideology are pillars of our lifestyle. So when I committed to producing a daily webcomic, options like Tumblr and ComicPress didn’t feed my enormous appetite for security, control, and flexibility.
What are the alternatives when you’re bootstrapping yourself into the webcomics industry? There aren’t many, and I was fortunate that @Rtzq0 already had enough experience in web stacks to advise me to consider building a custom one. Using the Pelican static blog generator as a base, we created a fairly decently robust webcomic creation framework that was robust enough to slap it into a new project so other people could mess with it. The barest alpha version of PeliComic is available for your pleasure, lulz, and bug testing on GitLab.
“kernel inception” by Roxanne Ritzke
Open source tools for webcomics
Now that we’ve got something to work with, here’s how I produce my comic from beginning to end, using free and open source tools. This is how I went from zero to full-on webcomic artist in less than a month.
The laptop I draw my comics on is a Lenovo X230T I got off of eBay. Along with enough RAM to max it out, it cost about $300. Two SSDs, one for the OS and one for /home, plus an i7 processor make it plenty speedy for comics. It runs Linux Mint and MATE, my go-to distro and desktop environment. Comics are made in Krita, the open source digital painting application, with some tweaks done in Inkscape and GIMP. All-important daily backups are made automatically to a local wireless NAS (Network-Attached Storage), running NAS4Free on 18TB of RAID 6.
Once I have a finished comic stored locally, it’s time for git to shine. Git manages the PNG image files of the comic, the reStructuredText files of the corresponding pages on the website, and the HTML and Jinja files associated with Pelican/PeliComic that actually build the website. I write the reStructuredText file with the comic’s title and alt text, save it, and then move into a Python virtual environment for testing. Pelican has a neat feature in which you can automagically create a local development server to preview your website, so I use this to ensure everything looks good. When that’s done, I stop the server, add and commit the files, and push them to GitLab.
On GitLab, GitLab CI takes the content files and all the files for Pelican and gives them to a Docker container running Alpine to build. The files for the completely rebuilt website then get sent to GitLab Pages, a static website hosting system. The entire pipeline runs in under 10 minutes, and a fresh, perfect website is presented to the world.
If anything in this sequence breaks, the website is kept available by Cloudflare, the one free-but-not-open component. Cloudflare keeps the website up if GitLab goes down, and it can reduce load times for visitors. It also takes some of the strain off of GitLab services, making HerpaDerp a “better neighbor” to GitLab.
As you can see, I get a great deal of mileage out of open source. It supports my daily life and my work as well. Sometimes, I used to feel bad for not being able to contribute more fully to software projects. Now, I think I just hadn’t found my own “itch to scratch” yet. Producing a free and open webcomic turned out to be what I cared about enough to make my own solution when existing options weren’t satisfactory.
Give PeliComic a pull request if you’re so inclined, and thanks for reading.