A Cost-Effective Journey to Building a Blog with Jekyll and GitHub Pages
(Or: How I Stopped Paying So Damn Much for Web Hosting)
I spent ages thinking about how to build my portfolio site. WordPress felt bloated, Squarespace was expensive, and writing everything from scratch seemed like overkill. After a bit of research I stumbled across Jekyll and GitHub Pages. A few hours later, I had a working site for practically nothing.
Here’s how I did it.
Why I Built This Site
- I Keep Forgetting What I’ve Done
Last month, I spent an hour hunting through old Google Docs trying to find how I’d fixed a Docker networking issue. Never again. Now everything goes here. - It’s Hard to Get a Job without a Portfolio
I’ve been looking for a job for a while now, and I’ve found that most companies want to see what I’ve done. This site is my portfolio. - I’m Tired of Paying for Web Hosting
I don’t imagine many people will read these posts, other than the occasional recruiter so why pay for hosting?
Step 1: Domain
Finding a Domain Name
I bought wildermoth.com through GoDaddy for ~$20/year (including domain privacy to keep my info off spam lists). I use this domain for my email aswell so it’s a win-win.
Hosting
Many providers charge $100+/year for basic plans. Then I discovered GitHub Pages, which offers free hosting with seamless Git integration. Setting it up took minutes:
- Create a repository named
<username>.github.io
. - Push your site files.
- Boom. Live at
https://<username>.github.io
.
GitHub Pages’ official guide walks you through it.
Step 2: DNS
To point my GoDaddy domain to GitHub Pages, I had to update DNS records—a task that sounds scarier than it is.
The A Records
In GoDaddy’s DNS Manager, I added four A records pointing to GitHub’s IP addresses:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
These ensure traffic to wildermoth.com
reaches GitHub’s servers.
The CNAME File
Next, I added a CNAME
file to my GitHub repo containing my domain (wildermoth.com
). Then, I created a CNAME record in GoDaddy pointing www.wildermoth.com
to <username>.github.io
.
Adding A records in GoDaddy’s DNS Manager
Setting up the CNAME record
Patience is key: DNS changes can take up to 48 hours to propagate. Mine went live in about 3!
Step 3: Jekyll
Static site generators like Jekyll let you create blogs using Markdown—no databases, no CMS. Perfect for writers who love code editors over dashboards.
Why Jekyll?
- Simplicity: Write posts in Markdown, Jekyll compiles them into HTML.
- Themes: I chose the Minimal Mistakes theme for its clean design and responsiveness.
- Git Integration: Edit locally, push to GitHub, and your site updates automatically.
I followed Jekyll’s documentation to set up the basics. The _posts
folder now houses all my articles, and the _config.yml
file handles site-wide settings.
Why This Beats WordPress (For Me)
- Cost: $20/year vs. $100+/year for hosting + premium themes.
- Control: Everything lives in a Git repo. No plugins breaking after updates.
- Learning: Understanding DNS, static sites, and GitHub Actions.
Final Thoughts
Building this site was equal parts rewarding and frustrating. But the payoff is a fully customizable, cost-effective platform.