Update for the week ending on Friday, Sep 11, 2026
Refactoring English
- Continued working on “Anti-Patterns in Software Blogging” post
Book
- Created a print version of the book
- Ordered it from Lulu, so I’m expecting to receive the print in about two weeks
- If it works, I’ll offer a print + ebook option
- I’m more excited than I expected about the print version. It will be fun to have something I can hold.
- Made
- Added an “About the Author” page
- Improved the style of the “Good” and “Bad” examples
Website
- Backported book improvements to web excerpts
- Fixed low-contrast web elements and added an automated contrast checker
- Combined the table of contents with the list of public excerpts
- Worked on team licenses
Feedback app
- Fix behavior so users can have multiple in-progress comments
- Previously, clicking outside of an unsubmitted comment dialog box would discard the comment without warning.
Post-purchase automations
- Updated language in post-purchase email to stop referring to “early access”
- Updated Stripe webhook to handle deferred payment methods properly
- Started switching Stripe webhook handler to be source of truth for customer purchases
- I currently use my mailing list as the source of truth, but that’s causing problems when users unsubscribe from the mailing list but still want access to the book. It shouldn’t, because they should remain in Buttondown as unsubscribed but still visible, but Buttondown is getting more aggressive at pruning my mailing list in ways that I don’t like.
- Dropped weird behavior an LLM added in (that I missed) where the webhook handler tries to infer customer names from emails (e.g., john.smith@example.com becomes “John.Smith”)
PicoShare
PicoShare is a minimalist web-based file sharing tool I’m working on. I’m often frustrated that I can’t just send someone a link directly to a file because every file-sharing service tries to re-encode images/video or wrap their own viewer around other files, so I’m making a simple self-hostable tool that lets you upload files and share them with other people.
- Started working on support for password protection on file downloads
Mail Archiver
I’ve been meaning to take my old mail offline because it’s a lot of sensitive information to store in plaintext with a third-party vendor, but I’m deathly afraid of losing email, so I’m trying to be cautious about the move. I don’t want to delete a folder just because I think I have it archived and later find out I didn’t capture all the messages.
- Switched to a more elegant system for updating job rows
- Used server sent events that update specific rows instead of polling and re-render the entire table on every change
- Switched from NixBuild to NixCI