// DEVELOPMENT

How to Publish Your Website for Free on GitHub Pages (Even If You Don't Know How to Code)

blog.asdprodtech.com.br⏱ 8 MIN ·

You have an idea, a portfolio, a small project, or even an online resume you want to share with the world — but you freeze the moment you start thinking about hosting, domains, servers, and all that jargon that sounds like it's from another planet. The good news: there's a way to get a website online, completely free, without paying a dime in monthly fees, using a tool called GitHub Pages. And no, you don't need to be a developer to do it.

This guide was written for people who want to take that first step without losing their minds. We'll go slowly, with real examples and zero assumption that you already know what a "repository" or a "commit" is. If you know how to use email and have ever uploaded a file in your life, you can do this.

🚀 Need this built for you?

I build sites, systems, AI and automation. Let's talk.

Get in touch →

What GitHub Pages Is and Why It Works for Beginners

GitHub is a website where developers store and share the files for their projects — kind of like a Google Drive built specifically for code. GitHub Pages is a feature within that site that turns those files into a real website, accessible to anyone with the link.

How to Publish Your Website for Free on GitHub Pages (Even If You Don't Know How to Code)

The big advantage is that the service is free for personal and project websites. You even get an address in the format yourusername.github.io, which already looks like a legitimate website. It's not a temporary link or a preview — it's a public, stable page that works on mobile, on desktop, and shows up on Google if you want it to.

There's one important limitation to know upfront: GitHub Pages works best for static websites. In plain English, that means sites that display information without needing a database behind them — no user logins, no order systems. Think portfolios, online resumes, project landing pages, simple blogs, or event pages. For that kind of thing, it's perfect.

Before You Start: What You'll Need

You don't need to install anything on your computer for this simpler approach. Everything happens in the browser. Just have three things ready:

If you don't have website files yet, the easiest approach is to use an online editor like CodePen or grab a free template from a site like HTML5 UP (html5up.net). These templates come ready to go, with great designs — you just swap out the text and photos for your own. Download the ZIP file, extract it to a folder, and you're all set.

Creating Your Account and Your First Repository

Go to github.com and click "Sign up." Fill in your email, choose a password, and pick a username. That username will be part of your website's address, so choose something that makes sense — ideally your name or your project's name, with no spaces or special characters.

Once your account is created and your email is confirmed, you'll create a repository. A repository is just the name GitHub uses for a folder that holds a project's files. To create the right repository for GitHub Pages, follow these steps:

  1. Click the "New" button (or the "+" icon) in the top right corner.
  2. In the "Repository name" field, type exactly: yourusername.github.io (replacing "yourusername" with your actual GitHub username).
  3. Select "Public". Private repositories on the free plan don't work with GitHub Pages.
  4. Click "Create repository."

That specific name is the key. GitHub automatically recognizes that a repository with that format is a personal website and sets everything up to publish it. If you use a different name, the process changes slightly but still works. For now, let's stick with this most straightforward path.

Uploading Your Website Files

Now you're inside your newly created repository. The screen looks empty, with a few instructions in English. Don't panic. Look for the link that says "uploading an existing file" and click it.

You'll see an area where you can drag files directly from your computer into the browser — just like attaching a photo to an email. Select all of your website files: the index.html, your image folders, your style files (usually called .css), and everything else that's part of your project. Don't put them inside an extra folder — the files need to go directly into the root of the repository.

After uploading, scroll down and find the green button that says "Commit changes." Think of a "commit" as the final save button. You can leave the default message as-is or write something simple like "First site upload." Click "Commit changes" and you're done.

What If I Have a Lot of Files?

If your template has many folders and subfolders, uploading through the browser can get tedious. In that case, the easiest workaround is to extract everything locally and drag it all at once into GitHub's upload area. The browser accepts multiple files at the same time. Just don't upload the ZIP file itself — upload the extracted files.

Activating GitHub Pages and Visiting Your Site

If you used the exact repository name (yourusername.github.io), GitHub Pages is already activated automatically. But it's worth confirming. Click the "Settings" tab inside the repository, then click "Pages" in the left sidebar.

You'll see a message letting you know your site is being published, along with your address. Something like: "Your site is live at https://yourusername.github.io". It may take 1 to 3 minutes for the site to actually appear when you visit the link. If it's not up yet, wait a bit and refresh the page.

Open the link on your phone, send it to a friend, add it to your resume. The site is now public and accessible to anyone in the world.

The Site Showed a Blank Page or a 404 Error — What Do I Do?

A 404 error usually means the main file wasn't found. Check two things: first, whether your main file is named exactly index.html (lowercase, no spaces). Second, whether that file is in the root of the repository and not inside a subfolder. If it's sitting inside a folder called "mysite," for example, GitHub won't find it automatically. Move the file out of the folder and make a new commit.

How to Update Your Site Whenever You Want

Life isn't static, and your website doesn't have to be either. When you want to update some text, swap out a photo, or add a new section, the process is the same as the initial upload.

Go to your repository on GitHub and click on the file you want to edit. For .html files, GitHub has a built-in editor: click the pencil icon in the top right corner of the file. Make your changes right in the browser and click "Commit changes." Within a few minutes, your site will reflect the update.

If you're updating images or more complex files, go back to the upload area and send the new version of the file. GitHub automatically replaces the old file with the new one when they share the same name.

Can I Use a Custom Domain, Like mysite.com?

Yes, and it's not complicated. If you buy a domain through a service like Google Domains or Namecheap, you can connect it to your GitHub Pages site in the "Pages" settings section. The field is called "Custom domain." You'll need to point the domain to GitHub's servers by following the instructions shown right there. GitHub even offers free HTTPS — that little padlock icon that appears in the browser. But that's a step for later: to get started, the github.io address works just fine.

Where You Go From Here

Having a live website changes how you present yourself professionally. A real link with your name — one you can put on LinkedIn, share on social media, or add to your email signature — carries more weight than a PDF or a Google Drive folder.

If you want to go beyond a downloaded template, it's worth exploring tools like Jekyll, which GitHub Pages already supports natively. It lets you create a blog with posts without having to hand-edit HTML every time. But that's a next step.

For now, the essentials are done: account created, repository with the right name, files uploaded, site live. Save the link, send it to someone you trust to check it on their phone, and count this as a real accomplishment. Getting a project online — even a simple one — is the first step for anyone who learns by doing.