Introduction: How I Built This Blog with GitHub Pages and Jekyll
I have received so many messages asking how I built this website that I finally stopped deflecting and wrote it all down.
The short answer is: GitHub Pages, Jekyll, Markdown, and some CSS. Jekyll is a static-site generator that turns Markdown into a website, and GitHub Pages hosts the result for free. No WordPress, no hosting bills, no plugin update treadmill. I started this way because I wanted to focus on writing, not maintenance — and years later I am still happy with that decision.
Before this, I had websites built in PHP and on WordPress. Both work, but both demand attention: security patches, plugin conflicts, database backups, and hosting renewals. Once you step off that treadmill, it is hard to go back.
My current setup gives me:
- Free hosting on GitHub Pages
- Git-based versioning — every draft, every revision, easy rollback
- Markdown for content — clean, portable, no lock-in
- Full control over HTML, CSS, and JavaScript when I want it
- AI art and AI writing tools for illustrations and drafts
- A form service that delivers contact and subscription requests to my inbox with built-in spam filtering
In this post, I will walk you through the whole thing, from creating a GitHub account to custom domains, SEO, and the no-code alternatives worth knowing about.
Steps for creating a website on GitHub
Here is the overall flow, which I will explain in detail below:
- Set up a GitHub account
- Create a new repository named
username.github.io
- Choose a static site generator (we will use Jekyll)
- Write content in Markdown
- Customise the look and feel
- Test locally; push changes
- Enable GitHub Pages
- Optionally: connect your own domain name
The official starting point is Creating a GitHub Pages site with Jekyll, but I will go further here.
What Is a GitHub Pages Site?
GitHub Pages hosts static websites directly from your repository. When you push a change, GitHub builds the site automatically using Jekyll and serves the result — no server to manage, no database to back up.
You write your posts in Markdown, and Jekyll turns them into HTML. Markdown is so minimal that most people are productive with it in under an hour.
Two ways to create your Jekyll blog
🔒 Subscribe to keep reading.
Bonus: Jekyll Tips, Domains, and SEO
🔒 Subscribe to keep reading.
Conclusion: A Free Blog with Jekyll and GitHub Pages
🔒 Subscribe to keep reading.
References
🔒 Subscribe to keep reading.
You've hit a Deep Dive tutorial.
I spend dozens of hours researching, coding, and breaking things to write these guides. This content is free, but reserved for my subscriber community. Drop your email below to unlock this guide (and all past/future deep dives):
Full content temporarily unavailable — refresh in a moment
Already a subscriber? Use the magic link from your last newsletter, or reset your password.
Log in to unlock
New subscribers get an inbox mail: Set a password to unlock articles. The form does not log you in — use the same email afterwards.