Is It Up?

| 4 min

Table of Contents
  1. Tech stack used
  2. Prerequisites
  3. Setup
  4. Authoring
  5. Publishing
  6. Setting up Domain
    1. Use Github's Default Domain
    2. Use Your Custom Domain

A complete yet short guide explaining how this site was setup, this should serve both as a reference for future me and for someone desiring a similar setup.

Tech stack used

What?Tech
DomainCloudflare ($10.46/year)
Site HostingGithub Pages (Free)
SSGZola (Free)

Prerequisites

Setup

First set of commands to be run,

# create directory
mkdir ~/gthmchttr.com/
cd ~/gthmchttr.com/

# initialize a zola SSG project in created folder
zola init .
# bring up webserver for testing
zola serve

Check the localhost url emitted by last command (usually http://localhost:1024), zola no template page

You should see an error which is zola complaining that a theme as not been configured. So let's go ahead and do that -

# initialze a git repository
git init
# add a theme as a submodule
git submodule add https://github.com/gauthamchettiar/zola-yolk.git themes/zola-yolk

I am using my own theme called zola-yolk here (same one that this website is using), feel free to use whatever you like from theme gallery . Most of the commands below are specific to this theme, if you use a different one make sure to check it's documentation for specific installation instruction.

Next, copy over the default configuration file to tell Zola to use the theme:

cat themes/zola-yolk/example_zola.toml > zola.toml

Head back to http://localhost:1024 in your browser, your local site should now render properly!

Blog Working Homepage
Yay! That's something!

Authoring

Before you go ahead and add some content let's fix that title!

Open zola.toml file from your project root, and update below settings - Zola Config Change

Next, time to add your first post...

mkdir content/posts/2026/
touch content/posts/2026/20260923_is_it_up.md

...and add a frontmatter to it - Blog Front Matter

Your post should be up now!

Blog After Post

Publishing

So we've got it working locally, next it's time to make it public!

mkdir -p .github/workflows
cp themes/zola-yolk/.github/workflows/deploy.yml .github/workflows/

That should copy over deployment config from theme over. Next, time to create a github repo... Blog Github

... then push your code,

git add .
git commit -m "post: is it up?"
git remote add origin https://github.com/gauthamchettiar/gthmchttr
git push --set-upstream origin main

Now, if you go and check CI pipeline...
Repo > Actions > 'pages build and deployment' step Blog CI Failure ... it should have failed!

You need to enable one last thing before you are good to go! Repo > Settings > Pages -> In "Build and Deployment" change source to "Github Actions" Blog Pages Settings

Well, now you can try to re-run jobs... Blog CI Success ... and it finally passed!

Time to share your blog with the world... Blog No Css? ... or no. This is not what we built!

Setting up Domain

This happens because zola needs a valid base_url in zola.toml to locate static assets like CSS files.

Use Github's Default Domain

If you are not yet ready to spend extra to buy a domain, all you have to do is to replace base_url setting in zola.toml with actual url you see on github CI page, Blog Github Domain

Now once you commit and push your changes,

Blog Up Github Domain

Use Your Custom Domain

If you own a domain, you need to configure four A records in your domain manager pointing to Github Pages IP Addresses,

TypeNameContent
A@185.199.108.153
A@185.199.109.153
A@185.199.110.153
A@185.199.111.153
Blog A Record

Replace base_url setting in zola.toml with your custom URL, Blog Custom Domain

Go back to Repo > Settings > Pages -> Replace "Custom Domain" with your domain, Blog Custom Domain Github

And that's it, your site should be live and kickin'!

Blog Is Up