Skip to main content

Free Hosting with GitHub Pages: Complete Setup Guide

Learn how to host your static website for free using GitHub Pages, configure custom domains with is-pro.dev, and set up automatic deployments from your repository.

Written by Mayank Baswal

Founder of is-cool-me · DNS & Platform Infrastructure

Mayank Baswal maintains the is-cool-me platform and writes technical guides focused on DNS configuration, subdomain infrastructure, SSL troubleshooting, deployment workflows, and platform reliability.

Reviewed by is-cool-me Technical Review

Introduction

GitHub Pages is one of the most popular free hosting solutions for static websites, offering seamless integration with GitHub repositories and automatic deployments. Combined with a free is-pro.dev subdomain, you can have a professional website live on the internet within minutes without spending a cent. This guide walks through every step of the process, from setting up your repository to configuring the custom subdomain with SSL.

Prerequisites

  • A GitHub account with a repository containing your static site files
  • An is-pro.dev subdomain registered at dash.is-pro.dev
  • Your site files ready (HTML, CSS, JS) or a static site generator configured

Step 1: Prepare Your Repository for GitHub Pages

Navigate to your GitHub repository and go to "Settings → Pages". Under "Build and deployment", select "Deploy from a branch". Choose the branch you want to deploy (typically main or gh-pages) and set the root folder to / (root) or /docs depending on where your site files live. GitHub Pages will build and serve your site at https://{username}.github.io/{repository}/. If you are using a static site generator like Jekyll, Hugo, or Eleventy, commit the built output to your chosen branch or configure a GitHub Action to build on push.

Step 2: Configure Your is-pro.dev Subdomain

Log into the is-pro.dev dashboard at dash.is-pro.dev. If you have not registered your subdomain yet, enter your desired name and click register. Once registered, you will see the DNS management interface powered by Cloudflare. This is where you will add the DNS records that connect your subdomain to GitHub Pages. Take note of your GitHub Pages URL — it will be something like username.github.io.

Step 3: Add a CNAME Record in the DNS Dashboard

In the is-pro.dev DNS dashboard, click "Add Record". Select CNAME as the record type. For the name field, enter your subdomain prefix (e.g., myproject if your subdomain is myproject.is-pro.dev). For the target field, enter your GitHub Pages URL, such as username.github.io. Make sure there is no trailing dot unless your provider requires it. Save the record. Cloudflare will propagate this change nearly instantly across its global network of 330+ data centers.

Step 4: Set the Custom Domain in GitHub Pages Settings

Go back to your GitHub repository settings, navigate to "Pages", and enter your full is-pro.dev subdomain in the "Custom domain" field (e.g., myproject.is-pro.dev). Click "Save". GitHub will automatically create a CNAME file in your repository and attempt to provision a Let's Encrypt SSL certificate. This certificate may take up to 20 minutes to issue, during which your site may show a warning. If you see a message about "Enforcing HTTPS", check the box to force all traffic over HTTPS once the certificate is ready.

Step 5: Verify DNS Resolution and SSL

Wait a few minutes for DNS propagation (though Cloudflare propagates within seconds for most regions). Open a terminal and run nslookup myproject.is-pro.dev or use the DNS Checker tool at is-pro.dev. The result should show GitHub's IP addresses. Then visit your subdomain in a browser. You should see your site loading over HTTPS with a valid certificate. If you see a 404, ensure that your GitHub Pages source branch is correctly configured and that the repository contains an index.html file at the root.

Best Practices for GitHub Pages + Custom Domain

  • Enable "Enforce HTTPS" in GitHub Pages settings as soon as the certificate provisions — this prevents insecure connections and improves SEO rankings
  • Use a .nojekyll file in your repository root if you are not using Jekyll and want files or directories starting with an underscore to be served correctly
  • Keep your repository public (GitHub Pages is free only for public repositories) or upgrade to GitHub Pro for private repository hosting
  • Set a low TTL (60 seconds) on your DNS records during initial setup so changes propagate quickly; increase it to 300 or 3600 once everything is stable
  • Add a 404.html page to your repository for a custom error page when visitors mistype URLs

Conclusion

GitHub Pages combined with an is-pro.dev subdomain gives you a production-ready static site with automatic deployments, free SSL, and a professional URL — all at zero cost. This setup works perfectly for project documentation, personal blogs, portfolio sites, and landing pages. Once configured, every push to your repository automatically redeploys your site.

FAQ

Does GitHub Pages support custom domains on the free tier?

Yes, GitHub Pages supports custom domains on all tiers, including free. You just need a CNAME record pointing GitHub's servers.

Why is my site showing a 404 after setting up the custom domain?

This typically means the DNS has propagated but GitHub has not yet provisioned the SSL certificate, or the CNAME file in your repository does not match the domain. Check that the custom domain in your GitHub Pages settings exactly matches your subdomain.

Can I use GitHub Pages for a single-page React app?

Yes, but you need to configure client-side routing carefully. Set the homepage field in package.json to your subdomain URL, and use HashRouter instead of BrowserRouter to avoid 404 errors on page reload.

How long does the SSL certificate take to provision?

GitHub Pages uses Let's Encrypt and typically provisions certificates within 5-20 minutes. If it takes longer, ensure your DNS CNAME record resolves correctly and try removing and re-adding the custom domain in GitHub settings.

FAQ

Is Deployment setup free on is-pro.dev?

Yes, all subdomains on is-pro.dev include free DNS management and SSL certificates.

How long does DNS take to propagate?

Cloudflare typically propagates DNS changes within seconds to a few minutes globally.

Can I use this for commercial projects?

Yes, is-pro.dev subdomains can be used for personal and commercial projects within our fair use policy.