I work in IT and I didn’t have a personal website for the longest time. Some would say this is a disgrace. It wasn’t until I read Austin Kleon’s Show Your Work! that I decided to bite the bullet and make something of it. To push myself, I decided to buy the domain name for 10 years. It would have been about 5 euro for 1 year, but I know I wouldn’t really care about 5 euro. So instead I splurged and went for 10 years instead, costing about 75 euro. That’s something I’d think twice about before throwing it out of the window. c With the domain name bought, it was time to get to work. I had a few prerequisites:
- I didn’t want to spend any more money
- I didn’t want to be dependent on a commercial framework that may hike up prices
- I’d have to be able to set it up fast
- I’d have to be able to customize it any way I want down the line
I started looking at the well-known GitHub Pages. It’s free but requires a static site, which means pre-rendering everything in. Several open-source frameworks help you do this, but the two that stood out for me were Jekyll (recommended in the GitHub Pages documentation) and Gatsby. I decided I’d go with Gatsby because it has a huge community, and it’s based on React which I already have experience with. I also didn’t feel like learning the Jekyll-specific HTML syntax. Gatsby being built with React assured me that I’d understand it eventually, as well as do some fun things down the line if I want to. Gatsby isn’t without its downsides though. It is a lot more complicated than Jekyll, and a lot of the blog templates make use of GraphQL which I have no experience with, yet. (I was always -and still am- a bit hesitant to get into GraphQL because I have some prejudices about it, but that’s for another post). Overall, there’s a lot more “magic” going on in Gatsby, making for a higher learning curve if you want to customize it. Luckily, most templates -like the one I’m using right now- don’t require you to touch the magic stuff too much. I’m able to half-ass it for now, while I learn some more about Gatsby, GraphQL, and probably a lot of other stuff along the way. And at least now I can document it along the way!
When it came to publishing it, I didn’t want the nitty-gritty development files to clutter my actual webpage. So I decided to go with two repo’s, one private for all the Gatsby code, and one public site which is the built output of the site. This gives me the freedom to tinker around in the private repo with new things, without accidentally messing up the published website. I achieved this by using git submodules. There may have been better solutions for this, but this clear separation does give me some ease of mind.
Looking ahead, there are definitely things I want to improve upon. I’ve used one of the many free starter templates, which I altered just barely. Although I like the way it looks, the artist in me wants to create something from scratch. To do this, I’ll first have to expand my knowledge of Gatsby, GraphQL, and even the for me long-neglected CSS, all of which I plan on documenting on this blog. I haven’t set up any analytics yet, this is lower on the priorities list for sure, but it would be nice to have some numbers as a reference. I have a lot of ideas for blog posts, and maybe even to start some sort of newsletter, perseverance will be key on both fronts.
Thanks for reading!
If you didn’t here’s a TL;DR:
- Buy domain name
- Link domain name to GitHub Pages
- Choose a Gatsby theme that you like
- Write a blog post
- Build and publish to GitHub Pages
- Have plans for future improvements