How I Came to Develop a Website

Tags: #Ramble, #Long

Since 2016 I've been active in aiding or participating on the moderation team for /r/ClosetSanta with their annual “weeaboo” secret santa gift exchange. The first year, I wrote them a bot that would bounce messages back and forth between users anonymously. This allowed the santa and giftee to communicate directly without spoiling who a user's santa was and what subreddit they represented. It went over very well, and when I joined the mod team in 2017, we decided to keep using it. That year, I got to see the inner workings from start to finish, and what I found out was that there was a lot of manual work in how we ran the exchange.

2018 snuck up on most everyone, and the mod team was, unfortunately, woefully unprepared for another exchange. In addition, we got a fair amount of negative feedback in 2017, so that unpreparedness coupled with our lack of resolution for the problems we had in the past would have made for a very bad experience for a large amount of people. We decided to cut our losses and forego the exchange that year.

What came from that, though, was serious conversation about what went wrong and how it could be fixed. I, knowing next to nothing about web design, proposed that we spend the year off building our own custom-use website to do exactly what we need to make everything go smoothly and take the majority of the workload off of us. The reaction I got was basically “that sounds great, but I can't do that. If you can, then go for it.”

And so, starting in February, I did.

Over the course of a week, I spent every second of my freetime thinking about what features our website would need, researching what features Django offered, and pounding on my keyboard to make it all happen. Once over the initial hurdle of learning how everyting intertwines, development happened rapidly, to the point where by March I felt like a test run would have been feasible. Unfortunately, I also got a little burnt out by it all, and so I spent most of March straying away from that project and working on others.

As April rolled around, though, I got a new resolve to continue developing the site. All that was left on my initial checklist were some minor, late-stage features and tools, so I ended up with a finished beta version after only a day or two of work. This ended up being really good timing, as I've recently taken an interest in setting up little servers (like WriteFreely!) on my home server and routing everything through Apache. Feeling confident, I decided to host a test instance of the CS website on my home server to iron out “a few” kinks.

What actually happened though has been exponentially harder than what I had expected. There were 2 different problems with Apache alone that I had to sort through before the site was even accessable. Even after I got everything routed properly, I found out that my server code was not ready for production even in the slightest.

The bugs and errors I've been fixing over the past two days have ranged anywhere and everywhere from “Oh right, I forgot that I needed to create ___ in the admin settings before ___ worked,” to “Wow, this feature I implemented and pushed to master didn't get tested at all, because it literally breaks the entire site”. It has been a very wild ride, but things have calmed down enough at this point that my confidence is slowly coming back. I'm excited for the other mods to read their messages so that I can get an outsider's first impression and feedback to further development with.

It remains to be seen if I'll want to make other websites for fun once this one starts to wrap up. It's a daunting and cumbersome process, but my experience thus far has been enjoyable...

Except writing CSS. I'm awful at theming, layouts, and everything inbetween.