First, to lead with something like a call to action or exciting news: want to play around with the new writing interface? You can! Head over to beta.buttondown.email. (The interface will warn you, as will I: this is a real production environment with a different clientside skin, so don’t send any emails you aren’t meaning to send.)
The new writing interface is going well, and if I was surreptitiously delivered truth serum before sitting down to write this note I would probably describe the status as “totally production-ready but I’m a little anxious about the sweeping change so I’m currently manufacturing reasons to delay pushing it to full production for another week or two.” Around a hundred people are using it actively; around half of them have sent actual emails.
I started this workstream with a bunch of work that barely looked relevant at the time: unwinding some spaghetti code, breaking out nested modals into routes, a bunch of Serious Work that had zero impact on the actual look and feel of the writing interface. Now, in the home stretch of the workstream, I find myself engaged in something like the opposite of that work: a multitude of cosmetic changes that are important not because they touch the writing interface itself but because they emphasize the jarring disconnect between the interface patterns of the interface and the administrative side of the application.
Some of these things are pretty trivial: the new emails list (that’s right! there’s no more separate list of drafts versus scheduled emails versus archived emails any more, there’s just a single glorious list) has a different filter button than the subscribers list, and it’s all of fifteen minutes of work to change that.
Some are less trivial: the settings interface has been janky for a while and the relative cleanliness of the writing interface emphasizes that jankiness, to the point where a blind onboarding run I did last week had the customer comment explicitly that it “felt like two different apps.” (Yikes!)
There is a world in which I try to actually just compile all of these clientside changes into a comically large omnibus PR and launch that as a big bang. That feels like a bit of a coping mechanism: I need to remind myself that big interface rewrites are actually less scary than I think they are (I remember being terrified to hit the deploy button on the Vue 2 to Vue 3 migration, for instance, despite literally nothing interesting or scary happening as a result.) What will probably make the true difference is, as always, timing — I’m setting myself a hard deadline of the end of this month to get this merged in, and if that ends up being daunting then I can use that as a forcing function to cut scope.
Beyond that, no interesting news. I have a good amount of administrivia on my plate since this is the first full week of a new month, and I had a good number of (positive!) distractions last week keeping me from being good with the chores of sending out manual invoices, updating playbooks, et cetera. But the customer service backlog is relatively low and the energy levels are relatively high: I feel confident that I’ll get a good amount of flow in this week, and I’ll have a surfeit of fun screenshots and GIFs to share.