Tutorial

How to Set Up a GitHub Pages Blog in Under 5 Minutes (No Terminal Required)

GitHub Pages is free, fast, and permanent hosting for your blog. The old way required Ruby, Jekyll, and a working knowledge of the terminal. This guide shows you the new way.

A
Akhil K Thomas
Published April 4, 2026 · 5 min read

GitHub Pages has always been the best free hosting option for developer blogs. A public GitHub repository, served as a static website, with a free username.github.io domain and support for custom domains. It's fast, indexed by search engines, and runs indefinitely at zero cost.

The problem has always been the setup. GitHub Pages was designed to work with Jekyll, which requires Ruby, Bundler, and a functioning terminal environment. One wrong Ruby version and your entire build breaks before you've written a single word.

This guide shows you how to get a GitHub Pages blog live in under 5 minutes with no terminal, no Ruby, and no CI pipeline configuration.

The Traditional Jekyll Route (Skip This)

For historical context, here's what setting up a Jekyll + GitHub Pages blog used to require:

  1. Install Ruby (the right version)
  2. Install Bundler (gem install bundler)
  3. Create a Jekyll project (jekyll new my-blog)
  4. Configure _config.yml
  5. Write your post in raw Markdown
  6. Run bundle exec jekyll serve to preview
  7. Fix whatever Liquid template error appeared
  8. Run bundle exec jekyll build
  9. Commit and push then wait for GitHub Actions to deploy

That's 9 steps before your blog is live, and steps 1–4 alone can take an hour the first time. If you're on macOS and your system Ruby conflicts with the Jekyll-required version, add two more hours of debugging.

The No-Terminal Route (Do This Instead)

The approach below uses Thooval, a native macOS app that handles everything the Jekyll + CI pipeline used to do from within a clean desktop interface. Here's the full setup:

1Create a GitHub repository

Go to github.com → New repository. Name it anything (e.g., my-blog). Set it to Public. Click "Create repository." This takes 60 seconds.

2Enable GitHub Pages

In the repo, go to Settings → Pages. Set "Source" to "Deploy from a branch," select main, and save. GitHub Pages is now enabled for this repo.

3Generate a Personal Access Token

Go to GitHub Settings → Developer Settings → Personal Access Tokens → Tokens (classic). Generate a token with repo scope. Copy it you only see it once.

4Connect Thooval to your repo

Download and open Thooval. In Settings, paste your GitHub username, repo name, and Personal Access Token. Thooval connects to your repo. That's the only technical step and you only do it once.

5Write your first post and click Publish

Create a new post in Thooval's WYSIWYG editor. Write anything. Click Publish. Thooval builds the HTML and pushes it directly to your GitHub Pages repo. Your blog is live at username.github.io/my-blog.

Total time from "create a GitHub repo" to "blog is live": under 5 minutes on a fresh setup. Under 30 seconds for every subsequent post.

Try this right now for free.

Try Thooval for 7 individual days. One single payment of $15 for a lifetime license.

Download 7-day Trial macOS 12+ · $15 One-time · No subscriptions

What About Custom Domains?

GitHub Pages supports custom domains natively. Go to your repo's Settings → Pages → Custom domain. Enter your domain (e.g., blog.yourdomain.com). Then add a CNAME record at your DNS provider pointing to username.github.io. GitHub handles the SSL certificate automatically via Let's Encrypt.

Adding Comments to Your Blog

Static sites can't run server-side code so traditional comment systems don't work. Thooval has Giscus built in: a comments system powered by GitHub Discussions. Your readers authenticate with GitHub (which most developers already have), and comments are stored in your repository's Discussions tab no third-party service required.

The Result

You get a fast, SEO-friendly, static HTML blog hosted on GitHub Pages free, forever with no monthly bills, no server maintenance, and no terminal. Every post is a .md file on your Mac. Your blog is a git repository you fully control.

For a full comparison with the traditional Jekyll approach →