Sorry for the hiatus last week. I bought a house. And moved into the house. This was delightful, and stressful, and I learned that I own entirely too many Magic Keyboards and 30-pin charges. (And entirely the right amount of books, which happens to be a quantity infeasible for moving.)
Being offline most of the week and weekend was tough, to be honest; it is not the most exciting thing to open a weeknote on, but I had two churns from fairly excited/well-fitting users that amounted to “you’ve been unresponsive for two days while I’m having a serious issue, boy bye”. This is fair! And it’s a bummer, and a systemic flaw — one that I know I harp on.
Still, in the cosmic scale of things, I’d rather have a house than $60 MRR — but that doesn’t mean I shouldn’t think about building networks that allow both.
I wrote two weeks ago about migrating the blog from Ghost to Jekyll so I can iterate and spit out content faster, and that got the ol’ brain-wheels turning: what are the changes I need to make to actually build a decent content engine on Buttondown? My thought process went something like this:
buttondown.emailis served entirely by the Vue/Django monolith that powers the Buttondown app itself.
buttondown.emailbe the marketing site, and then move
app.buttondown.emailto be the app itself.
buttondown.emailis the external face of the newsletter for folks;
buttondown.email/jmdukeredirects to my newsletter.
This is going to be the most substantial change to the codebase since adding support for multiple newsletters (that had a larger technical surface area, in terms of lines of code, but this has a larger product surface area.). But I think it’ll give me a lot of things I want: a better marketing platform, nicer subdomains, and better deliverability (sending from
buttondown.email subdomains should be a net positive according to the folks at Mailgun I’ve been chatting with.)
Because I’m a sucker for awful names, of course, I have an awful name for this: Project Agora. Here’s a very flimsy task breakdown: