August 20, 2019
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.
Project Agora.
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:
- I want to be able to have ‘blog posts’ be on the top-level domain, not
blog.buttondown.email
. - And I want to have ‘marketing pages’ that aren’t on the blog be served by Jekyll, too, like
buttondown.email/newsletters-for-writers
or whatever. - But that’s impossible right now since
buttondown.email
is served entirely by the Vue/Django monolith that powers the Buttondown app itself. - Plus, all of the ‘marketing’ pages (of which there are very few: basically just the home page, a couple comparison pages, and terms/privacy) are all powered by the monolith.
- Which is annoying and bad!
- So let’s do what everyone else does and have
buttondown.email
be the marketing site, and then moveapp.buttondown.email
to be the app itself. - But wait.
buttondown.email
is the external face of the newsletter for folks;buttondown.email/jmduke
redirects to my newsletter. - So I need to do the whole subdomains-for-everyone thing that I’ve been putting off?
jmduke.buttondown.email
? - Which means I’ll be able to send emails from those subdomains, too…
- Oh, man, this is gonna be a whole thing, isn’t it.
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: