Refactoring English: Month 19

One-Line Summary

Do people pay more for a finished book?

New here?

Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers.

Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall.

Highlights ๐Ÿ”—︎

  • Refactoring English had its second-best month of sales.
  • I examine my sales numbers to see whether people are more likely to purchase a complete book as opposed to an almost-complete draft.
  • I completed my book feedback tool.
  • I’m trying a new tool to track my time.

Goal grades ๐Ÿ”—︎

At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:

Invest at least five hours into improving the Refactoring English website ๐Ÿ”—︎

  • Result: Spent about three hours improving the website
  • Grade: B-

I improved the website a bit, but it could use more polish.

Attract 30k unique readers to the Refactoring English website ๐Ÿ”—︎

  • Result: Got 17.5k unique readers.
  • Grade: B-

I adapted my chapter on design docs to a free excerpt. It did well on Lobsters and Reddit, but it flopped on Hacker News.

I was surprised at how positive the reaction was to the design docs chapter. Generally, when I talk to developers about design docs, their main reaction is that they hate design docs and everything about them. The comments on my post were refreshingly supportive of design docs in general and my recommendations in particular.

Complete my reader feedback tool ๐Ÿ”—︎

  • Result: The tool is up and running.
  • Grade: A

I got stuck for a while on the great AI blockade, but I pushed through by thinking more critically about splitting up large features and being less precious about code quality. In this case, done is better than perfect.

Refactoring English metrics ๐Ÿ”—︎

MetricMay 2026June 2026Change
Unique visitors1,75217,523+15,771 (+900%)
Revenue from pre-orders$407.61$1,441.86+$1,034.25 (+254%)
Total Revenue$407.61$1,441.86+$1,034.25 (+254%)

June was the best month of book revenue since the initial crowdfunding launch. The increase in visitors was because of my excerpt about design docs.

How much difference does the last 8% make? ๐Ÿ”—︎

For the last few months, the Refactoring English website has listed my book as almost complete in early access. I was curious to see what the sales impact would be of going from an almost complete book to a fully complete book, so I looked at weekly sales:

Marking the book as complete didn’t have an obvious impact on weekly sales, but what if I look at the daily averages?

Okay, so there was a slight increase after I marked the book as complete.

I was also curious whether Americans, in particular, bought at higher rates after I finished the book. I get email notifications every time someone purchases the book, and it seemed like more of my sales were from customers paying the US price, but I hadn’t measured carefully. I checked the data to see if that was true:

Interesting! Completing the book had no impact on sales for customers purchasing with regional pricing, but customers purchasing in USD purchased at a 20% higher rate in the three weeks after the book was complete.

I didn’t include sales after I published my latest excerpt because that obviously changes the numbers a lot, so let me treat that as its own category:

But that’s always a little skewed because Americans make up the largest share of my readers. What if I normalize revenue per visitor?

Oh, that’s a switcheroo. By normalizing per visitor, it flips the story. Now, it’s the Americans that buy at the same rate for a finished vs. unfinished book. The readers outside the US are the ones spending about 20% more per visitor on the completed book.

I’m not sure how to use this information, but it did satisfy my curiosity.

Readers are leaving useful feedback in my book’s app ๐Ÿ”—︎

I’ve asked readers for feedback about my book in the past, and some readers gave enthusiastic feedback, but they were a small minority. I thought it would be fun and helpful to make a web-based feedback app that allows readers to leave notes as they read the book. It seemed like something I could knock out in a week or two. And now, two short… months later, I’ve got it up and running!

A demo of my book feedback tool, where readers can leave me feedback directly in the book, and I can reply.

My feedback tool has only been live for a few days, but it does seem to encourage readers to give more feedback. One reader just finished the book and cited the feedback app as one of his favorite parts of the experience, so that was neat.

Using a time tracking tool again, 15 years later ๐Ÿ”—︎

About once a year, I ask myself: where does all my time go? This question comes up for me whenever I’m focused on a project, but it’s not progressing as quickly as I expect. Here’s me asking myself this question a few times over the years:

This time, I thought, “Maybe I should use a time tracking tool.”

About 15 years ago, I tried a time tracking tool called RescueTime. I didn’t find it that useful, but I thought maybe I’d keep at it for a few weeks and see what happened. Then, I realized I was letting a random company collect data about every window that appeared on my screen, and I promptly uninstalled RescueTime.

I was wishing for an open-source version of RescueTime, when I thought, “Wait, there probably is one.” And there is. It’s called ActivityWatch. It’s open-source and privacy-first. It records all your window and browsing activity, but the data all stays local to your machine.

The problem is that ActivityWatch is way less polished than RescueTime. I couldn’t understand at all what the timeline was trying to show me:

I couldn’t understand the timeline in the official ActivityWatch web interface.

You’re supposed to assign rules to tell ActivityWatch how to categorize your activities, but I found that UI difficult to use as well:

I found the categorization in the official ActivityWatch web UI difficult to use.

I was about to give up on ActivityWatch, and then I thought, “Well, the data collection part probably works. What if I vibecode my own frontend?”

So, I did, and it was pretty easy. I’m starting with a command-line tool, but I plan to expand it to a web app.

To use my custom ActivityWatch frontend, I create a config file to categorize activities based on app name, window title, and/or URL:

- name: Book/Feedback Site
  rules:
    - url: "*refactoring-english-feedback*"
    - window_title: "*refactoring-english-feedback*"

- name: Book/Website
  rules:
    - url: "*refactoring-english-landing*"
    - window_title: "*refactoring-english-landing*"

- name: Book/Writing
  rules:
    - app: Zathura
    - app: Code
      window_title: "*refactoring-english*"
    - app: firefox
      window_title: "mtlynch/refactoring-english *"

And then the output looks like this:

$ go run ./cmd/app --config data/config.yaml
...
Book               1h34m   19.7%
  Feedback Site      48m   10.0%
  Writing            46m    9.7%

So far, the data is interesting, but the biggest challenge is that it’s hard to categorize all of my activities automatically. For example, I can add a category for browsing Wikipedia, but am I doing it as part of legitimate work on my book? Or did I just go down a rabbit hole, and I’m suddenly reading about inventors killed by their own inventions?

Wrap up ๐Ÿ”—︎

What got done? ๐Ÿ”—︎

  • Finished the Refactoring English feedback tool.
  • Made fixes to the Refactoring English ebook for consistency and EPUB compatibility.
  • Made a demo video for Little Moments.
    • I’m quite proud of the silly photos in this.

Lessons learned ๐Ÿ”—︎

  • Customers don’t care as much as I’d expect about the difference between a 100% complete book and an almost-complete book.
    • Readers do purchase the finished book at higher rates, but the effect is pretty small when you control for number of website visitors.

Goals for next month ๐Ÿ”—︎

  • Pitch to 5 podcasts to talk about Refactoring English.
  • Attract 30k unique readers to the Refactoring English website.
  • Wrap up early access, and declare the 1.0 release of my book.

Read My Book

I'm writing a book of simple techniques to help developers improve their writing.

My book will teach you how to:

Read Michael's Book