So, Two Page Tuesday #1 happened, and it was fucking marvelous. Although one of the readers unfortunately couldn’t make it in the end, we had two folks agree to step in (one of whom I’d never even met before), and the readings were all super different and super excellent (which was the hope, the goal). We had I think twenty people show up, which was great, and then there was plenty of discussion, revelry, and general merry-making both before and after (which, too, was the hope, the goal). I could not have been happier with it; I’m buzzing a little just thinking about it.

This is not a post about that, though. This is a post about a stupid website, twopagetuesday.club.

I’d had a lot of momentum earlier in the year for building out a site for the readings and social events in Django, the web framework we use at work. I’d previously written Alia’s bakery website in Flask,[1] but I had grown rather fond of the "batteries included" admin views you get out of the box. I also figured, at the time, that it would be good for me to practice, because, you know, "work" and "professional development." Turned out that I instead spent much of the early part of this year writing a different Django app for work, and so did not want to then spend the rest of my time working on, you know, another Django app.[2]

But the reading went so well, I thought: hey, let’s have a fucking website.

And the idea was a good one: I could use the admin views to manage the events, the locations, the readers, and — most importantly — the email list. Because you see, right now, it’s just a very long BCC string that I copy from email to email. This is no fun! Or rather, it’s very error prone.[3] So I was going to do a "real" mailing list.

What had given me new energy, also, was that my fancy new webhost changed their pricing recently, and I could have sworn I read that you could get Postgresql backends for basically free now (you need this as a database for your Django app), so I thought: great, let’s get going.

So I spent maybe the last week, week and a half, building out the website.

The longest part of this is always the design part for me. And let’s be honest: it doesn’t look bad, but it’s not particularly great either. I don’t think the colors actually mean anything in this context, but hey: I needed something and I got it done.

I was all set to deploy earlier today, when I went to go set it all up and realized: fucking hell, I do need to pay for this shit after all![4] Bummer, bummer. What am I to do? Pay $7/month indefinitely? No thank you.

And here’s the rub: what I actually needed the backend database for was to keep a record of the emails for the mailing list. It was going to be fun to "roll my own" and all of that. But I can… also just keep sending emails from my personal email address. I can also make an "organization" email address. Fuck, I can even get an email address through Dreamhost for $2/month and just automate things that way. Or even better, I can do what I’d always threatened to do and make these announcements solely via snail mail.[5]

So I spent about an hour over lunch reworking the site into a plain-Jane Jekyll site, same as this one,[6] and shot it over to Render as yet another very-free static site.

Was all the Django work wasted effort? Eh, yes and no. Mostly no, since I was able to use all the "hard parts" (i.e., the design) in the static site. And writing models as simple as the ones I was writing is trivial enough. So, we’ll call it "practice" and ask my boss for a raise next year.

And in the meantime, we’ve got a website, baby. See you on the 13th.


1. I still <3 flask.
2. Because it’s much cooler to spend your time learning Rust instead, right? Right? RIGHT?
3. See me leaving my wife off the invitation to the actual reading :facepalm:
4. The web app hosting is free, the database is not, which is how they get’cha!
5. Help! I need an artist!
6. Because I’m familiar with it and am therefore fast, and also its data files plus templating can more or less be a drop-in replacement for what I was doing with my Django models, even though I really, really hate YAML (but hate JSON more, so).