Public site path
The portfolio is served through Cloudflare Pages and a custom domain, keeping the public presentation layer simple, fast, and easy to validate.
DEVOPS CASE STUDY
A static portfolio deployment pipeline built with GitHub and Cloudflare Pages. The project focused on creating a clean source-controlled workflow for publishing a professional technical portfolio, connecting a custom domain, validating deployments, and using the site itself as a live proof-of-work platform.
PROBLEM
A professional portfolio needs to be easy to update, reliable to deploy, and simple to validate. The goal was to avoid a fragile manually uploaded site and instead build a repeatable workflow where changes are made in GitHub, deployed automatically through Cloudflare Pages, and served through a custom domain.
The project also needed to separate the public portfolio from private home lab access. The public site should live on a safe static hosting path, while the lab itself remains behind separate access controls and Zero Trust architecture.
ARCHITECTURE
flowchart TD
EDIT[Edit HTML and CSS] --> GIT[Commit to GitHub Main Branch]
GIT --> CF[Cloudflare Pages Deployment]
CF --> PREVIEW[Preview or Production Deploy]
PREVIEW --> DOMAIN[Custom Domain: gillpad.dev]
DOMAIN --> USER[Public Visitor]
CF --> VALIDATE[Deployment Validation]
VALIDATE --> FIX[Fix Links, Cache, or Paths]
FIX --> EDIT
The portfolio is served through Cloudflare Pages and a custom domain, keeping the public presentation layer simple, fast, and easy to validate.
The home lab tunnel is not part of the public website path. The site showcases the lab without exposing private lab infrastructure.
ENGINEERING WORK
Created a GitHub repository to act as the source of truth for the portfolio. Site content, project pages, assets, and styling are managed through versioned files instead of manual one-off uploads.
Connected the GitHub repository to Cloudflare Pages so updates to the main branch automatically deploy to the public site.
Configured the root domain and www hostname to route to the Cloudflare Pages project, replacing old parking behavior with a clean public entry point.
Organized the site around reusable static files: a homepage, stylesheet, asset directory, and project pages under a dedicated projects directory.
Built individual project pages and linked them from homepage project cards. A shared coming-soon page provides a clean backend for unfinished case studies.
Worked through deployment timing, stale content, broken asset paths, and browser or Cloudflare cache behavior while validating that GitHub changes appeared correctly on the live domain.
SITE STRUCTURE
index.html
Homepage, project cards, skills, contact, and resume link.
style.css
Shared visual system for homepage, cards, case studies, buttons, and diagrams.
assets/
Resume PDF and sanitized supporting media.
projects/
Individual case-study pages and the shared coming-soon page.
VALIDATION
Confirmed Cloudflare Pages completed successful production deployments after GitHub commits.
Confirmed both the root domain and www hostname pointed to the portfolio instead of parked or stale content.
Checked homepage navigation, project card links, resume access, and case-study routing.
Validated that static assets such as PDF resume files and project visuals were placed in the correct paths and referenced correctly from HTML.
Confirmed that the public site is served through Cloudflare Pages and does not depend on the private home lab tunnel.
Used repeated commits and redeployments to confirm the workflow was practical for ongoing portfolio updates.
OUTCOME
The result is a source-controlled public portfolio that can be updated quickly and deployed reliably. The deployment pipeline makes the website itself part of the portfolio: it demonstrates GitHub workflow, static hosting, DNS management, Cloudflare Pages deployment, troubleshooting, and iterative development.
The project also created a reusable framework for future technical case studies. New projects can be added by creating an HTML page under the projects directory, linking it from the homepage, and allowing Cloudflare Pages to deploy the update.
LESSONS LEARNED
A portfolio does not need a complex backend to be useful. Static HTML, CSS, GitHub, and Cloudflare Pages are enough for a fast, clean, reliable professional site.
Managing the site through GitHub makes changes easier to track, revert, and deploy.
A working site still needs correct DNS, custom domain configuration, and SSL validation before it feels finished.
Broken-looking changes are not always code problems. Sometimes the issue is stale browser cache, deployment timing, or an old asset path.
The website should showcase the lab without exposing the lab. Cloudflare Pages provides a safe public presentation layer, while private lab services remain behind separate access controls.
Once the homepage, shared CSS, and case-study pattern existed, new project pages could be added quickly and consistently.
PROJECT SUMMARY
This project established a GitHub-backed deployment pipeline for a public technical portfolio using Cloudflare Pages, custom DNS, static HTML/CSS, project case-study routing, hosted assets, and deployment validation workflows.
The site provides a clean public proof-of-work platform while remaining separate from private lab infrastructure. New case studies can be added through the same repeatable workflow: create a project page, link it from the homepage, commit to GitHub, validate the Cloudflare deployment, and test the live route.