As I've said before, this site is the successor to two things: my old personal site and my blog on Medium; both were long overdue for a replacement. As such, I thought I'd describe how I put this together, and why I did things the way I did.
I. In the Beginning
Entering tech, I quickly understood that I needed to have an online presence as a way to establish a personal brand. As I saw it, there were two fundamental and distinct components to this kind of presence: a personal site and a personal blog; these were fundamentally different projects:
A personal site should be a static website hosted on a custom domain. It should highlight key information which should not change very often. Moreover, a personal site should look unique; as a new developer, I saw it as a chance to showcase my skills.
On the other hand, a blog should be more dynamic, with frequently changing content; as such I wanted something that was easy to update, that meant having a graphical interface where I could create, edit, and publish content with the click of a button. Moreover, by hosting on a blogging platform (like Medium or dev.to), I would have access to that platform's distribution network and user community. While associating
For blogging, I chose Medium; it was the only platform I knew of, really. By contrast, putting up a personal site took a lot longer, and was much more complicated. There's a complete range of options for building a website; on one hand, you can write and host an HTML file, while on the other you can even go with something like Wix or Squarespace, and stand up a personal site in a matter of minutes, with no programming skills whatsoever.
I was afraid of doing something too simple; I thought the end result would look too generic, and I felt like I wouldn't be a real developer. I wanted to put up something unique, and which would truly showcase my skills.
As a result, I bounced between a variety of ideas. Initially, I leaned towards bespoke solutions; I even thought about writing an SPA or fully fledged React App before coming to my senses. I gave more thought to hand coding an html page - at one point, I seriously entertained the notion of using a minimalist design like this.
Eventually, I scaled back my ambitions a little, and settled on Hugo, a static site generator, for its ease of use. In particular, I was drawn to the clean, professional look of Hugo's Academic theme for its clean, elegant look. I hosted this site on an AWS S3 bucket which I mapped to my domain using Namecheap. This was perhaps excessively complicated, but I had a passion for all things AWS and wanted to find a way to work it in.
II. Second Thoughts
I was happy with my choices for website and platform for a while, but eventually I became dissatisfied with both:
Medium is a generalist platform, and is not developer centric. This means the user community is more diffuse, and support for things like built in code blocks is less robust. I furthermore had concerns about content ownership, and I was not happy with my content being behind Medium's paywall.
My personal site was a little too static; information on it would periodically become stale or outdated. I would then have to rewrite the site entirely and upload it to AWS. This process was a little too slow and involved for me; and as a result I often failed to update the it in a timely manner.
The end result was I had two separate online presences to maintain. I had a blog on a platform I was increasingly dissatisfied with, and a static site that was out of date more often than not. It was time for something new.
III. Rethinking Things
I started searching for a replacement. I looked at other options for a static site - this second search was as complicated and confounding as the first one. In parallel, I also looked at other blogging platforms; this search was easier, and ultimately much more productive.
For a developer blog, there are a variety of options. Of these, Hashnode emerged as the front runner - both for its flexibility and its support for custom domains. Moreover, in the course of this process, I came across this article on using Hashnode as a personal site.
This was a game changer - I had not just found my new blogging platform, but also my new website. I could have the convenience of a blog, with my custom domain, and the best features of a static site, all in one place.
IV. So Far
It's been a few months since I've made the switch. By and large, I'm happy I've done so, though there have been a few drawbacks. Hashnode's community, while more tech focused than Medium's, is much smaller. My site now carries Hashnode branding, and it looks a lot like all the other Hashnode blogs out there. Hashnode's personalization options could be better. There is the option for custom CSS, but the documentation is less complete than I would like.
That being said, I think these are acceptable tradeoffs; by going with Hashnode, I've gained a lot. It is true that there are some impressive dev sites out there. However, they are largely the product of people who are more frontend focused, particularly freelancers who are looking to promote themselves to prospective clients.
Neither of these are true of me. When I started in tech, I was very much a fullstack generalist, trying to find my way, and I was looking to establish a personal brand. That's less true now, and I have a better sense of who I am as a developer. Ultimately, I've come to appreciate that you don't necessarily need the best solution or something amazing - you need something right for your needs.