🧠 Why I Built This Site
As a security architect with a growing portfolio, I wanted a personal site that would:
- Be fast, static, and secure
- Showcase my resume, projects, and blog posts
- Be easy to maintain using Markdown and version control
- Cost $0 to host and scale globally
🔧 Choosing the Tech Stack
I considered a few frameworks but landed on this stack:
- Hugo: Blazing-fast static site generator written in Go
- GitHub: Source control and CI/CD integration with Cloudflare
- Cloudflare Pages: Free, secure static hosting with CDN and SSL
🚀 Step-by-Step Setup Guide
Here’s a quick illustration demonstrating the workflow for developing and deploying your own static site:
Legend
macOS Development - Your local machine where you create content using Hugo.
GitHub Repository - Stores your site code and content. Changes here trigger deployments.
Cloudflare Pages - Pulls from GitHub and builds/deploys your Hugo site.
Deployed Static Website - The final website available at your custom domain.
1️⃣ Create a New Hugo Site
Install Hugo (macOS example):
brew install hugo
Create your site:
hugo new site personal-site
cd personal-site
2️⃣ Install a Theme
I chose PaperMod because it’s minimal, fast, and blog-ready.
Add it as a Git submodule:
git init
git submodule add https://github.com/adityatelange/hugo-PaperMod themes/PaperMod
Then update config.yml:
theme = "PaperMod"
3️⃣ Add Content
Add some starter pages:
hugo new blog/how-i-built-my-site.md
hugo new about.md
hugo new projects/_index.md
Edit them in Markdown! Frontmatter supports title, description, tags, and date.
Example content folder:
content/
├── about.md
├── blog/
│ └── how-i-built-my-site.md
└── projects/
└── my-cool-project.md
4️⃣ Push to GitHub
Create a repo and push your Hugo site:
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/YOUR_USERNAME/personal-site.git
git push -u origin main
5️⃣ Deploy to Cloudflare Pages
Go to: Cloudflare Pages
- Create a new project
- Connect your GitHub repo
- Set the following:
Framework preset: Hugo
Build command:
hugoOutput directory:
publicEnvironment variable (optional):
HUGO_VERSION = 0.125.0 # or your installed version
Cloudflare will auto-build and deploy on every push!
🧩 Extra Features
- Custom Domain: Set via Cloudflare DNS
- Free SSL: Automatic via Cloudflare
- Pretty URLs: Enabled with
uglyURLs = false - SEO Meta Tags: Configurable in
config.yml - Google Analytics: Just add the tracking ID
💡 Lessons Learned
- Hugo builds are nearly instant
- Cloudflare Pages + GitHub is a great zero-cost CI/CD
- Managing everything in Markdown with Git is powerful
- Static sites are extremely fast, and no backend = fewer security risks
⏭️ What’s Next
- Add RSS Feed for blog
- Create a dark mode toggle
- Publish more articles (like this one!)
- Integrate commenting via GitHub Issues or Giscus
- Optional: Add Netlify CMS or TinaCMS for visual editing
✍️ Thanks for reading! If this was helpful or you’d like to see more content like this, feel free to reach out or follow along on GitHub.