Introduction
When I launched LevelUpSecurityLabs, I wanted a clean and low-cost way to host a cybersecurity blog. GitHub Pages was the perfect starting point because it let me publish a website for free directly from a repository.
The part that turned into the biggest learning experience was connecting that free site to a real custom domain. That is where DNS stopped being an abstract concept and became something practical I had to understand well enough to make the site work.
What I Did
Step 1: Created a free GitHub Pages site
I created a GitHub repository for my site and added an index.html file so GitHub Pages could publish it as a website.
Repository example:
username.github.io
Step 2: Bought and prepared my domain
I used my domain provider to manage DNS records for levelupsecuritylabs.com.
Step 3: Pointed the domain to GitHub Pages
To make the root domain work, I added GitHub Pages IP addresses as A records. To make the www version work, I created a CNAME record pointing to my GitHub Pages hostname.
Step 4: Added the custom domain in GitHub
In GitHub Pages settings, I added my custom domain so GitHub knew which domain should map to the site.
How the DNS Records Were Set Up
A Records for the Root Domain
Type: A
Host: @
Value: 185.199.108.153
Value: 185.199.109.153
Value: 185.199.110.153
Value: 185.199.111.153
These records made levelupsecuritylabs.com resolve to GitHub Pages.
CNAME Record for WWW
Type: CNAME
Host: www
Value: username.github.io
This made www.levelupsecuritylabs.com resolve to the GitHub Pages hostname.
What I Learned About A Records
An A record maps a domain directly to an IP address. This is what lets a domain name point straight to the system hosting your website.
levelupsecuritylabs.com → 185.199.108.153
Lesson: A records are usually what you use for the root domain, also called the apex domain.
- They point directly to an IP address.
- They are commonly used for the root domain like
levelupsecuritylabs.com. - If the hosting provider changes IP addresses, the DNS record must be updated.
What I Learned About CNAME Records
A CNAME record maps one domain name to another domain name instead of directly to an IP address.
www.levelupsecuritylabs.com → username.github.io
Lesson: CNAME records are great for subdomains because they follow the destination hostname automatically.
- They point to another hostname rather than an IP address.
- They are commonly used for subdomains like
www. - They are more flexible because the target service can change IPs without requiring you to update DNS manually.
A Record vs CNAME Record
| Feature | A Record | CNAME Record |
|---|---|---|
| Points to | IP address | Another domain name |
| Best use | Root domain | Subdomains like www |
| Flexibility | Lower | Higher |
| Maintenance | Manual if IP changes | Usually easier to maintain |
Problems I Ran Into
DNS propagation delay
After making the changes, the site did not work immediately. That was not because the configuration was wrong. It was because DNS changes take time to propagate.
HTTPS did not work right away
The secure version of the site was not ready until the domain was resolving correctly and GitHub finished provisioning the certificate.
Root domain and www are not the same thing
I learned that supporting both versions takes separate DNS planning. One was handled with A records, and the other with a CNAME record.
New sites can look suspicious
A brand new domain or website can sometimes get flagged by security tools because it has little or no reputation yet.
Security Lessons From a Simple Blog Setup
This process also reinforced how important DNS is from a security perspective. DNS is not just a website setup task. It is part of the trust model for the internet.
- Misconfigured DNS can cause outages and broken user access.
- Dangling CNAME records can create subdomain takeover risk.
- Attackers often abuse weak or abandoned DNS configurations.
oldsubdomain.levelupsecuritylabs.com → old-service.example.com
If that destination is no longer in use but the DNS record remains, someone else may be able to claim the service and take control of the subdomain.
Final Takeaways
- GitHub Pages is a great free option for hosting a personal blog.
- A records are used to point the root domain directly to IP addresses.
- CNAME records are used to point a subdomain to another hostname.
- You often need both to fully support a custom domain setup.
- DNS is not just infrastructure. It is also a real security concern.
Next Up
In the next post, I’ll break down a real issue I ran into after publishing this site:
🛡️ Why Is Anti-Virus Blocking My Webpage?
After launching my blog, I noticed that some browsers and security tools were flagging the site as suspicious. This wasn’t due to malicious activity, but rather how new domains and infrastructure are treated in security ecosystems.
I’ll cover:
- Why newly registered domains get flagged
- How reputation-based security systems work
- Common false positives with GitHub Pages hosting
- Steps to improve domain reputation and reduce blocking
This is a real-world example of how security controls can impact legitimate projects—and what you can do about it.