I Built My Own Website (Sort of) From Scratch, and Decided to Use WordPress Anyway.
I began coding my website on a whim sometime in August. It’ll be fun, I thought. I had seen a few data science blogs built with R using blogdown, and it looked pretty simple to do. Before I knew it, I was learning how to use Hugo, a static website generator.
Most people start with a pre-built template and then modify it to their liking. I started with this theme, but it didn’t have a blog and I wanted one, so I took the blog element from the Mediumish theme.
In the process of combining the two themes, I actually had to learn how to use the templating part of Hugo, rather than just modifying the relevant files directly.
Building my own website was good for me. I had maximum freedom, which meant that I could lay out my website exactly how I wanted, which forced me to think about how I wanted to prioritize content.
Honestly, it looked pretty good. Not amazing, but not bad. You can see a version of it here.
But, my god, the bugs. The seemingly endless stream of bugs, punctuated by moments of “it works! it works! It finally works!” Those moments were joyous but short-lived. For the first time in my life, I posted in an actual discussion forum about one of my bugs. Nearly four years of computer science education (and you know how many StackOverflow posts I have stubbornly looked through while refusing to ask any questions myself) and this stupid website broke me enough to actually post on a help forum.
By the way, if you’re a recruiter reading this thinking about hiring me: I’m excellent at asking for help — you should ask the person who taught me Data Structures in college. I just usually don’t ask for help online.
My GitHub commits devolved into “ugh” and “please work” since I had to commit to GitHub every time I wanted to see the website on the server.
Why did I give up on it?
In three words: Lack of maintainability.
Despite my best efforts, I seemed to break some element of my website almost immediately upon fixing a different part of the website. There didn’t seem to be any clear logic to the bugs which meant that I often only understood the cause of bugs long after I stumbled my way into fixing them. But I felt like I should be able to get my website to work, because I have a computer science degree and web programming isn’t even really coding, so I persisted a little bit too long.
Also, adding blog posts in Hugo just ended up being a source of unending and deeply mysterious problems, most of them having to do with path and filenames. Since I would like to add blog posts to my website occasionally, such as this one, this really, really annoyed me. Also, I don’t want my website to break right as a potential employer is looking at it, and I do not trust myself to not break my own website with Hugo.
As a computer scientist, having an obsessive mindset around solving a problem based on vague ideas of “well, this looks possible, this should be possible” often helps me get through the toughest and most thankless parts of programming. But sometimes it’s best to just… stop.
There’s a lot of value in cutting your losses. There’s research on it — the introduction of this paper has lots of sources supporting that idea.
Yes, programming my own website involved a lot of sunk cost, but I’ve wasted more time on stupider things before, I think. I hope. And I was left with a lot of content created and a very clear vision of how I want my real, maintainable website to look. You’re probably looking at my real website right now. If not, you should check out my website.
Here’s what I will say: Frankensteining two themes together and intensely modifying just about every part of it taught me a lot about web development. It meant that when I used a WordPress template for my WordPress website, I knew exactly how to modify the website to my liking, and even fixed a bug in the original source code.
But the effort between building the two websites doesn’t even remotely compare.
It took me about a month of effort, including two weeks of intense effort, to build the Hugo website. It took me about two days to build the WordPress website, and I will never have to worry about its maintainability. Sure, I would change some elements on the WordPress website if I could, but in general, I like how it looks. I’ve realized that I’m happy to give up some control as long as I don’t have to debug pathnames or wonder why my images won’t load properly ever again.