Start to finish on self-publishing a technical book
Sunday, March 31, 2024
I've been writing this blog since 2015, and my writing picked up pace in 2022. That year I wrote 37,000 words, more than the 33,000 I'd written up to that point. It has accelerated since then.
At some point, I realized that I've put in a lot of time and effort writing here, and got the idea to bundle it up into a book. The motivation here isn't to make money, because publishing books is rarely lucrative. Instead, there are two purposes: to give me a physical representation of the work I've put in, and to give people a way to buy a token of appreciation of my writing. It's also a nice way to read the back catalogue; I've purchased similar books from authors I enjoy as a way to read their work away from the screen.
My book is now available in print! It's on the publisher website, and also through the usual suspects like Amazon. The direct purchase choice benefits us more, and that gets passed along in donations.
Here's how I did it, from start to finish[1]. And by the way: every dollar I make from this will be donated to benefit trans rights. Happy Trans Day of Visibility!
The content
The first step is to get the content, or at least a table of contents. Since this is a collection of my blog posts, most of the work is done. I only really had to make the choice of what to include.
Books are typically a certain length, and that's about how much I'm producing per year right now. That made the choice pretty easy: 2023 would be its own volume, and 2022 and prior years would also be one volume, since they're the same total word count.
I just copied those posts into a new directory, since they're all in Markdown already.
Making the book draft
With the content in one place, I had to convert them into a format I could get printed. I had chosen IngramSpark for printing and distribution, so this meant I needed a PDF of the content.
I looked at a few different tools for this part and settled on Quarto. Ultimately, I can't remember my exact reasons, but the other tools either wouldn't run for me, didn't like taking in a pile of separate files, or had formatting I didn't like without options to change it. It's a solid choice, and I'll use it for future volumes. For the other book I'm working on with a friend[2], we'll probably evaluate different tools since we're not bringing existing content to it.
To get it set up, I updated the config file to point to all my content. Pointing to the content was straightforward, but I wound up with a lot of other customizations I'll talk through one-by-one. The finished file looks roughly like this:
project:
type: book
book:
title: "Technically a Blog Volume 0"
author: "Nicole Tietz-Sokolskaya"
chapters:
- index.qmd
- 2022-07-09-running-software-book-reading-group.qmd
- 2022-09-11-going-to-recurse-center.qmd
- 2022-09-24-rc-week-1-recap.qmd
- ...
toc: true
toc-title: "Table of contents"
toc-depth: 1
format:
html:
theme: cosmo
titlepage-pdf:
titlepage: formal
titlepage-theme:
elements: ["\\titleblock", "\\authorblock", "\\vfill", "\\footerblock"]
titlepage-include-file:
- includes/copyright.tex
- includes/dedication.tex
coverpage: none
coverpage-title: ""
coverpage-bg-image: "img/cover.jpg"
links-as-notes: true
include-in-header:
text: |
\usepackage{fvextra}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}}
\raggedbottom
\usepackage{emptypage}
documentclass: scrbook
fontsize: "9pt"
mainfont: "DejaVu Sans"
from: markdown+emoji
geometry:
- paperwidth=5.5in
- paperheight=8.5in
- top=0.75in
- bottom=0.75in
- left=0.5in
- right=0.5in
The project section says what type of project it is, because it'll use different options and produce a different artifact for books than for other things.
Then the book section is where we put in some metadata like the title and author, and we list all the chapters, each getting its own Markdown file.
I did have to adjust some of the markdown, because the heading levels that I use in my blog posts were usually like # Heading which would become a separate chapter, so all my headings had to go in by one level to be things like ## Heading.
This was tedious to adjust in every single file!
The following group of statements is describing the table of contents and gives some light configuration. I limited depth to 1, which means only chapter titles, but it's neat that you can easily adjust it to have the subheadings in the table of contents also.
The format section is where I spent the most time and pain.
Normally you have a pdf block in it, but I have titlepage-pdf, because I used the titlepage extension which let me do a titlepage somewhat easily.
The theme I picked (formal) was fairly minimal, but I still had to do some customization.
In retrospect, I probably could have achieved everything I wanted without the extension by using the includes that Quarto offers for PDFs.
The two main includes I had here were the copyright page and the dedication page.
These are frontmatter, and go before the table of contents.
They're also typically not numbered!
Then I added a bit of extra LaTeX in the header, like \raggedbottom to not perform vertical justification[3] and \usepackage{emptypages} to remove headers and page numbers from empty pages.
Which reminds me: page numbers.
Before this project, I didn't give much thought to where page numbers were or where chapters start in books. It turns out there's a standard! You start chapters on the right-hand page (traditionally, and for English-language), which is also where you start numbering. But you don't number the pages of the frontmatter, and the table of contents is numbered in Roman numerals. Those page numbers are typically located on an outer corner of the page. The first proof copy I received had all of this off-by-one so page numbers were on the inside corners, making them all but useless. That was fixed by inserting a blank page, but did cost me a couple of weeks to get the second proof copy!
Emoji also turned out to be a problem, and oh do I ever use them in my writing. I tried to find a font that supported all the emoji I have used, which is how I wound up using DejaVu Sans. But that didn't work out, as many were still missing in the first proof copy which I'd just not seen. I fixed it by removing them or replacing them with simple character representations, because changing the font at this point would likely also change the page count, which would change the cover template, and... it wasn't worth the hassle.
So, that's everything I did for the content PDF. If I knew what I know now it would be pretty fast, but it was a very slow process to figure this out for the first time.
Commissioning cover art
Another thing I wanted was nice cover art, if I could afford it. I hadn't worked with an illustrator before, so I didn't know what rates to expect. Fortunately, a fellow Recurser, Julia Evans, gave me a recommendation for an illustrator she's worked with before, and he had time to work with a new client!
He was very easy to work with. We established the basic scope of the project in a few emails and talked about a price and timeline. Then he put together a few concept sketches to get feedback. I provided feedback, and we landed on a design that both of us were really happy with! He was super flexible and was great to work with. At the end of the project, he even suggested a duplex cover if it's within budget—it costs marginally more to print, but looks really nice having an abstract pattern on the inside.
Ultimately we finished within the timeline we talked about, and the budget didn't change. The book itself was done later than I'd intended, but that slip was entirely on my side from making a few late decisions (in the next section) which pushed it back.
All told, for a modest fee, I got really nice cover art that is also designed as a template I can reuse for future volumes. I can't wait to work with him again on another project!
Bureaucracy and tedium
Publishing something does come with some bureaucracy. Self-published books sometimes come with an ISBN[4] provided by the printer, whether that's IngramSpark or Amazon. When you see the publisher listed as Amazon, that's why.
Instead of using ISBNs provided for free by the printer, I chose to buy my own ISBNs and be my own imprint. This gives the most flexibility. If you use the printer's ISBN, then it can only be used with them, and each other platform that distributes it may have a different ISBN, so things like reviews can get split apart. ISBNs cannot be reassigned, so once you decide how you do it you're locked in. If you have your own ISBN, it can be consistent across all the platforms. And it looks that tad bit more professional to have your own imprint.
Which brings me to that. An imprint is the trade name a publisher uses to publish works. One publishing company can have many imprints. I heard some good reasoning to form an LLC to protect myself, so we ended up forming May 11 Publishing LLC, "we" being my wife and I. A Pennsylvania LLC has minimal fees and reporting requirements, so it's not expensive to maintain like Delaware LLCs can be. This set back the project a while to get it set up but it was worth it. We also had to get a business bank account, and ended up using Novo because it was really easy to set up entirely online without phone calls.
The ISBNs are officially owned by our publishing company, not by us personally. This also opens the door for us publishing other works with multiple authors or publishing for other people, if anyone were interested in that. I think we're a pretty dang good writing/editing team, and we have another project we're exploring with a collaborator.
Printing and distribution
One of the big reasons I picked IngramSpark for printing is because they also handle distribution, so most booksellers will pick up the book automatically, fulfilled by print-on-demand when someone orders it. And they have a ton of options for printing of good quality, so you can get exactly what you want.
I had to pick a size fairly early on so the illustrator could make the cover the right size